Add template variables for determining if a story has photos, and how many it has.

Tests, help, i18n.
This commit is contained in:
Colin Kuskie 2009-03-23 15:08:54 +00:00
parent 7b6ea1350f
commit 8b071cb892
4 changed files with 34 additions and 3 deletions

View file

@ -763,8 +763,10 @@ sub viewTemplateVariables {
$var->{updatedTimeEpoch} = $self->get('revisionDate');
$var->{crumb_loop} = $self->getCrumbTrail();
my $photoData = $self->getPhotoData;
$var->{photo_loop} = [];
PHOTO: foreach my $photo (@{ $self->getPhotoData}) {
my $photoCounter = 0;
PHOTO: foreach my $photo (@{ $photoData }) {
next PHOTO unless $photo->{storageId};
my $storage = WebGUI::Storage->get($session, $photo->{storageId});
my $file = $storage->getFiles->[0];
@ -777,8 +779,11 @@ sub viewTemplateVariables {
imageAlt => $photo->{alt},
imageTitle => $photo->{title},
imageLink => $photo->{url},
}
};
++$photoCounter;
}
$var->{hasPhotos} = $photoCounter;
$var->{singlePhoto} = $photoCounter == 1;
return $var;
}

View file

@ -80,6 +80,8 @@ our $HELP = {
},
],
},
{ name => 'hasPhotos', },
{ name => 'singlePhoto', },
{ name => 'photo_loop',
'variables' => [
{ name => 'imageUrl', },

View file

@ -428,6 +428,24 @@ our $I18N = {
lastUpdated => 0,
},
'hasPhotos' => {
message => q|This template variable will be true if the Story has photos uploaded to it.|,
context => q|Template variable|,
lastUpdated => 0,
},
'singlePhoto' => {
message => q|This template variable will be true if the Story has just 1 photo uploaded to it.|,
context => q|Template variable|,
lastUpdated => 0,
},
'imageLink' => {
message => q|A URL for the image to link to.|,
context => q|Template variable|,
lastUpdated => 0,
},
};
1;

View file

@ -21,7 +21,7 @@ use Test::Deep;
use Data::Dumper;
my $tests = 1;
plan tests => 28
plan tests => 32
+ $tests
;
@ -285,6 +285,9 @@ cmp_deeply(
'viewTemplateVariables: photo_loop is okay'
);
ok(! $viewVariables->{singlePhoto}, 'viewVariables: singlePhoto: there is more than 1');
ok( $viewVariables->{hasPhotos}, 'viewVariables: hasPhotos: it has photos');
##Simulate someone deleting the file stored in the storage object.
$storage2->deleteFile('lamp.jpg');
$viewVariables = $story->viewTemplateVariables;
@ -304,6 +307,9 @@ cmp_deeply(
'viewTemplateVariables: photo_loop: if the storage has no files, it is not shown'
);
ok($viewVariables->{singlePhoto}, 'viewVariables: singlePhoto: there is just 1');
ok($viewVariables->{hasPhotos}, 'viewVariables: hasPhotos: it has photos');
}
END {