fix 11770 Starter needs to set all account plugins

Refactored HomePage wizard to have a method to update
all places where the style template needs to be updated
This commit is contained in:
Doug Bell 2010-08-10 12:24:28 -05:00
parent 89c1afd10e
commit 994f0aa98c
3 changed files with 44 additions and 28 deletions

View file

@ -8,6 +8,7 @@
- fixed #11759: email template missing
- fixed #11769: WebGUI::Asset::File::ZipArchive specifies a default template of ''
- fixed #11758: formatting on account stuff is wrong
- fixed #11770: Starter needs to set all account plugins
7.9.10
- fixed #11721: spamStopWords not in WebGUI.conf.original

View file

@ -89,6 +89,45 @@ sub canView {
#----------------------------------------------------------------------------
=head2 updateDefaultStyle ( styleTemplateId [, asset ])
Update the default style to the given style template. If an asset is given,
also update all descendants of that asset.
=cut
sub updateDefaultStyle {
my ( $self, $styleTemplateId, $home ) = @_;
my $session = $self->session;
# WebGUI::Account modules cannot be introspected, so we hard-code the default set here
my @settingStyles = qw( userFunctionStyleId contribStyleTemplateId fmStyleTemplateId
friendsStyleTemplateId inboxStyleTemplateId profileStyleTemplateId
shopStyleTemplateId userAccountStyleTemplateId );
for my $setting ( @settingStyles ) {
$session->setting->set( $setting, $styleTemplateId );
}
# update default content styles
if ( $home ) {
my $assetIter = $home->getLineageIterator( [ "self", "descendants" ] );
while ( 1 ) {
my $asset;
eval { $asset = $assetIter->() };
if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) {
$session->log->error($x->full_message);
next;
}
last unless $asset;
$asset->update( { styleTemplateId => $styleTemplateId } );
}
}
return;
}
#----------------------------------------------------------------------------
=head2 wrapStyle ( $output )
Wrap the output in the wizard style.
@ -255,18 +294,7 @@ sub www_chooseContentSave {
}
# update default site style
$session->setting->set( "userFunctionStyleId", $self->get('styleTemplateId') );
my $assetIter = $home->getLineageIterator( [ "self", "descendants" ] );
while ( 1 ) {
my $asset;
eval { $asset = $assetIter->() };
if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) {
$session->log->error($x->full_message);
next;
}
last unless $asset;
$asset->update( { styleTemplateId => $self->get("styleTemplateId") } );
}
$self->updateDefaultStyle( $self->get('styleTemplateId'), $home );
# add new pages
if ( $form->get("aboutUs") ) {

View file

@ -360,22 +360,9 @@ sub www_defaultStyleSave {
my ( $self, @args ) = @_;
my $output = WebGUI::Wizard::HomePage::www_pickStyleSave( $self, @args );
my $session = $self->session;
# update default site style
$session->setting->set( "userFunctionStyleId", $self->get('styleTemplateId') );
my $home = WebGUI::Asset->getDefault( $session );
my $assetIter = $home->getLineageIterator( [ "self", "descendants" ] );
while ( 1 ) {
my $asset;
eval { $asset = $assetIter->() };
if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) {
$session->log->error($x->full_message);
next;
}
last unless $asset;
if ( defined $asset ) {
$asset->update( { styleTemplateId => $self->get("styleTemplateId") } );
}
}
my $home = WebGUI::Asset->getDefault( $session );
WebGUI::Wizard::HomePage::updateDefaultStyle( $self, $self->get('styleTemplateId'), $home );
return $output;
}