diff --git a/docs/upgrades/upgrade_5.2.6-5.3.0.sql b/docs/upgrades/upgrade_5.2.6-5.3.0.sql
index 43fe7b846..8c6220034 100644
--- a/docs/upgrades/upgrade_5.2.6-5.3.0.sql
+++ b/docs/upgrades/upgrade_5.2.6-5.3.0.sql
@@ -557,4 +557,12 @@ delete from settings where name='proxiedClientAddress';
insert into settings(name,value) values('proxiedClientAddress', '0');
delete from international where languageId=1 and namespace='WebGUI' and internationalId=973;
insert into international (internationalId,languageId,namespace,message,lastUpdated) values (973,1,'WebGUI','If proxied, use real client IP address?', 1053459227);
+delete from international where languageId=1 and namespace='Article' and internationalId=73;
+insert into international (internationalId,languageId,namespace,message,lastUpdated,context) values (73,1,'Article','The following template variables are available for article templates.\r\n
\r\n\r\ndescription.full
\r\nThe full description without any pagination. (For the paginated description use "description" instead.)\r\n\r\n\r\ndescription.first.100characters
\r\nThe first 100 characters of the description.\r\n
\r\n\r\ndescription.first.20words
\r\nThe first 20 words of the description. Words are defined as characters separated by whitespace, so HTML entities and tags count as words.\r\n
\r\n\r\ndescription.first.paragraph
\r\nThe first paragraph of the description. The first paragraph is determined by the first carriage return found in the text.\r\n
\r\n\r\nattachment.box
\r\nOutputs a standard WebGUI attachment box including icon, filename, and attachment indicator.\r\n
\r\n\r\nattachment.icon
\r\nThe URL to the icon image for this attachment type.\r\n\r\n\r\nattachment.name
\r\nThe filename for this attachment.\r\n\r\n\r\nattachment.url
\r\nThe URL to download this attachment.\r\n\r\n\r\nimage.thumbnail
\r\nThe URL to the thumbnail for the attached image.\r\n\r\n\r\nimage.url
\r\nThe URL to the attached image.\r\n\r\n\r\npost.label
\r\nThe translated label to add a comment to this article.\r\n\r\n\r\n\r\npost.URL
\r\nThe URL to add a comment to this article.\r\n\r\n\r\nreplies.count
\r\nThe number of comments attached to this article.\r\n\r\n\r\nreplies.label
\r\nThe translated text indicating that you can view the replies.\r\n\r\n\r\nreplies.url
\r\nThe URL to view the replies to this article.\r\n\r\n\r\n\r\nfirstPage
\r\nA link to the first page in the paginator.\r\n\r\n\r\nlastPage
\r\nA link to the last page in the paginator.\r\n\r\n\r\nnextPage
\r\nA link to the next page forward in the paginator.\r\n\r\n\r\npreviousPage
\r\nA link to the next page backward in the paginator.\r\n\r\n\r\npageList
\r\nA list of links to all the pages in the paginator.\r\n\r\n\r\nmultiplePages
\r\nA conditional indicating whether there is more than one page in the paginator.\r\n\r\n\r\nisFirstPage
\r\nA conditional indicating whether the visitor is viewing the first page.\r\n\r\n\r\nisLastPage
\r\nA conditional indicating whether the visitor is viewing the last page.\r\n\r\n\r\n', 1053469941,NULL);
+delete from international where languageId=1 and namespace='WebGUI' and internationalId=828;
+insert into international (internationalId,languageId,namespace,message,lastUpdated,context) values (828,1,'WebGUI','Most wobjects have templates that allow you to change the layout of the wobject\'s user interface. Those wobjects that do have templates all have a common set of template variables that you can use for layout, as well as their own custom variables. The following is a list of the common template variables shared among all wobjects.\r\n\r\ntitle
\r\nThe title for this wobject.\r\n\r\n\r\ndisplayTitle
\r\nA conditional variable for whether or not the title should be displayed.\r\n\r\n\r\ndescription
\r\nThe description of this wobject.\r\n\r\n\r\nwobjectId
\r\nThe unique identifier that WebGUI uses to control this wobject.\r\n\r\n\r\nisShortcut
\r\nA conditional indicating if this wobject is a shortcut to an original wobject.\r\n\r\n\r\noriginalURL
\r\nIf this wobject is a shortcut, then this URL will direct you to the original wobject.\r\n', 1053469640,NULL);
+
+
+
+
diff --git a/lib/WebGUI/Wobject.pm b/lib/WebGUI/Wobject.pm
index 3668d88da..c8621b808 100644
--- a/lib/WebGUI/Wobject.pm
+++ b/lib/WebGUI/Wobject.pm
@@ -801,6 +801,11 @@ sub processTemplate {
%{$_[0]->{_property}},
%{$_[2]}
);
+ if (defined $_[0]->get("_WobjectProxy")) {
+ $vars{isShortcut} = 1;
+ my ($originalPageURL) = WebGUI::SQL->quickArray("select urlizedTitle from page where pageId=".$_[0]->get("pageId"));
+ $vars{originalURL} = WebGUI::URL::gateway($originalPageURL."#".$_[0]->get("wobjectId"));
+ }
my $namespace = $_[3] || $_[0]->get("namespace");
return WebGUI::Template::process(WebGUI::Template::get($_[1],$namespace), \%vars);
}
diff --git a/lib/WebGUI/Wobject/Article.pm b/lib/WebGUI/Wobject/Article.pm
index b21cf2521..9164eebc9 100644
--- a/lib/WebGUI/Wobject/Article.pm
+++ b/lib/WebGUI/Wobject/Article.pm
@@ -131,8 +131,15 @@ sub www_view {
}
$var{description} = $_[0]->get("description");
if ($_[0]->get("convertCarriageReturns")) {
- $var{description} =~ s/\n/\
/g;
+ $var{description} =~ s/\n/\
\n/g;
}
+ $var{"description.full"} = $var{description};
+ $var{"description.full"} =~ s/\^\-\;//g;
+ $var{"description.first.100characters"} = substr($var{"description.full"},0,100);
+ $var{"description.first.20words"} = $var{"description.full"};
+ $var{"description.first.20words"} =~ s/(((\S+)\s+){20}).*/$1/s;
+ $var{"description.first.paragraph"} = $var{"description.full"};
+ $var{"description.first.paragraph"} =~ s/^(.*?)\n.*/$1/s;
if ($session{form}{makePrintable}) {
$var{description} =~ s/\^\-\;//g;
$var{isFirstPage} = 1;