add ability to show metadata values in head blocks.
This commit is contained in:
parent
c15ba6147f
commit
36eb8db8fc
43 changed files with 96 additions and 49 deletions
|
|
@ -28,6 +28,7 @@
|
|||
- fixed: Thingy: default thing property hidden (Yung Han Khoe)
|
||||
- fixed: Ad Space Description Text Keeps Repopulating
|
||||
- fixed: Disabled Shipping methods still available
|
||||
- added: ability to have metadata tags in head blocks
|
||||
|
||||
7.5.20
|
||||
- fixed: DataForm acknowledgement screen shows incorrect value for Date/Time fields
|
||||
|
|
|
|||
|
|
@ -2044,13 +2044,7 @@ sub processTemplate {
|
|||
|
||||
$template = WebGUI::Asset->new($self->session, $templateId,"WebGUI::Asset::Template") unless (defined $template);
|
||||
if (defined $template) {
|
||||
my $meta = {};
|
||||
if ($self->session->setting->get("metaDataEnabled")) {
|
||||
$meta = $self->getMetaDataFields();
|
||||
}
|
||||
foreach my $field (keys %$meta) {
|
||||
$var->{$meta->{$field}{fieldName}} = $meta->{$field}{value};
|
||||
}
|
||||
$var = { %{ $var }, %{ $self->getMetaDataAsTemplateVariables } };
|
||||
$var->{'controls'} = $self->getToolbar;
|
||||
my %vars = (
|
||||
%{$self->{_properties}},
|
||||
|
|
|
|||
|
|
@ -1435,7 +1435,7 @@ sub prepareView {
|
|||
}
|
||||
|
||||
my $template = WebGUI::Asset::Template->new($self->session,$templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -601,7 +601,7 @@ sub prepareView {
|
|||
|
||||
my $template
|
||||
= WebGUI::Asset::Template->new($self->session, $self->getGallery->get("templateIdViewFile"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -564,7 +564,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->getParent->get("threadTemplateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ sub www_view {
|
|||
return '' unless $self->getParent->canView; # Go to parent for auth
|
||||
my $parent = $self->getParent;
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $parent->get('rssCapableRssTemplateId'));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->session->http->setMimeType('text/xml');
|
||||
|
||||
my $var = {};
|
||||
|
|
|
|||
|
|
@ -656,7 +656,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
my $shortcut = $self->getShortcut;
|
||||
$shortcut->prepareView if defined $shortcut;
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ sub prepareView {
|
|||
$self->SUPER::prepareView();
|
||||
my $templateId = $self->get("templateId");
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ sub prepareView {
|
|||
$self->SUPER::prepareView();
|
||||
my $templateId = $self->get("templateId");
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -676,7 +676,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -445,7 +445,7 @@ sub prepareView {
|
|||
$self->SUPER::prepareView();
|
||||
my $templateId = $self->get("templateId");
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -284,22 +284,27 @@ sub indexContent {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 prepare ( )
|
||||
=head2 prepare ( headerTemplateVariables )
|
||||
|
||||
This method sets the tags from the head block parameter of the template into the HTML head block in the style. You only need to call this method if you're using the HTML streaming features of WebGUI, like is done in the prepareView()/view()/www_view() methods of WebGUI assets.
|
||||
|
||||
=head3 headerTemplateVariables
|
||||
|
||||
A hash reference containing template variables to be processed for the head block. Typically obtained via $asset->getMetaDataAsTemplateVariables.
|
||||
|
||||
=cut
|
||||
|
||||
sub prepare {
|
||||
my $self = shift;
|
||||
my $vars = shift;
|
||||
$self->{_prepared} = 1;
|
||||
my $templateHeadersSent = $self->session->stow->get("templateHeadersSent") || [];
|
||||
my @sent = @{$templateHeadersSent};
|
||||
unless (isIn($self->getId, @sent)) { # don't send head block if we've already sent it for this template
|
||||
if ($self->session->style->sent) {
|
||||
$self->session->output->print($self->get("headBlock"));
|
||||
$self->session->output->print($self->getParser($self->session, $self->get('parser'))->process($self->get('headBlock'), $vars));
|
||||
} else {
|
||||
$self->session->style->setRawHeadTags($self->get("headBlock"));
|
||||
$self->session->style->setRawHeadTags($self->getParser($self->session, $self->get('parser'))->process($self->get('headBlock'), $vars));
|
||||
}
|
||||
}
|
||||
push(@sent, $self->getId);
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ sub prepareView {
|
|||
$templateId = $self->session->form->process("overrideTemplateId");
|
||||
}
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -930,7 +930,7 @@ sub prepareView {
|
|||
#$self->session->errorHandler->warn("Prepare view ".$view." with template ".$self->get("templateId".$view));
|
||||
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId".$view));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1180,7 +1180,7 @@ sub prepareView {
|
|||
if ($self->get('rssCapableRssEnabled')) {
|
||||
$self->session->style->setLink($self->getRssUrl,{ rel=>'alternate', type=>'application/rss+xml', title=>$self->get('title') . ' RSS' });
|
||||
}
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -961,7 +961,7 @@ sub prepareViewListAlbums {
|
|||
my $self = shift;
|
||||
my $template
|
||||
= WebGUI::Asset::Template->new($self->session, $self->get("templateIdListAlbums"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -629,7 +629,7 @@ sub prepareView {
|
|||
|
||||
my $template
|
||||
= WebGUI::Asset::Template->new($self->session, $templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->getValue("inOutTemplateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -330,7 +330,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -511,7 +511,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("projectDashboardTemplateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -437,7 +437,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -324,7 +324,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -573,7 +573,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -595,7 +595,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_SyndicatedContent');
|
||||
my $rssFeedSuffix=$i18n->get('RSS Feed Title Suffix');
|
||||
|
|
|
|||
|
|
@ -946,7 +946,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
return undef;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ sub prepareView {
|
|||
#} else {
|
||||
$template = WebGUI::Asset::Template->new($self->session, $self->get("userViewTemplateId"));
|
||||
#}
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ sub prepareView {
|
|||
$templateId = $self->session->form->process("overrideTemplateId");
|
||||
}
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $templateId);
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
|
||||
return undef;
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ sub prepareView {
|
|||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare;
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,6 +115,28 @@ sub deleteMetaDataField {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getMetaDataAsTemplateVariables
|
||||
|
||||
Returns the metadata as template variables for use in the head block.
|
||||
|
||||
=cut
|
||||
|
||||
sub getMetaDataAsTemplateVariables {
|
||||
my $self = shift;
|
||||
my $var = {};
|
||||
my $meta = {};
|
||||
|
||||
if ($self->session->setting->get("metaDataEnabled")) {
|
||||
$meta = $self->getMetaDataFields();
|
||||
}
|
||||
foreach my $field (keys %$meta) {
|
||||
$var->{$meta->{$field}{fieldName}} = $meta->{$field}{value};
|
||||
}
|
||||
return $var;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getMetaDataFields ( [fieldId] )
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ use WebGUI::VersionTag;
|
|||
|
||||
use Test::More; # increment this value for each test you create
|
||||
use Test::Deep;
|
||||
plan tests => 12;
|
||||
plan tests => 13;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
$session->user({userId => 3});
|
||||
|
|
@ -189,6 +189,31 @@ cmp_deeply(
|
|||
'Snippet does not have a value, yet'
|
||||
);
|
||||
|
||||
####################################################
|
||||
#
|
||||
# getMetaDataAsTemplateVariables
|
||||
#
|
||||
####################################################
|
||||
|
||||
# add another field for comparison
|
||||
$folder->addMetaDataField('new', 'book', '', 'Favorite book', 'radioList', "1984\nDune\nLord of the Rings\nFoundation Trilogy");
|
||||
|
||||
# set it; need to update $foMetaData and $byName.
|
||||
$foMetaData = $folder->getMetaDataFields;
|
||||
$byName = buildNameIndex($foMetaData);
|
||||
$folder->updateMetaData( $byName->{'book'}, '1984' );
|
||||
|
||||
# check that they're equal
|
||||
cmp_deeply(
|
||||
$folder->getMetaDataAsTemplateVariables,
|
||||
{
|
||||
'book' => '1984',
|
||||
'sport' => 'underwaterHockey',
|
||||
'searchEngine' => undef,
|
||||
},
|
||||
'getMetaDataAsTemplateVariables returns proper values for folder'
|
||||
);
|
||||
|
||||
sub buildNameIndex {
|
||||
my ($fidStruct) = @_;
|
||||
my $nameStruct;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue