Index: lib/WebGUI/Asset/Redirect.pm =================================================================== --- lib/WebGUI/Asset/Redirect.pm (revision 10657) +++ lib/WebGUI/Asset/Redirect.pm (working copy) @@ -59,6 +59,41 @@ my $session = shift; my $definition = shift; my $i18n = WebGUI::International->new($session,"Asset_Redirect"); + tie my %properties, 'Tie::IxHash', ( + redirectUrl=>{ + tab => "properties", + label => $i18n->get('redirect url'), + hoverHelp => $i18n->get('redirect url description'), + fieldType => 'url', + defaultValue => undef + }, + redirectType=>{ + tab => "properties", + label => $i18n->get('Redirect Type'), + hoverHelp => $i18n->get('redirect type description'), + fieldType => 'selectBox', + defaultValue => 302, + options => { + 302 => $i18n->get('302 Moved Temporarily'), + 301 => $i18n->get('301 Moved Permanently'), + } + }, + showInLayout => { + tab => "display", + fieldType => "yesNo", + label => $i18n->get('showInLayout label'), + hoverHelp => $i18n->get('showInLayout description'), + defaultValue=> 0, + }, + templateIdView => { + tab => "display", + fieldType => "template", + namespace => "Redirect", + label => $i18n->get('templateIdView label'), + hoverHelp => $i18n->get('templateIdView description'), + defaultValue=> "", + }, + ); push(@{$definition}, { assetName=>$i18n->get('assetName'), uiLevel => 9, @@ -66,26 +101,7 @@ icon=>'redirect.gif', tableName=>'redirect', className=>'WebGUI::Asset::Redirect', - properties=>{ - redirectUrl=>{ - tab => "properties", - label => $i18n->get('redirect url'), - hoverHelp => $i18n->get('redirect url description'), - fieldType => 'url', - defaultValue => undef - }, - redirectType=>{ - tab => "properties", - label => $i18n->get('Redirect Type'), - hoverHelp => $i18n->get('redirect type description'), - fieldType => 'selectBox', - defaultValue => 302, - options => { - 302 => $i18n->get('302 Moved Temporarily'), - 301 => $i18n->get('301 Moved Permanently'), - } - }, - }, + properties=>\%properties, }); return $class->SUPER::definition($session,$definition); } @@ -110,6 +126,38 @@ #------------------------------------------------------------------- +=head2 getTemplateVars ( ) + +=cut + +sub getTemplateVars { + my ( $self ) = @_; + my $var = $self->get; + $var->{ url } = $self->getUrl; + return $var; +} + +#------------------------------------------------------------------- + +=head2 prepareView ( ) + +See WebGUI::Asset::prepareView() for details. + +=cut + +sub prepareView { + my $self = shift; + return unless $self->get('showInLayout'); + $self->SUPER::prepareView(); + my $templateId = $self->get("templateIdView"); + my $template = WebGUI::Asset::Template->new($self->session, $templateId); + $template->prepare($self->getMetaDataAsTemplateVariables); + $self->{_viewTemplate} = $template; + return +} + +#------------------------------------------------------------------- + =head2 view ( ) Display the redirect url when in admin mode. @@ -118,7 +166,11 @@ sub view { my $self = shift; - if ($self->session->var->isAdminOn) { + if ( $self->get("showInLayout") ) { + my $template = $self->{_viewTemplate}; + return $self->processTemplate( $self->getTemplateVars, undef, $template ); + } + elsif ($self->session->var->isAdminOn) { return $self->getToolbar.' '.$self->getTitle.' '.$self->get('redirectUrl'); } else { Index: lib/WebGUI/i18n/English/Asset_Redirect.pm =================================================================== --- lib/WebGUI/i18n/English/Asset_Redirect.pm (revision 10657) +++ lib/WebGUI/i18n/English/Asset_Redirect.pm (working copy) @@ -64,7 +64,27 @@ context => q|label for Asset Manager, getName|, lastUpdated => 1128829970, }, + 'showInLayout label' => { + message => 'Show In Page Layout?', + lastUpdated => 0, + context => 'Label for asset property', + }, + 'showInLayout description' => { + message => "Should we show this Redirect in a Page Layout?", + lastUpdated => 0, + context => 'Description of asset property', + }, + 'templateIdView label' => { + message => 'Template for Page Layout', + lastUpdated => 0, + context => 'Label for asset property', + }, + 'templateIdView description' => { + message => "The template to use when showing the Redirect in a Page Layout", + lastUpdated => 0, + context => 'Description of asset property', + }, }; 1;