Add another error message to FileUrl so that it's clear that there

are no files, rather than the wrong URL.
Update Page macro docs to show it works on _any_ asset, not just Pages.
This commit is contained in:
Colin Kuskie 2006-07-21 16:10:11 +00:00
parent 1fe73fa764
commit 2b03fdc73d
3 changed files with 9 additions and 5 deletions

View file

@ -43,16 +43,15 @@ sub process {
my $session = shift; my $session = shift;
my $url = shift; my $url = shift;
my $asset = WebGUI::Asset->newByUrl($session,$url); my $asset = WebGUI::Asset->newByUrl($session,$url);
my $i18n = WebGUI::International->new($session, 'Macro_FileUrl');
if (not defined $asset) { if (not defined $asset) {
$session->errorHandler->warn("^FileUrl($url): asset not found"); $session->errorHandler->warn("^FileUrl($url): asset not found");
my $i18n = WebGUI::International->new($session, 'Macro_FileUrl');
return $i18n->get('invalid url'); return $i18n->get('invalid url');
} }
my $storageId = $asset->get('storageId'); my $storageId = $asset->get('storageId');
if (not defined $storageId) { if (not defined $storageId) {
$session->errorHandler->warn("^FileUrl($url): asset is not a file"); $session->errorHandler->warn("^FileUrl($url): asset is not a file");
my $i18n = WebGUI::International->new($session, 'Macro_FileUrl'); return $i18n->get('no storage');
return $i18n->get('invalid url');
} }
my $storage = WebGUI::Storage->get($session,$storageId); my $storage = WebGUI::Storage->get($session,$storageId);
return $storage->getUrl($asset->get("filename")); return $storage->getUrl($asset->get("filename"));

View file

@ -26,6 +26,11 @@ This macro is used to return a filesystem URL to a File or Image Asset identifie
lastUpdated => 1134855446, lastUpdated => 1134855446,
}, },
'no storage' => {
message => q|The Asset you requested does not store files.|,
lastUpdated => 1153498370,
},
}; };
1; 1;

View file

@ -19,9 +19,9 @@ our $I18N = {
This can be used to retrieve information about the current asset. For instance it could be used to get the page URL like this ^Page("urlizedTitle"); or to get the menu title like this ^Page("menuTitle");. If the macro is called outside the context of This can be used to retrieve information about the current asset. For instance it could be used to get the page URL like this ^Page("urlizedTitle"); or to get the menu title like this ^Page("menuTitle");. If the macro is called outside the context of
an asset, or if the property doesn't exist, then it returns nothing. an asset, or if the property doesn't exist, then it returns nothing.
</p> </p>
<p>Properties available for retrieval depend on the type of asset that is being queried.</p>
|, |,
lastUpdated => 1153177069, lastUpdated => 1153339253,
}, },
}; };