revert r7017, it didn't allow userPref macros and doing so requires more extensive changes

This commit is contained in:
Graham Knop 2008-07-28 14:57:11 +00:00
parent dc82daaac8
commit ff783a913f
2 changed files with 16 additions and 19 deletions

View file

@ -16,8 +16,6 @@
- fixed: Manage Subscription Codes: No way to Select
- fixed: Self registration that does not require passwords, now allows multiple users with empty passwords. This means that users can self register without a password and might cause downstream bugs with other wobjects.
- fixed: Calendar now uses the correct method to get the current user's time-zone
- Shortcut ##userPref:<profile field>## macros now work even if Shortcut is not
under a Dashboard
- fixed backwards compatibility with new form control API additions: getValue is now
an alias to getValueFromForm instead of vice-versa. getValue is still the preferred
method, getValueFromForm is still the deprecated method.

View file

@ -424,23 +424,22 @@ sub getOverrides {
} else {
$self->session->errorHandler->warn("Original asset could not be instanciated by shortcut ".$self->getId);
}
# 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;
}
}
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;
}
}
}
$cache->set(\%overrides, 60*60);
$overridesRef = \%overrides;
}