From 75796c927d2d044e908ab1b8add7bd22db41da06 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Wed, 15 May 2002 00:24:07 +0000 Subject: [PATCH] Added ^Synopsis; macro. --- docs/upgrades/upgrade_3.7.0-3.8.0.sql | 5 +++ lib/WebGUI/Macro/Synopsis.pm | 65 +++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 lib/WebGUI/Macro/Synopsis.pm diff --git a/docs/upgrades/upgrade_3.7.0-3.8.0.sql b/docs/upgrades/upgrade_3.7.0-3.8.0.sql index 9bf423ec6..8c7d93cb0 100644 --- a/docs/upgrades/upgrade_3.7.0-3.8.0.sql +++ b/docs/upgrades/upgrade_3.7.0-3.8.0.sql @@ -44,6 +44,7 @@ alter table FAQ change widgetId wobjectId int not null; alter table FAQ_question change widgetId wobjectId int not null; + delete from international where language='Svenska'; INSERT INTO international VALUES (367,'WebGUI','Svenska','Bäst före'); INSERT INTO international VALUES (1,'Article','Svenska','Artikel'); @@ -623,4 +624,8 @@ INSERT INTO international VALUES (491,'WebGUI','Svenska','L INSERT INTO international VALUES (492,'WebGUI','Svenska','Profil attribut lista.'); INSERT INTO international VALUES (493,'WebGUI','Svenska','Tillbaka till siten.'); +delete from help where helpId=18; +delete from help where helpId=19; +INSERT INTO help VALUES (18,'WebGUI','English','Using','Style Sheets','Cascading Style Sheets (CSS) are a great way to manage the look and feel of any web site. They are used extensively in WebGUI.\r\n

\r\n\r\nIf you are unfamiliar with how to use CSS, Plain Black Software provides training classes on XHTML and CSS. Alternatively, Bradsoft makes an excellent CSS editor called Top Style.\r\n

\r\n\r\nThe following is a list of classes used to control the look of WebGUI:\r\n

\r\n\r\nA
\r\nThe links throughout the style.\r\n

\r\n\r\nBODY
\r\nThe default setup of all pages within a style.\r\n

\r\n\r\nH1
\r\nThe headers on every page.\r\n

\r\n\r\n.accountOptions
\r\nThe links that appear under the login and account update forms.\r\n

\r\n\r\n.adminBar
\r\nThe bar that appears at the top of the page when you\'re in admin mode.\r\n

\r\n\r\n.content
\r\nThe main content area on all pages of the style.\r\n

\r\n\r\n.crumbTrail
\r\nThe crumb trail (if you\'re using that macro).\r\n

\r\n\r\n.formDescription
\r\nThe tags on all forms next to the form elements. \r\n

\r\n\r\n.formSubtext
\r\nThe tags below some form elements.\r\n

\r\n\r\n.highlight
\r\nDenotes a highlighted item, such as which message you are viewing within a list.\r\n

\r\n\r\n.homeLink
\r\nUsed by the my home (^H;) macro.\r\n

\r\n\r\n.horizontalMenu
\r\nThe horizontal menu (if you use a horizontal menu macro).\r\n

\r\n\r\n.loginBox
\r\nThe login box (^L;) macro.\r\n

\r\n\r\n.makePrintableLink
\r\nUsed by the make printable (^r;) macro.\r\n

\r\n\r\n.myAccountLink
\r\nUsed by the my account (^a;) macro.\r\n

\r\n\r\n.pagination
\r\nThe Previous and Next links on pages with pagination.\r\n

\r\n\r\n.synopsis_sub
\r\nUsed by the ^Synopsis; macro to display sub pages.\r\n

\r\n\r\n.synopsis_summary
\r\nUsed by the ^Synopsis; macro to display the synopsis from the page.\r\n

\r\n\r\n.synopsis_title
\r\nUsed by the ^Synopsis; macro to display the menu title of a page.\r\n

\r\n\r\n.searchBox
\r\nUsed by the search (^?;) macro.\r\n

\r\n\r\n.selectedMenuItem
\r\nUsed by the FlexMenu (^FlexMenu;) macro.\r\n

\r\n\r\n.tableData
\r\nThe data rows on things like message boards and user contributions.\r\n

\r\n\r\n.tableHeader
\r\nThe headings of columns on things like message boards and user contributions.\r\n

\r\n\r\n.tableMenu
\r\nThe menu on things like message boards and user submissions.\r\n

\r\n\r\n.verticalMenu
\r\nThe vertical menu (if you use a verticall menu macro).\r\n

\r\n\r\nNote: Some widgets have their own unique styles.\r\n\r\n','0'); +INSERT INTO help VALUES (19,'WebGUI','English','Using','Macros','WebGUI macros are used to create dynamic content within otherwise static content. For instance, you may wish to show which user is logged in on every page, or you may wish to have a dynamically built menu or crumb trail. \r\n

\r\nMacros always begin with a carat (^) and follow with at least one other character and ended with w semicolon (;). Some macros can be extended/configured by taking the format of ^x(\"config text\");. The following is a description of all the macros in the WebGUI system.\r\n

\r\n^a; or ^a(); - My Account Link
\r\nA link to your account information. In addition you can change the link text by creating a macro like this ^a(\"Account Info\");. \r\n

\r\nNote: You can also use the special case ^a(linkonly); to return only the URL to the account page and nothing more.\r\n

\r\n^C; or ^C(); - Crumb Trail
\r\nA dynamically generated crumb trail to the current page. You can optionally specify a delimeter to be used between page names by using ^C(::);. The default delimeter is >.\r\n

\r\n^c; - Company Name
\r\nThe name of your company specified in the settings by your Administrator.\r\n

\r\n^D; or ^D(); - Date
\r\nThe current date and time.\r\n

\r\nYou can configure the date by using date formatting symbols. For instance, if you created a macro like this ^D(\"%c %D, %y\"); it would output September 26, 2001. The following are the available date formatting symbols:\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
%%%
%y4 digit year
%Y2 digit year
%m2 digit month
%Mvariable digit month
%cmonth name
%d2 digit day of month
%Dvariable digit day of month
%wday of week name
%h2 digit base 12 hour
%Hvariable digit base 12 hour
%j2 digit base 24 hour
%Jvariable digit base 24 hour
%plower case am/pm
%Pupper case AM/PM
\r\n

\r\n^e; - Company Email Address
\r\nThe email address for your company specified in the settings by your Administrator.\r\n

\r\n^Execute();
\r\nAllows a content manager or administrator to execute an external program. Takes the format of ^Execute(\"/this/file.sh\");.\r\n

\r\n^FlexMenu;
\r\nThis menu macro creates a top-level menu that expands as the user selects each menu item.\r\n

\r\n^FormParam();
\r\nThis macro is mainly used in generating dynamic queries in SQL Reports. Using this macro you can pull the value of any form field simply by specifing the name of the form field, like this: ^FormParam(\"phoneNumber\");\r\n

\r\n^H; or ^H(); - Home Link
\r\nA link to the home page of this site. In addition you can change the link text by creating a macro like this ^H(\"Go Home\");.\r\n

\r\nNote: You can also use the special case ^H(linkonly); to return only the URL to the home page and nothing more.\r\n

\r\n^I(); - Image Manager Image with Tag
\r\nThis macro returns an image tag with the parameters for an image defined in the image manager. Specify the name of the image using a tag like this ^I(\"imageName\");.\r\n

\r\n^i(); - Image Manager Image Path
\r\nThis macro returns the path of an image uploaded using the Image Manager. Specify the name of the image using a tag like this ^i(\"imageName\");.\r\n

\r\n^Include();
\r\nAllows a content manager or administrator to include a file from the local filesystem. Takes the format of ^Include(\"/this/file.html\");\r\n

\r\n^L; or ^L(); - Login
\r\nA small login form. You can also configure this macro. You can set the width of the login box like this ^L(20);. You can also set the message displayed after the user is logged in like this ^L(20,Hi ^a(^@;);. Click %here% if you wanna log out!)\r\n

\r\n^M; or ^M(); - Current Menu (Vertical)
\r\nA vertical menu containing the sub-pages at the current level. In addition, you may configure this macro by specifying how many levels deep the menu should go. By default it will show only the first level. To go three levels deep create a macro like this ^M(3);. If you set the macro to \"0\" it will track the entire site tree.\r\n

\r\n^m; - Current Menu (Horizontal)
\r\nA horizontal menu containing the sub-pages at the current level. You can optionally specify a delimeter to be used between page names by using ^m(:--:);. The default delimeter is ·.\r\n

\r\n^P; or ^P(); - Previous Menu (Vertical)
\r\nA vertical menu containing the sub-pages at the previous level. In addition, you may configure this macro by specifying how many levels deep the menu should go. By default it will show only the first level. To go three levels deep create a macro like this ^P(3);. If you set the macro to \"0\" it will track the entire site tree.\r\n

\r\n^p; - Previous Menu (Horizontal)
\r\nA horizontal menu containing the sub-pages at the previous level. You can optionally specify a delimeter to be used between page names by using ^p(:--:);. The default delimeter is ·.\r\n

\r\n^PageTitle;
\r\nDisplays the title of the current page.\r\n

\r\n^r; or ^r(); - Make Page Printable
\r\nCreates a link to remove the style from a page to make it printable. In addition, you can change the link text by creating a macro like this ^r(\"Print Me!\");.\r\n

\r\nNote: You can also use the special case ^r(linkonly); to return only the URL to the make printable page and nothing more.\r\n

\r\n^S(); - Specific SubMenu (Vertical)
\r\nThis macro allows you to get the submenu of any page, starting with the page you specified. For instance, you could get the home page submenu by creating a macro that looks like this ^S(\"home\",0);. The first value is the urlized title of the page and the second value is the depth you\'d like the menu to go. By default it will show only the first level. To go three levels deep create a macro like this ^S(\"home\",3);.\r\n

\r\n^s(); - Specific SubMenu (Horizontal)
\r\nThis macro allows you to get the submenu of any page, starting with the page you specified. For instance, you could get the home page submenu by creating a macro that looks like this ^s(\"home\");. The value is the urlized title of the page. You can optionally specify a delimeter to be used between page names by using ^s(\"home\",\":--:\");. The default delimeter is ·.\r\n

\r\n^Synopsis; or ^Synopsis(); Menu
\r\nThis macro allows you to get the submenu of a page along with the synopsis of each link. You may specify an integer to specify how many levels deep to traverse the page tree.\r\n

\r\n^T; or ^T(); - Top Level Menu (Vertical)
\r\nA vertical menu containing the main pages of the site (aka the sub-pages from the home page). In addition, you may configure this macro by specifying how many levels deep the menu should go. By default it will show only the first level. To go three levels deep create a macro like this ^T(3);. If you set the macro to \"0\" it will track the entire site tree.\r\n

\r\n^t; - Top Level Menu (Horizontal)
\r\nA vertical menu containing the main pages of the site (aka the sub-pages from the home page). You can optionally specify a delimeter to be used between page names by using ^t(:--:);. The default delimeter is ·.\r\n

\r\n^Thumbnail();
\r\nReturns the URL of a thumbnail for an image from the image manager. Specify the name of the image like this ^Thumbnail(\"imageName\");.\r\n

\r\n^u; - Company URL
\r\nThe URL for your company specified in the settings by your Administrator.\r\n

\r\n^/; - System URL
\r\nThe URL to the gateway script (including the domain for this site). This is often used within pages so that if your development server is on a domain different than your production server that your URLs will still worked when moved.\r\n

\r\n^\\; - Page URL
\r\nThe URL to the current page (including the domain for this site). This is often used within pages so that if your development server is on a domain different than your production server that your URLs will still worked when moved.\r\n

\r\n^@; - Username
\r\nThe username of the currently logged in user.\r\n

\r\n^?; - Search
\r\nAdd a search box.\r\n

\r\n^#; - User ID
\r\nThe user id of the currently logged in user.\r\n

\r\n^*; or ^*(); - Random Number
\r\nA randomly generated number. This is often used on images (such as banner ads) that you want to ensure do not cache. In addition, you may configure this macro like this ^*(100); to create a random number between 0 and 100.\r\n

\r\n^-;,^0;,^1;,^2;,^3;, etc.
\r\nThese macros are reserved for widget-specific functions as in the SQL Report widget.\r\n','0'); diff --git a/lib/WebGUI/Macro/Synopsis.pm b/lib/WebGUI/Macro/Synopsis.pm new file mode 100644 index 000000000..6639cbfc3 --- /dev/null +++ b/lib/WebGUI/Macro/Synopsis.pm @@ -0,0 +1,65 @@ +package WebGUI::Macro::Synopsis; + +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2002 Plain Black Software. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +use strict; +use WebGUI::Session; + + +#------------------------------------------------------------------- +sub traversePageTreeSynopsis { + my ($sth, $output, $parent_id, $current_level, $max_level) = @_; + ($parent_id, $current_level, $max_level) = @_; + if ($max_level && ($current_level >= $max_level)) { + return; + } + $sth = WebGUI::SQL->read("select urlizedTitle, menuTitle, pageId, synopsis from page where parentId='$parent_id' order by sequenceNumber"); + while (my ($urltitle, $menutitle, $pageid, $synopsis) = $sth->array) { + if (!WebGUI::Privilege::canViewPage($pageid)) { + next; + } + $urltitle = WebGUI::URL::gateway($urltitle); + my $subsynopsis = traversePageTreeSynopsis($pageid,$current_level+1,$max_level); + $output .= qq{ +

+ +
+ $synopsis +
+
+ $subsynopsis +
+
+ }; + } + $sth->finish; + return $output; +} + + +#------------------------------------------------------------------- +sub process { + my ($output) = @_; + # Singleton + if ($output =~ /\^Synopsis\;/) { + $output =~ s/\^Synopsis;/$session{page}{synopsis}/g; + return $output; + } + # Tree + $output =~ s/\^Synopsis\((\d+)\)\;/traversePageTreeSynopsis($session{page}{pageId},0,$1)/eg; + return $output; +} + +1; + +