shortcut ##userPref:<profile field>## macros now work even if shortcut is not under a dashboard

This commit is contained in:
Doug Bell 2008-07-20 18:35:16 +00:00
parent daefac7e4a
commit 2763dfee25
2 changed files with 20 additions and 16 deletions

View file

@ -424,22 +424,23 @@ sub getOverrides {
} else {
$self->session->errorHandler->warn("Original asset could not be instanciated by shortcut ".$self->getId);
}
if ($self->isDashlet) {
my $u = WebGUI::User->new($self->session, $self->discernUserId);
my @userPrefs = $self->getPrefFieldsToImport;
foreach my $fieldId (@userPrefs) {
my $field = WebGUI::ProfileField->new($self->session,$fieldId);
next unless $field;
my $fieldName = $field->getId;
my $fieldValue = $u->profileField($field->getId);
$overrides{userPrefs}{$fieldName}{value} = $fieldValue;
$overrides{userPrefs}{$fieldName}{parsedValue} = $fieldValue;
# 'myTemplateId is ##userPref:myTemplateId##', for example.
foreach my $overr (keys %{$overrides{overrides}}) {
$overrides{overrides}{$overr}{parsedValue} =~ s/\#\#userPref\:${fieldName}\#\#/$fieldValue/gm;
}
}
}
# Process shortcut macros
my $u = WebGUI::User->new($self->session, $self->discernUserId);
my @userPrefs = $self->getPrefFieldsToImport;
foreach my $fieldId (@userPrefs) {
my $field = WebGUI::ProfileField->new($self->session,$fieldId);
next unless $field;
my $fieldName = $field->getId;
my $fieldValue = $u->profileField($field->getId);
$overrides{userPrefs}{$fieldName}{value} = $fieldValue;
$overrides{userPrefs}{$fieldName}{parsedValue} = $fieldValue;
# 'myTemplateId is ##userPref:myTemplateId##', for example.
foreach my $overr (keys %{$overrides{overrides}}) {
$overrides{overrides}{$overr}{parsedValue} =~ s/\#\#userPref\:${fieldName}\#\#/$fieldValue/gm;
}
}
$cache->set(\%overrides, 60*60);
$overridesRef = \%overrides;
}