This summary is primarily for the site designer and Admin.

The tags are used in four areas:
  1. Page Content
  2. Event Detail Page
  3. Catalog Pages


All tags are in the format of |.something.|  This allows them to be displayed both in page design software (e.g., Dreamweaver, Komposer) and in the CMS's built in text editor. 

Page Content Tags:

Background Why things work the way they do.

These tags apply to the part of the catalog system which uses catalog.tp1, that is the program to list all the categories on site (, the categories and products under a givent category (all top level categories if no category is specified) (, product search results pages ( and the shopping cart contents (

Special Purpose Tags
|.header.| Must be placed in the HEAD section of a template.  Program may place various bits of code, usually java-script where this tag occurs.

Normally used to generate the contents of a pop up, very much like this one.  Internally generated template supports mtitle, mdescription, mkeywords and all the content areas of the page displayed one after another.  Note: this is how this help page was generated. 
A pop up requires two elements: a link on a page (the parent page) which calls a second page (the pop up page).  This tag is placed on the pop up page and generates a specially formatted page using style sheet in 'Default.tpl' with a Close function at the top and all of the content areas arranged in order.

Logs out the user from a restricted session.  Second variant is preferred since it will take the visitor to the page whose page ID is # rather than just re-displaying the log in screen. Available only on pages which are Restricted to a specific group.  Fix for browsers which do not reliably erase session cookies.  Re-displays the current page, but since the visitor is no longer logged in the log in page is displayed instead of the actual content.  Tag generates a link back, around the words Log Out, surrounded by DIV tags with an ID='logout'.
|.buyButton:##.| Replaced with form with embedded buy for product ##.  Uses either string contained in the configuration for the "Buy Button Text" or the internal default.  String is must contain a form statement calling with hidden variable Action = Add and PRIDQ= (system will perform needed substitution. Multiple buyButton tags can appear on the page.
|.currentPID.| Replaced by the Page ID of the current page.  Useful when a script is needed to identify the page ID (e.g., facebook like function use /cgi-bin/complex2/   Use the link format not the SEO friendly URL in a template since the PID will automatically change to match the current page.
Tags which must appear in the Page Template
|.content:#.| Without the :# element this specifies the basic Content area of the page. The :# where # is 1 through the maximum configured content section for the page.  loaded in order so in theory the content of the second or subsequent section for a page could be installed into the first.
|.ctitle:#.| The text from the "Note" or content title above the specific content area.  Without the :# element this specifies the Note text for the main content area.  The :# specifies the 1..max Content area, specifies the "Note" text for that content area.  Note: the system does not force the page editors to put anything in these fields.
|.Is_Auth:##:##.| ##'s are two page IDs. If the visitor is signed in then the contents of the first page is substituted. If the visitor is not signed in then the contents of the second page is substituted.  Note: because the |.content:#.|(s) are applied first, |.Is_Auth:##:##.| can appear in the primary content area.  It cannot appear in a |. pContent:#.| tag.
|.mkeywords.| (Opt.)If present generates a properly formed Meta Keywords element.  Needs to be placed in the HEAD element of the page.
|.mdescription.| {Opt.} If present generates a properly formed meta description if a meta description is defined for the page. Used in the HEAD element of the page.
Tags which add more content
|.pContent:#.| Basic Content Section with Page ID=#. Note: can be nested to a depth of 3 (i.e., basic template can contain pContent tag which in turn can contain pContent tag which cannot contain another pContent tag). Limit is to prevent tags which refer to a content area which contain themselves.  Note: only the top content area can be used  Normally the page supplying the content is a hidden page.  Remember content can contain this tag, which can contain this tag, which can contain this tag, but it stops at three levels of recursion. (can you say infinite loop).
General Tags These and all subsequent tags can appear multiple times in either content or template(s).
|.btitle.| Page Title
|. mtitle.| Page specific title, normally put in as all or part of the title element of the page.  Think "meta-title" (see also All Tags for the title which displays the Page Title value and is normally used inside the HEAD element of the page. Note: it is however, just a text string.
Create an unordered list of pages from the home page (if the page id of the home page is set in configuration) or to top page of the section (i.e., page in section with display priority of 1:1) if a home page has not been set in the configuration.
Second variant allows d: direction (i.e., 'L' or 'R'), html (HTML code for symbol between elements, both are optional and an '•' will be used if not provided. If the HTML code is specified then the direction must be specified.  If HTML includes List element   then it builds complete unordered list around the result.  Used with a direction 'R' will allow the the breadcrumbs (with proper css setup) to grow from right to left.
|.section.| The title of the current section. Leading '~' and ## - are removed before displaying the text.
|.scriptBase.| Replaced by /cgi-bin/complex2 . Used since tiny MCE our text editor strips this off.
|.mkPop:x:y:Link text::address to be displayed in the popup.| Generate a popup of 'x' pixels wide and 'y' pixels tall.  Link text, typically 'here' is what is clicked on to open the popup. The last part is the address of contents of a popup.  If the target is a content page
|.StaticURL.| Displays to contents of Redirect URL (note: if not marked as static this field is ignored so it can be any text string including embedded HTML but no quotes).   If redirect is marked then the system will just issue a redirect to the URL specified and only the Page Title and diplay order have any meaning. 
Image Related Tags
Select all non-thumbnail images  in media folder LLLL.  Set up java script to rotate them every TTT millisecond (1000 milliseconds = 1 second). Alignment (Left or Right) determines on which side of the adjacent text the images will appear. Second variant uses the tumbnail images in the gallery.  Note: requires in HEAD portion of templates.  Last part of the folder name us used to build the "alt" tag for the base image.
|.galpages.| If the number of thumbnails exceeds the size specified in the gallery tag then this tag will be replaced by links to the pages. For example if there are 15 thumbnails in a media folder and the gallery is set for two columns and three rows (6 images) then |.galpages.| will be replaced by « • 1 • 2 • 3 • ».  The entire structure is inside div tag class: galPages.  Required Galleries to be enabled for the site.
|.gallery:LLLL:w:h.| Display a table with w columns and  h rows of thumbnails. LLLL is is the name of the media folder which contains the gallery.   Required Galleries to be enabled for the site.
|.galleryDiv:LLLL:w:h.| Display a set of thumbnails in w column each of which contain up to h thumbnails.  Each column begins with a DIV  class=col# (where # is the number of the column, e.g, col1, col2, etc.).  The entire construct is contained in a div tag class galholder. LLLL is is the name of the media folder which contains the gallery.   Required Galleries to be enabled for the site.
Tags to display a map of the site
|.SiteMap.||.SiteMap_Size.| Generates a two column list of visible pages arranged by Section Name.  Second variant displays the size in KB of the content area on the page (before any tags contained in it our expanded). Sections whose names begin with '~' are ignored.   If a section name is of the format ## - RealName only the Real Name is displayed, but the sections are displayed in alphabetic list by full section name (e.g., Section '010 - Zebra' will appear before '020 - Alpha')  Style IDs used: SiteMapSectionName (around the section name), SiteMap1stLevel (top level pages), SiteMap2stLevel (second level pages).  If a page is protected then the entry is followed by 'Restricted to: ' and the name of the Access group to which the page is restricted.
Styles used: class='SiteMapSectionName' (section name), class='SiteMap1stLevel' (top level page in a section), class=SiteMap2stLevel (other pages in a section, 3rd and lower level pages also have a padding left inserted after this style to enforce indents).
Identical to |.SiteMap.| except section names are not displayed and multi-column variants break evenly rather than at the next section.  First variant displays the result as two columns (with a spacer column between inside a table).  The second variant displays the results in # number of columns.  If '0' is specified the enclosing table is suppressed.  If '1' is specified, a single column in a table is generated.  Styles are as in |.SiteMap.| except 'SiteMapSectionName' is not used.
Generates  list of the visible categories and the associated visible sub-categories.   The first variant displays the result in two columns.  Categories without parents are the "top level categories".  Categories restricted show the group to which they are restricted, but does not Hide them from unauthorized users.  The system will bounce unauthorized users if they try to go into a category to which they have no rights.  Note: if a parent (or top level category) is hidden all subordinate categories under it are also hidden.
Styles used:   class='SiteMap1stLevel' (top level category), class=SiteMap2stLevel (subordinate categories, 3rd and lower level categories also have a padding left inserted after this style to enforce indents).
As above but it displays: 'no products' or the number of products (e.g., '5 products') after the category link based on the number of non-hidden parent products.

As above but with the products under each category.  Categories without parents are the "top level pages".  Categories restricted show the group to which they are restricted, but does not Hide them from unauthorized users.  Products under a restricted category will not be linked but they are displayed.  Added style: 'SiteMapProd'   so the result in the div tag will be like
class=SiteMap2stLevel style="padding-left:5px;" class='SiteMapProd' This would be for a product under the 1st level sub category

Combines |.ContentMap.| and |.CatMap_PRD.| into a single list.
Calendar Tags  Note: There needs to be dedicated calendar pages for each of the sites calendars (and optionally for the combined calendar).  See the bottom line in this section for details or click here  Clicking on an event in either the SingleCal or ThreeCal months will take the visitor to one of these pages with the Headlines and Day Details for that day displayed.  The Page ID number of these pages are saved under the Calendar function (for individual calendar) and under Configuration function for the combined calendar.
|. ufSingleCal:D.|
:D is specified, only events for that calendar will appear; otherwise, events for all the months will appear. Month Year in title is a link to the letter size month at a glance calendar. Return is to the calling page. 
Top row of table is the « MonthName » where « moves to the prior month, » moves to the next month and MonthName is the current month an a link to the Month at a Glance display (only the css can change how this display looks).  The next row lists the days in a week using their 1st letter . The next rows display the days of the month by date.  If there is an event on the day it is a link to the day at a glance (this is just a regular page.
3 Calendars for prior month, current month, following month. Second variant starts with current month and the next two months follow it.
If :D is specified, only events for that calendar will be returned. Otherwise the events for all calendars will be displayed.
Replace the current page with a month at a glance version of the calendar.  Web browser window automatically re-sized to support printing in legal and landscape mode.  Second variant does not re-size the browser window.
Title line contains links to the previous and next months and a link back to the calling page.   If the day has either headlines or events the day number is a link to the calendar's day at a glance page.  The optional :D will cause only that calendar's information to be displayed.
As above but a new window is opened, return to the calling page, and links to the calendar date detail pages are not supported. Events with long descriptions still have links to a pop up which has the content of the long description.   The optional :D will cause only that calendar's information to be displayed.

Show headlines (both regular and important) for specified dates: L is the one letter code for D{ay}, W{eek}, w for next 7 days, t (two weeks) for next 14 days. or M{onth}.  if another letter is specified, the system defaults to Month.
If :D is specified, only headlines for that division will be returned. Otherwise headlines for all Divisions will be returned.  Note: if L is not equal to 'D' then the 3 letter month followed by the day of the month will precede the headline (e.g, Nov 3: Vote Today). 
|.Important:L:D.| As above except both Headlines and events marked Important are displayed.  For a given date, Headlines are displayed before important events.  Only the start time of events are displayed.
|.DayDetails:D.| Generate detailed listing of events for that day starting with the 'headline' events and then the rest of the events arranged by start time.
Day at a glance content page will normally contain |.ThreeCal:D.| (or |.ThreeCalF:D.|),  |.calMonth:D.| (or |.calMonthLtr:D.|)  and |.DayDetails:D.| tags.   Click here for more information.
Table of Contents Tags the system can support several variants of TOC tags.  It can also display a list of Categories (if the site has a catalog)  Normally only one will be used in a given site and it will be placed in the Template(s)


Replaced with the program generated entries showing the pages of the site within the sectionName section. Second variant assumes the current section. The rows are listed in the display order. Secondary pages are listed only when they are in focus (i.e., their parent page is the focus or one of the pages with the same parent is in focus). Note: the lines in the table of contents are controlled by entries in the site's Configuration (see Configuration for explanation of the and |.spacer:#.| tags..  If the primary TOC entry is a table row then the beginning and ending table tags need to be put into the template.  Similarly Ordered or Unordered list begin and end tags must be part of the templates.  This allows the page designer maximum creativity.    Note: TOC's for separate sections can be combined by putting several of these tags one after another and the result will look like a single continuous TOC.  This is useful if the sections have to be updated by different groups of editors.  In order for the sections to stand out you can add |.topOfSec.| tag (usually inside of a span) to the TOC configuration entry to add class="topOfSec" to the 1st entry for each section.
Extended Table of Contents.  As above but all the subordinate pages are displayed, whether or not they are in focus.
Generate an unordered list of the Page Titles for the Top Level Pages for the specified section or, in second form, the current Section.  The list surrounded by two DIV tags:  div id="toc_subtab_box" and
div id="pTOC" class='pTOCColor'.  If the current page is listed then its title is bolded.  If it is the top level ancestor of the current page is its title is a link which is also bolded.
|.sTOC.| Generate an unordered list of the Page Titles for the second level pages whose parent, 2nd level ancestor and that page's peers.   This list is surrounded by two DIV tags: div id="toc_subtab_box02" and div id="sTOC" class='sTOCColr'
|.LTOC:level:html:direction:section.| Displays level of Pages (1 to the children of the current level) in a chain separated by the specified HTML in the specified section Direction can be either 'L'eft or 'R'ight.  If the page is in the chain to the current page, or the current page it is bolded. '•' is the default HTML, the current Section is the default sectionname and Left to Right is the default Direction. Default level is 1 Note: except for the top level (i.e., 1) the tag will return an empty string unless the current page is in that section.  If html is  '{:/li}{f:li}' then it generates a properly formed unordered list (remember we use { and } in documentation instead of '<' and '>' brackets to prevent your browser from converting the contents and thus hiding it). If html is 'div' then it generates proper 'div' and '/div' tags around each entry. 
|.cTOC.| Displays, as an ordered list the children, if any of the current page.
|.subPage.| If there are visible subordinate pages to the current  pages, generates a table inside "div class='subpage' " one row per page with the page title as a link followed by the page's short description.
|.sDropMenu:<#:section list.|
|.sDropMenu:section list.|
Produces a horizontal or vertical drop down menu using the non-hidden pages under the specified list of sections/page IDs (note: if 'catlist' appears in the list it will be replaced by the top level visible category names in display order).  # if present, specifies the depth that will be displayed. For example if its 1 only the top level pages will be displayed.  The "section list" is made up of the format section names, the top level categories and/or individual page IDs to be displayed. The tag in this example is |.s DropMenu:4:030 - Services.|  Note the 5th entry is a page id so it does not generate a drop down, its a link to this page.  T he system needs to have specific styles defined.  The style sheet determines whether a horizontal, shown here, or a vertical, shown here menu is defined.   The required java script and style sheet references are installed using the |.header.| tag which should always be placed in the HEAD section of all templates.   With a different style it can be used to fly-out contents from the left.   Warning: if Java Script is suppressed/not supported only the top links will function.  The drop down will not. (use next tag to support those visitors).  Caution: It is possible to fly-out or drop down beyond the display boundaries.  Again the next tag can be used to work around this issue.
|.pcTOC.| Peer Child Table of Contents.  Displays as an unordered list the visible peers (i.e., children of the same parent page) as well as the children of the current page.  If the current page is hidden then it will not display on the list (as is the case in the example).  Designers can use java script to hid this element.  If javascript is present it will be displayed and the sDropMenu will act as a top level menu bar.
The following three tags bring the equivalent of a table of contents to the content pages.  Remember if a category is hidden, its children will not appear in any these tags.   Please see also the site map tags here for display of category information within the content section.
|.SC_SIDECATLIST.| If catalog exists displays complete list of all non-hidden categories in the product tables as table class="sideCatlist" with spacer graphic to cause indenting for each level.
|.SC_TCATLISTt.| If catalog exists displays list of top level categories in product tables as table class='TCatlist' one row per category.
Note: |.SC_TCATLIST.| exists but it generates tags with DIV tags around each top level entry unlike the equivalent tag on catalog pages.
|.TOP2CAT.| Produce display of top level categories with their 1st level children, if any under them.  Each top level category and its children are wrapped in div id=top2cat tags.  Top level categories are bolded. All but the current category are links to that category's page.
Tags to support external programs
|.passBack:LLLL.| Used in together with an external program which processes the form contained on the page.  Used to return the value of parameter "LLLL" to a form.  e.g., input type="text" name="in1" value=""  May be used in more than one input statement.  Multiple "passBack"s referring to different parameters are also allowed.
Warning: LLLL can only contain letters and numbers, no spaces or other special characters.  The value passed back is not limited, but it is escaped.  Note: This is the ONLY tag which can appear inside other tags.
|.linkins:LLLLLL.| Requires support of the hosting provider used to access an external subroutine linkins  in a module file which can alter or add any other non-content tag (e.g., ) as well as itself. LLLLL is any alphabetic string.  Programmer note: Actual process is to require "extentions/" and then call linkins(\%v,$q,$dbh,$PgAuthStatus).  In addition to placing content where the tag occurs (normal behavior), it can effect any other tag except for |.passBack:LLLL.|, |.content.| and |.ctitle.|.  It is also able to generate content for tags which only it knows about.  See how to for Search for examples of this.
|.ErrorMessage.| Display an error message passed back in the URI encoded parameter ErrorMessage.  Single ErrorMessage per page. Program replaces this tag with a division with an ID of ErrorMessage  Error message can contain: all letters and numbers  plus the following special characters: @, <, >, [, ], comma, period , (, ), !, $, /, ', =, ?, - that is the at sign, less than, greater than open/close square brackets, period, comma, parentheses, exclamation point, the dollar sign, forward slash, apostrophe, equal sign, question mark and minus sign.  Note: New lines are not allowed, but the HTML "break" is permitted. 
Warning: Only the first "ErrorMessage" value is used, although it can contain multiple lines as the Break tag can be passed in.

Get version is replaced by the value in a form suitable for inclusion inside of a link (e.g.,
Post version is replaced by a Input type = hidden statement suitable for inclusion of a Post form.  These tags are translated before <... tags so they can be included inside of them.
Warning: Only the first "rtnTarget" value is used for all forms on the page.

Forms   normally response forms are built by creating a hidden page and selecting the FORM content type and the using the |.pContent:#> to pull it into the expected page.  Alternately the hidden page can use the HTML content type and an arbitrary form inserted.  Between the two you can use the following tags to roll your own form.  These are used when a specific response form (i.e., a web page a visitor will use to enter information which will be sent off to a designated email recipient) is needed which will generate an email to specific email user.   Click here for and explanation of the standard form generator.  Click here to go directly to the syles needed.
|.f:whatEver.| This is a special tag to generate an HTML element (i.e., something that is surrounded by actual < and >.  Normally the editor will convert them so the browser don't consider them HTML elements or hides them from the page author.  whatever can be any set of characters, spaces, etc. except .| since that immediately terminates the tag.  Its basic purpose is to allow you to use the standard editor and see the tags as you create them and yet have the we browse see normal web form elements.
|.CaptchaBit.| Replaced by an image containing distorted number and letters and an input box which the visitor must enter those numbers and letters.  Used to prevent a "bot" from sending SPAM through the the system using the response form.   For Page Designer: the generated code is included in a table but no special style is applied.  Required
The tags described above will still work, but selecting a form type content area will activate a special Form Generator function which replaces the items described above and will do it more reliably.
However the tags above can be used to access an arbitrary external programs.  Primarily this will be the |.f:whatever.| tag
Begin with a tag in the general form of |.f:form method="post"  action="ExternalProgramName".| and end it with |.f:input type="submit" value="Submit Form".||.f:/form.|  In between you will probably have some entries of the general form of |f:input type="text" name="Field1" value="|.passBack:Field1.|".| so the program can send back the input incase of an error.
Only administrators, in whatever Division, can display or edit form type content areas.  As a general rule, administrators will create forms and the page editors will use a pContent:# tag to import the form onto their page. 


Return to top

Event Detail Tags:

If an individual event has a detailed description then a special program is called.  If it exists it will use a special template: showEvent.tp1 (that's a one not and 'L') in document root. If that file does not exist the default template in the program is used.  The following tags are applied to whichever template is used.

|.DivName.| Calendar Name as specified by 'Admin' under the Calenar function.
|.CloseMe.| Insert form which will close the popup.
|.PrintMe.| Insert form which will open the print dialog box to print the page.
|.Date.| Date of Event (e.g., Jan 20, 2000)
|.Start.| Start time of the event
|.Stop.| Stop time of the event
|.LDesc.| Contents of the Long Description for the event.
|.EID.|\ Event ID (internal unique event identifier).

Return to top

Catalog Tags:

These tags are used within templates used in the catalog templates and specific catalog programs.  

The program to list all the categories in the system (catlist2), the categories and products under a given category (catprodC), and the program to display the contents of the vistors shoping cart (doscartDisQ) all use catalog.tp1 as the template in document root.  The program to display details about a product (both the parent product and any child products) uses product.tp1. There are two repeating elements CatLine and ProdLine. CatLine provides a template for displaying each category in a list of categories in programs: an . Similarly ProdLine is used to display the multiple products which are under a given category or a given product familiy/standalone product in ProdLine can actually consist of several elements so that Products which have a lot in common can be arranges as Child products under a common Parent while still allowing other products to stand on their own. Think of various sizes of jeans in the same catalog with umbrellas. Since the system does allow for inventory management, each product which has a separate inventory needs to be its own product. Getting back to the jeans, the basic description would be in parent, while the inventory for each waist and length combination would be a separate child with its own inventory. Variations which do not effect inventory can be handled by options (e.g, gift wrap choice) which can effect the items end cost.

General Catalog Tags:

Program Tag Function
all |.SC_PAGETITLE.| Name of function: for catlist2: Catalog, for catprodC: current category name in caps, for doscartDisQ: 'Shopping Cart', for Parent Product's Name, for prodSearchC: 'Search Results'
catlist2, proddisp, catprodC, doscartDisQ |.TOC:section.| scList of top level pages in the section whose name is section. Because the catalog is NOT in a content section the section name must always be specified.
catlist2, proddisp, catprodC, doscartDisQ |.SC_SEARCHTAG.| Replaced with search search box. Normally this is word based search amoung the products. Site specific variants are possible.
doscartDisQ |.pContent:##.| Top content section of page ## are inserted. Only displayed on the shopping cart page. Used to provide added instructions for users of the shopping cart.
catlist2, proddisp, catprodC, doscartDisQ |.scContent:##.| Top content section of page ##. Appears on all catalog pages. Used to provide specific instructions to users of the catalog.  May also be imbedded in category long or short descriptions as well as product long descriptions.
catprodC, proddisp |.MetaDescription:CatTag:ProdTag.| generates a complete META DESCRIPTION  with the contents for the category or product.  For catprodC: CatTag is the name of a field in the Category Table. For proddisp: ProdTag is the field in the Product Table.  If the field name is present in the tag and the corresponding entry in the table is non-blank the HTML META DESCRIPTION replaces the tag. 
catprodC, proddisp |.MetaKeywords:CatTag:ProdTag.| generates a complete META KEYWORDS  with the contents for the category or product.  For catprodC: CatTag is the name of a field in the Category Table. For proddisp: ProdTag is the field in the Product Table.  If the field name is present in the tag and the corresponding entry in the table is non-blank the HTML META KEYWORDS replaces the tag.
catlist2, catprodC |.IMGA:l.|
If called with a specific CatID, this is the 1st (or 2nd) category image. 'l' can be left, right or center which will specify align left right or center of the text around the image (e.g., align left means the image will be forced to the right and the text will be to the left). If it is blank the image tag is not created. If these are contents do not point to images then only the base tag is defined and they will display their contents as a text. (i.e, they will NOT be embedded into an image tag.
catlist2, catprodC |.CSDESC.| If called with a specific CatID, this is the short description of the category.
catlist2, catprodC |.CATLDESC.| If called with a specific CatID, this is the Long Description for that category.
catlist2, proddisp, catprodC, doscartDisQ |.SC_VIEWCART.| Add function to display link to view cart contents if there is a cart ID,a program to display the cart and the tag. In CT context suppressed if the cookie with CartID is absent.
catlist2, proddisp, catprodC, doscartDisQ |.SC_SIDECATLIST,| If catalog exists displays complete list of all non-hidden categories in the product tables as table class=sideCatlist with spacer graphic to cause indenting for each level
catlist2, proddisp, catprodC, doscartDisQ |.SC_TCATLIST.| If catalog exists displays list of top level categories in product tables as table class='TCatlist' one row per category.
catlist2, proddisp, catprodC, doscartDisQ |.TOP2CAT.| Produce display of top level categories with their 1st level children, if any under them. Each top level category and its children are wrapped in div id=top2cat tags. Top level categories are bolded. All but the current category are links to that category's page.
catlist2, proddisp, catprodC, doscartDisQ |. SC_CATBODY.| If tag is present, then list of categories under current category is placed in a separate section within class='catbody' where this tag occurs. Otherwise, the categories are listed just before the products (if any) are listed. Note: if listed together, the products and categories are listed in separate tables IAW contents of CatLine and ProdLine fields in the database.
catprodC |.SC_PAGELIST.| List product pages with arrows as appropriate, if the number of products on a page exceed the configuration limit then the product list is "paginated" and this provides the display of pages of products which can be stepped through.  Default if 12.  If products are displayed in multiple columns then there is no limit.
catlist2, proddisp, catprodC, doscartDisQ |. SC_CHECKOUT.| Image link to secure buy program or shopping cart if shipping location is not yet defined and either a shipping table is defined or location based taxes are defined. The shipping location is defined on the shopping cart page.
catlist2, proddisp, catprodC, doscartDisQ |.SC_CONTENT.| Page Specific Content for Category List, Category then product list Product display and shopping cart. Will not redisplay the material already displayed by explicit tags (e.g, if \.SC_CATBODY.| is present if will not display a list of subordinate categories or if |.ProdBody.| is present the list of product lines will not be displayed.). Needs always to be present for the shopping cart to display.
catprodC, proddisp |.ProdBody.| On in the catalog.tp1 it is used to display a list of the products in within a category or search result. If the "catprod" section is present in the Product Line configuration then this will be used; otherwise, "parent start", "parent stop", "child" and "stand alone" sections will be used as needed.
In product template (product.tp1), this tag indicates where the product lines will appear  This allows the same template to support products with and without child products.
proddisp |.ProdList.| This tag generates a bulleted list of the other products under this category each as links to their product pages.
proddisp |.PeerProds.| This tag generates a list of the products which are peers of the current one. Each entry in the list is in the form of {div id='PPItem'}{a href...}Product Name{/a}{/div}
proddisp |.CProdList.| This tag generates as above but under a link to the parent Category.
catlist2, proddisp, catprodC |.Is_Auth:##:##.| ##'s are two page IDs. If the visitor is signed in then the contents of the first page is substituted. If the visitor is not signed in then the contents of the second page is substituted. Note: unlike the version supporting the content pages, these pages are will not be further processed for other content tags (i.e., Recursion is NOT supported.)
all |.Year.| or |.YEAR.| Current 4 digit year.
all |.CCatProdProg.| 
all |.CCatListProg.|
all |.CShopCartProg.|
all |.CProdDispProg.| Program to display a specific product or product family.
catprodC, proddisp


These tags allow sites which are configured for visitor comments to accept and display comments associated with specific products or categories. If |.commentActive.| is present in the short or long description of the desired product or category then an abstract of comments may be activated if  |.acceptComment.| is found in catalog.tp1 or the long or short description.   This allows the page designer the ability to place the comment abstracts anywhere on the page.  Note: this differs slightly from content pages in that the comment area can be outside of a text area.  The |.commentActive.| tag, in category or product specific text area turns on comments for that individual category or product.  The comment is then displayed where the |.acceptComment.| tag occurs.
catprocC,proddisp, prodsearch, doscartDisQ |.currentURL.| The current full URL for the page.  In the case of the shopping cart and search programs it does not include any variables passed.  For the rest it is complete.
catprodC, catlist2 |.AddCat:realFieldName.| Must appear in the basic catalog template.  Is repalced by the actual contents for the current category.  Warning: no formatting is applied, e.g, if the field is a date field it will come out in ISO format YYYY-MM-DD.  Note: if catlist2 is called with a category ID this this tag will work; otherwise it will be suppressed.

Catalog Tag Index

CatLine Tags: (used to build a listing of categories under the current category.

begins with list element tag If category line begins with list element tag, then list of categories is surrounded by <UL> tags.
begins with table row tag If category line begins with table row tag then the whole list is surrounded by a begin and end table tags.
begins with the html comment C:# If category line begins with a comment containing this (where # is a number) then the categories will be assumed to be table data elements and will be arranged into that number of columns. If the CatLine starts with a table data tag TD then it acts the same but with a default of 3 columns.|.
|.SPACER.| Replaced by a spacer image 5 pixels wide (/fill.gif). for each level of category. This provides a stair step effect. For greater spacing use multiple instances of this tag.

Replaced by the complete full address of the program to list categories and products under the specified category (example:

a href="|.CCatProdProg.|?catid=|.CATID.|"
|.CATID.| Category ID number from the list.
|.CPList.| Replaced with list of products under the current category each enclosed in div id='CPPItem' and set as link to product display page.
Public Name of Category Field e.g.,Name not CatName The contents of the corresponding field unless the field type is graphic. If graphic then inserted with as an image tag. If form is followed by ':L' where L is R,L,C then image tag has alignment set to right, left or center respectively
|. SC_CatEmpty.|\ Replaced with text: There are no items in this category if there are in fact, no items in the category.
Depth=# in HTML comment If placed in an HTML comment in a CatLine text this will override the default depth displayed by
|.catLevel.| Level under the current category (i..e, starts with 2) the category in list is.  Useful to call out different styles depending on the level.
|.CLIENT.| The database name (eg., cszSite).  Normally this will not be needed because the system knows what database we are using. {deprecated}
|.Short Desc..| Current category's short description.  Note the double period.

Catalog Tag Index

Product Line constructs. It is also used with Note: in, references to PrSpare1,2 and PrGraphic are suppressed as they are assumed to be displayed in the product page template rather than the included product line. The Product Line is entered as an entry in the site's Configuration Table
Used to support three types of products:
  1. Those without children, i.e, Stand-alone
  2. Those which have products underneath them, i.e., Parents
  3. Those which are under another, parent product, i.e., Children
Note: if only stand alone products are present, no section name is needed since it is assumed that all products are stand alone.
Each section begins with a section identifier: |.section name.| on a separate line.
Where section name is |.Parent Start.|, |.Parent End.|, |.Child.|, and |.Standalone.|
followed by the html chunk which will be used in the section.

Limited logic is available in the form of:


||.ifnot:FIELDNAME.|| ...HTML CHUNK...||.ENDIF.|| OR

||.if:FIELDNAME=constString.|| ...HTML CHUNK...||.ENDIF.|| OR

||.ifnot:FIELDNAME=constString.|| ...HTML CHUNK...||.ENDIF.||
The FIELDNAME=constString will be interpreted as match if the contents of
the field are equal to all the characters up to the
length of the constant string thus if the field FRED contains 'The Quick Brown Fox'
||.if:FRED=The.|| would be considered a match.
The straight FIELDNAME construct would be considered false if the value of the field ==0, null, undef or eq 'N' after

ifs may not be nested. however, multiple conditions can be strung
together using the following 4 connectors:

.and. .or. .andnot. and .ornot. between the conditions. There should be
no space between conditions and these connectors.

Evaluation is left to right and each section is evaluated, optionally
negated and then the
result tested.
New: For products with children the field PrQuant (see below) is Zero in the parent. However, when Parent End is evaluated it is set to '1' if any of the child products are not empty.
begins with the html comment C:# If product line's ||.standalone.|| section begins with a comment containing this (where # is a number) then the categories will be assumed to be table data elements and will be arranged into that number of columns. If the ||.standalone.|| section begins with a table data tag TD then it acts the same but with a default of 3 columns
begins with list element tag If product line's ||.standalone.|| section begins with list element tag, then list of categories is surrounded by <UL> tags.
begins with table row tag If product line's ||.standalone.|| section begins with table row tag then the whole list is surrounded by a begin and end table tags.
Product Field Names Contents of specific field for current product. Standard Field names are (sites may have additional fields). PrHasChild
Name Default Usage
PRID Computer Generated Product ID
PrNumber Product SKU or equivalent
PrHide 'Y' if product (and any children) should not be visible
PrDisPriority Display Priority (lower shows first)
PrOptType Option Type: Radio,Select List, Multiple check boxes. i.e., how to display the option, blank if none
PrOption Which group is used. zero if none
PrDisQuan # which must be purchased to qualify for a discount
PrWeight Unit weight of the item, -1 used to indicate manual shipping calculations will be needed.
PrSDesc Short Description
PrLDesc Long Description
PrSpare1 Thumbnail version of graphic
PrSpare2 Large Graphic
PrSpare3 not used
PrSpare4 Second Long Description
PrSpare5 Third Long Description
PrNPrice Regular Price
PrDPrice Discounted Price
PrTaxable Item is Taxable
PrShowSpare Generate input field to get spar information
PrQuant quantity on hand (if site supports online quantity Required Note: set ot '-1' for infinite quantity. test
(or ifno should be used to test for a product having stock on hand. Remember: in a parent, PrQuant has meaning only in the Parent End Section.
Following are used only if site has child products
  'Y' if the is a parent product
PrPPRID Product ID (not SKU) of parent product.
PRGRAPHIC Set to'' if PrSpare1 = '' otherwise a href to large graphic in blank window with words Click to Enlarge.
PRPRICE Set to either the retail price (PrNPric) / discount price (PrDPrice) if PrDisQuan > 1 otherwise is just shows the retail price.
PR_DISCOUNT Contains 'Minimum Quantity to Receive Discount is $pvals[$discol]' if there is a non-zero discount quantity.
 span class='prSpare' /span
if PrShowSpare = 'Y' otherwise it is blank. Used to collect small bit of text (e.g., initials)..
PR_OPTIONS Replaced with appropriate option selection for this product. Note: each product can flag whether the options in this field are to be displayed as radio buttons, select list (both of which allow only one option to be selected) or a series of check boxes (several values of this options.
Note: any of the Pr_Spare# fields may be used as additional select list options if the site is so configured.
ProdPage Generates a link to the product diplay program defined in the database around the words Click here for more details. Generated in and NOT in For parent and standalone products only.
PR_AUTH Set to non-blank value if visitor has signed in. Use in IF statements to subsitute HTML depending on whether or not visitor has signed in.

Catalog Tag Index

Secure Buy Program (
SC_BILLING Section which will ask for billing information
SC_SELSHIP Where you want the shipment method to be determined.
SC_SIGNIN (opt.) If site has visitors table, this is where they will be offered a chance to sign in.
SC_JOIN (opt.) If site has visitors table, this is where they will be offered a chance to join.
SC_SHIPPING Section which will ask for shipping information
SC_PAYMENT Section which will ask for payment information.
SC_SUBMIT Where you want the purchase button to occur.
SC_SHOPCART Contents of the shopping cart will fully extended pricing. Need not be within the form tags
SC_HIDDEN Where in the page you want the various hidden variables to occur. Must be within the form tags
SC_ERRORS Replaced with list of errors if any are present.
pcontent:# if present replace with PCContent where PCCPID = # Useful to put terms and conditions or notes that must appear on the purchase page.
SC_BUYPROG name of the secure buy program. You must put it in your own form elemement
sslCert Replaced with the javascript call to get the Logo certifying that this site is secured. Note: This tag can occur within the pcontent element In case you want to explain why it refers to CyberStrategies, Inc. rather than your company.
SC_EXTRA Collects any extra information you want. It is replaced with a table. The format is two columns with the field name in 1st column and values in 2nd column. System looks for special html comment which lists the Field Names in order to build this table. For example: if the html comment was extraFieldNames=Gift_Card:text;Special_Delivery_Instructions:area would result in a text area with the label: 'Gift Card' and a text box with the label: 'Special Delivery Instructions' being requested and if information is provided, displayed as part of the billing, shipping and packing information. The system replaces the '_' with a space when requesting input. You can also specify a Checkbox by using the code check.  If the shipping system uses a template the tag must be present and will be replaced with a simple table containing the information the system collected.

Catalog Tag Index ∧

The following requires use of|.dbname.|&oid=|.OID.| as Called after buy entry.
CL1 Preptime Time shipment was prepared.
CL1, TY, OT OrderDate Date of Order
CL1, TY OIPOC Order Point of Contact
CL1, TY SIPOC Shipment Point of Contact
TY OEmail Reference Email
CL1, TY BillingAddress Address used for billing
CL1, TY ShippingAddress Address used for shipping
CL1, TY OOID Order Numberg
TY OrderCode Special code used with email to track status of order.
CL1, TY SINum Shipment Number (always 1)
CL1 ShippingGraphic {opt} If direct shipping implemented, this is the graphic which the shipper (e.g., FedEx) returns to be applied to shipping document.)
CL1, TY ShipMethod Selected Shipping Method
CL1, TY SIShipCost Shipping Cost (for TY as billed, for CL1 as shipper determined)
CL1, TY SITax Tax charged on shipment
CL1 TrackingNumber Shipment Tracking Number, either provided by shipper or manually entered.
CL1, TY SITotSum Summary of what is being shipped in table form
CL1 Text:# Content inserted from hidden page #'s content section. May have multiple instances.)
TY, OT pcontent:# Content inserted from hidden page #'s content section. Unlike other sections, may contain any other tags which can be used in TY or OT (except of course pcontent
CL1, TY SIPhone Phone Number>
CL1, TY SIWeight Weight of shipment (in TY this is the system generated weight which probably does not match the real weight).>
CL1, TY SICost Cost of shipment before tax, shipment etc.
CL1, TY SITotal Total cost of shipment
CL1, TY SITax Tax on shipment
CL1, TY OIPhone Order POC phone number
CL1, TY OIShipCost Cost before taxes, shipments, etc. of ordert
CL1, TY OITotal Total Cost of Order
CL1, TY OITotSum Summary of order costs as a table
CL1,OT SplitShipmentNote:# If there are more than one shipments in this order then the contents of the corresponding page replace this tag. Note: not enabled in default template since the value of # is undefined.
CL1 OExtras If order form ( or later) saved off extra information, it is displayed in a table in two columns: entry title and value.
OT Message Either initial welcome "Please enter your email address and order code" or an error message.
OT Question form containing input boxes for email address and order code
OT Status replaced by order # followed by tables with each of the shipments within the order and their status. If tracking numbers are present the shipping method and tracking number will be displayed.

Catalog Tag Index

Return to top