[docs] docs - kwalsh modified 2 files

docs@interchange.redhat.com docs@interchange.redhat.com
Wed Jul 31 15:55:01 2002


User:      kwalsh
Date:      2002-07-31 19:54:45 GMT
Modified:  .        ictemplates.sdf ictags.sdf
Log:
	* Lots of extra SDF jumps to create more cross-reference links.
	  I got as far as section 4 and will get around to doing the rest
	  some other time.

	* Fixed a bunch of broken SDF jumps.

	* Minor cleanups.

Revision  Changes    Path
1.42      +188 -140  docs/ictemplates.sdf


rev 1.42, prev_rev 1.41
Index: ictemplates.sdf
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/docs/ictemplates.sdf,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- ictemplates.sdf	22 Jul 2002 01:48:53 -0000	1.41
+++ ictemplates.sdf	31 Jul 2002 19:54:41 -0000	1.42
@@ -1,10 +1,10 @@
 !init OPT_LOOK=3D"akopia"; OPT_STYLE=3D"manual"
-# $Id: ictemplates.sdf,v 1.41 2002/07/22 01:48:53 mheins Exp $
+# $Id: ictemplates.sdf,v 1.42 2002/07/31 19:54:41 kwalsh Exp $
=20
 !define DOC_NAME "Template Guide"
 !define DOC_TYPE ""
 !define DOC_CODE "ictemplates"
-!define DOC_VERSION substr('$Revision: 1.41 $',11, -2)
+!define DOC_VERSION substr('$Revision: 1.42 $',11, -2)
 !define DOC_STATUS "Draft"
 !define DOC_PROJECT "Interchange"
 !define DOC_URL "http://interchange.redhat.com/doc/ictemplates.html"
@@ -16,15 +16,17 @@
=20
 H2: Overview
=20
-The search builder can be used to generate very complex reports on the dat=
abase, or to help in the construction of ITL templates. Select a "Base tabl=
e" that will be the foundation for the report. Specify the maximum number o=
f rows to be returned at one time, and whether to show only unique entries.
+The search builder can be used to generate very complex reports on the dat=
abase or to help in the construction of ITL templates. Select a "Base table=
" that will be the foundation for the report. Specify the maximum number of=
 rows to be returned at one time, and whether to show only unique entries.
=20
 The "Search filter" narrows down the list of rows returned by matching tab=
le columns based on various criteria. Up to three separate conditions can b=
e specified. The returned rows must match all criteria.
=20
-Finally, select any sorting options desired for displaying the results, an=
d narrow down the list of columns returned if desired. Clicking "Run" will =
run the search immediately and display the results. "Generate definition" w=
ill display an ITL tag that can be placed in a template and that will retur=
n the results when executed.
+Finally, select any sorting options desired for displaying the results and=
 narrow down the list of columns returned if desired. Clicking "Run" will r=
un the search immediately and display the results. "Generate definition" wi=
ll display an ITL tag that can be placed in a template and that will return=
 the results when executed.
=20
-To build complex order forms and reports, Interchange has a complete tag l=
anguage with over 80 different functions called Interchange Tag Language (I=
TL). It allows access to and control over any of an unlimited number of dat=
abase tables, multiple shopping carts, user name/address information, disco=
unt, tax, and shipping information, search of files and databases, and much=
 more.
+To build complex order forms and reports, Interchange has a complete tag l=
anguage with over 80 different functions called Interchange Tag Language (I=
TL). It allows access to and control over any of an unlimited number of dat=
abase tables, multiple shopping carts, user name/address information, disco=
unt, tax and shipping information, search of files and databases, and much =
more.
=20
-There is some limited conditional capability with the C<[if ...]> tag, but=
 when doing complex operations, use of embedded Perl/ASP should be strongly=
 considered. Most of the tests use Perl code, but Interchange uses the Safe=
pm module with its default restrictions to help ensure that improper code =
will not crash the server or modify the wrong data.
+There is some limited conditional capability with the
+E<lbracket>{{C[jump=3D"ictags.html#if"]if}}] tag,
+but when doing complex operations, use of embedded Perl/ASP should be stro=
ngly considered. Most of the tests use Perl code, but Interchange uses the =
Safe.pm module with its default restrictions to help ensure that improper c=
ode will not crash the server or modify the wrong data.
=20
 Perl can also be embedded within the page and, if given the proper permiss=
ion by the system administrator, call upon resources from other computers a=
nd networks.
=20
@@ -53,16 +55,16 @@
 \Summary:
=20
 !block example
-   [tag parameter]             Tag called with positional parameter
-   [tag parameter=3Dvalue]       Tag called with named parameter
-   [tag parameter=3D"the value"] Tag called with space in parameter
-   [tag 1 2 3]                 Tag called with multiple positional paramet=
ers
-   [tag foo=3D1 bar=3D2 baz=3D3]     Tag called with multiple named parame=
ters
-   [tag foo=3D`2 + 2`]           Tag called with calculated parameter
-   [tag foo=3D"[value bar]"]     Tag called with tag inside parameter
-   [tag foo=3D"[value bar]"]
-       Container text.         Container tag.
-   [/tag]
+    [tag parameter]             Tag called with positional parameter
+    [tag parameter=3Dvalue]       Tag called with named parameter
+    [tag parameter=3D"the value"] Tag called with space in parameter
+    [tag 1 2 3]                 Tag called with multiple positional parame=
ters
+    [tag foo=3D1 bar=3D2 baz=3D3]     Tag called with multiple named param=
eters
+    [tag foo=3D`2 + 2`]           Tag called with calculated parameter
+    [tag foo=3D"[value bar]"]     Tag called with tag inside parameter
+    [tag foo=3D"[value bar]"]
+        Container text.         Container tag.
+    [/tag]
 !endblock
=20
 Most tags can accept some positional parameters. This makes parsing faster=
 and
@@ -71,14 +73,14 @@
 The following is an example tag:
=20
 !block example
-   [value name=3Dcity]
+    E<lbracket>{{C[jump=3D"ictags.html#value"]value}}C< name=3Dcity>]
 !endblock
=20
 This tag causes Interchange to look in the user form value array and return
 the value of the form parameter C<city>, which might have been set with:
=20
 !block example
-   City: <INPUT TYPE=3Dtext NAME=3Dcity VALUE=3D"[value city]">
+    City: <INPUT TYPE=3Dtext NAME=3Dcity VALUE=3D"[value city]">
 !endblock
=20
 Note: Keep in mind that the value was pre-set with the value of C<city> (i=
f any).
@@ -87,52 +89,58 @@
 named parameter syntax is used, parameters can contain other tags. For exa=
mple:
=20
 !block example
-   [value name=3D"[value formfield]"]
+    E<lbracket>{{C[jump=3D"ictags.html#value"]value}}C< name=3D"[value for=
mfield]"]>]
 !endblock
=20
-There are exceptions to the above rule when using list tags such as [item-=
list], [loop ...], [sql ...], and more. These tags, and their exceptions, a=
re explained in their corresponding sections.
+There are exceptions to the above rule when using list tags such as
+E<lbracket>{{C[jump=3D"ictags.html#item-list"]item-list}}],
+E<lbracket>{{C[jump=3D"ictags.html#loop"]loop}}],
+E<lbracket>{{C[jump=3D"ictags.html#query"]query}}] and others.
+These tags, and their exceptions, are explained in their corresponding sec=
tions.
=20
 Many Interchange tags are container tags. For example:
=20
 !block example
-   [set Checkout]
-       mv_nextpage=3Dord/checkout
-       mv_todo=3Dreturn
-   [/set]
+    E<lbracket>{{C[jump=3D"ictags.html#set"]set}} Checkout]
+        mv_nextpage=3Dord/checkout
+        mv_todo=3Dreturn
+    [/set]
 !endblock
=20
-Tags and parameter names are not case sensitive, so [VALUE NAME=3Dsomethin=
g] and [value name=3Dsomething] work the same.
+Tags and parameter names are not case sensitive, so C<[VALUE NAME=3Dsometh=
ing]>
+and C<[value name=3Dsomething]> work the same.
 The Interchange development convention is to type HTML tags in upper
 case and Interchange tags in lower case. This makes pages and tags easier =
to read.
=20
-Single quotes work the same as double quotes, and can prevent confusion. F=
or example:
+Single quotes work the same as double quotes and can prevent confusion. Fo=
r example:
=20
 !block example
-   [value name=3Db_city set=3D'[value city]']
+    [value name=3Db_city set=3D'[value city]']
 !endblock
=20
 Backticks should be used with extreme caution since they cause the paramet=
er contents to be evaluated
-as Perl code using the C<[calc]> tag. For example:
+as Perl code using the E<lbracket>{{C[jump=3D"ictags.html#calc"]calc}}]
+tag. For example:
=20
 !block example
-   [value name=3Drow_value set=3D`$row_value +=3D 1`]
+    [value name=3Drow_value set=3D`$row_value +=3D 1`]
 !endblock
=20
 is the same as
=20
 !block example
-   [value name=3Drow_value set=3D"[calc]$row_value +=3D 1[/calc]"]
+    [value name=3Drow_value set=3D"E<lbracket>{{C[jump=3D"ictags.html#calc=
"]calc}}]$row_value +=3D 1[/calc]"]
 !endblock
=20
=20
 Vertical bars can also be used as quoting characters, but have the unique =
behavior of stripping leading and trailing whitespace. For example:
=20
 !block example
-       [loop list=3D"code        field    field2  field3
-       k1    A1    A2    A3
-       k2    B1    B2    B3"]
-       [loop-increment][loop-code]
-       [/loop]
+    [loop list=3D"
+        k1    A1    A2    A3
+        k2    B1    B2    B3"]
+        [loop-increment][loop-code]
+    [/loop]
 !endblock
=20
 could be better expressed as:
@@ -146,31 +154,44 @@
     [/loop]
 !endblock
=20
-How the result of the tag is displayed depends on if it is a container or =
a standalone tag. A container tag has a closing tag (for example, C<[tag] s=
tuff [/tag]>). A standalone tag has no end tag (for example, C<[area href=
=3Dsomepage]>). Note that C<[page ...]> and C<[order ..]> are B<not> contai=
ner tags. (C<[/page]> and C<[/order]> are simple macros.)
-
-A container tag will have its output re-parsed for more Interchange tags b=
y default. To inhibit this behavior, set the attribute reparse to 0.  Howev=
er, it has been found that the default re-parsing is almost always desirabl=
e. On the other hand, the output of a standalone tag will not be re-interpr=
eted for Interchange tag constructs (with some exceptions, like (C<[include=
 file]>).
-
-Most container tags will not have their contents interpreted (Interchange =
tags parsed) before being passed the container text. Exceptions include C<c=
alc>, C<currency>, and C<seti>. All tags accept the C<interpolate=3D1> tag =
modifier, which causes the interpretation to take place.
-
-H2: The DATA and FIELD Tags
-
-The C<[data ...]> and C<[field ...]> tags access elements of Interchange d=
atabases. They are the form used outside of the iterating lists, and are us=
ed to do lookups when the table, column/field, or key/row is conditional ba=
sed on a previous operation.
+How the result of the tag is displayed depends on if it is a container or =
a standalone tag. A container tag has a closing tag (for example, C<[tag] s=
tuff [/tag]>). A standalone tag has no end tag (for example,
+E<lbracket>{{C[jump=3D"ictags.html#area"]area}}C< href=3Dsomepage>].
+Note that
+E<lbracket>{{C[jump=3D"ictags.html#page"]page}}] and
+E<lbracket>{{C[jump=3D"ictags.html#order"]order}}]
+are B<not> container tags. (C<[/page]> and C<[/order]> are simple macros.)
+
+A container tag will have its output re-parsed for more Interchange tags b=
y default. To inhibit this behavior, set the attribute reparse to 0.  Howev=
er, it has been found that the default re-parsing is almost always desirabl=
e. On the other hand, the output of a standalone tag will not be re-interpr=
eted for Interchange tag constructs (with some exceptions,
+like E<lbracket>{{C[jump=3D"ictags.html#include"]include}}C< file>].
+
+Most container tags will not have their contents interpreted (Interchange =
tags parsed) before being passed the container text. Exceptions include
+E<lbracket>{{C[jump=3D"ictags.html#calc"]calc}}],
+E<lbracket>{{C[jump=3D"ictags.html#currency"]currency}}] and
+E<lbracket>{{C[jump=3D"ictags.html#seti"]seti}}].
+All tags accept the C<interpolate=3D1> tag modifier, which causes the inte=
rpretation to take place.
+
+H2: data and field
+
+The E<lbracket>{{C[jump=3D"ictags.html#data"]data}}] and
+E<lbracket>{{C[jump=3D"ictags.html#field"]field}}]
+tags access elements of Interchange databases. They are the form used outs=
ide of the iterating lists, and are used to do lookups when the table, colu=
mn/field or key/row is conditional based on a previous operation.
=20
 The following are equivalent for attribute names:
=20
 !block example
-   table --> base
-   col   --> field --> column
-   key   --> code  --> row
+    table --> base
+    col   --> field --> column
+    key   --> code  --> row
 !endblock
=20
-The [field ...] tag looks in any tables defined as C<ProductFiles>, in tha=
t order, for the data and returns the first non-empty value. In most catalo=
gs, where C<ProductFiles> is not defined, i.e., the demo, C<[field title 00=
-0011]> is equivalent to C<[data products title 00-0011]>. For example, [fi=
eld col=3Dfoo key=3Dbar] will not display something from the table "categor=
y" because "category" is not in the directive ProductFiles or there are mul=
tiple ProductFiles and an earlier one has an entry for that key.
+The E<lbracket>{{C[jump=3D"ictags.html#field"]field}}]
+tag looks in any tables defined as C<ProductFiles>, in that order, for the=
 data and returns the first non-empty value. In most catalogs, where C<Prod=
uctFiles> is not defined, i.e., the demo, C<[field title 00-0011]> is equiv=
alent to C<[data products title 00-0011]>. For example, [field col=3Dfoo ke=
y=3Dbar] will not display something from the table "category" because "cate=
gory" is not in the directive ProductFiles or there are multiple ProductFil=
es and an earlier one has an entry for that key.
=20
-LI1: [data table column key]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#data"]data}}C< table column key>]
=20
 .named attributes: C<[data base=3D"database" field=3D"field" key=3D"key"> =
C<value=3D"value" op=3D"increment]>
=20
-.Returns the value of the field in any of the arbitrary databases, or from=
 the variable namespaces. If the option C<increment=3D1> is present, the fi=
eld will be automatically incremented with the value in value.
+.Returns the value of the field in any of the arbitrary databases or from =
the variable namespaces. If the option C<increment=3D1> is present, the fie=
ld will be automatically incremented with the value in value.
=20
 .If a DBM-based database is to be modified, it must be flagged writable on=
 the page calling the write tag. For example, use C<[tag flag write]product=
s[/tag]> to mark the C<products> database writable.
=20
@@ -196,21 +217,26 @@
=20
 .Databases will hide variables, so if a database is named "session," "scra=
tch," or any of the other reserved names it won't be able to use the C<[dat=
a ...]> tag to read them. Case is sensitive, so the database could be calle=
d "Session," but this is not recommended practice.
=20
-LI1: [field name code]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#field"]field}}C< name code>]
=20
 .named attributes: C<[field code=3D"code" name=3D"fieldname"]>
=20
 .Expands into the value of the field name for the product as identified by=
 code found by searching the products database. It will return the first en=
try found in the series of Product Files in the products database. If this =
needs to constrained to a particular table, use a C<[data table col key]> c=
all.
=20
-H2: set, seti, scratch and scratchd
-
-Scratch variables are maintained in the user session, which is separate fr=
om the form variable values set on HTML forms. Many things can be controlle=
d with scratch variables, particularly search and order processing, the C<m=
v_click> multiple variable setting facility, and key Interchange conditions=
 session URL display.
+H2: set, seti, tmp, tmpn scratch and scratchd
=20
-There are three tags that are used to set the scratch space, C<[set name]v=
alue[/set]>, [seti name]value[/seti], [tmp name]value[/tmp], and two tags f=
or reading scratch space.
+Scratch variables are maintained in the user session, which is separate fr=
om the form variable values set on HTML forms. Many things can be controlle=
d with scratch variables, particularly search and order processing, the C<m=
v_click> multiple variable setting facility and key Interchange conditions =
session URL display.
=20
-LI1: [set variable]value[/set]
+There are four tags that are used to set the scratch space:
+E<lbracket>{{C[jump=3D"ictags.html#set"]set}}C< variable>] value [/set],
+E<lbracket>{{C[jump=3D"ictags.html#seti"]seti}}C< variable>] value [/seti],
+E<lbracket>{{C[jump=3D"ictags.html#tmp"]tmp}}C< variable>] value [/tmp],
+E<lbracket>{{C[jump=3D"ictags.html#tmpn"]tmpn}}C< variable>] value [/tmpn]=
 and
+and two tags for reading scratch space:
+E<lbracket>{{C[jump=3D"ictags.html#scratch"]scratch}}C< variable>] and
+E<lbracket>{{C[jump=3D"ictags.html#scratchd"]scratchd}}C< variable>].
=20
-.named attributes: C<[set name=3D"variable"] value [/set]>
+LI1: E<lbracket>{{C[jump=3D"ictags.html#set"]set}}C< variable>] value [/se=
t]
=20
 .Sets a scratchpad variable to a value.
=20
@@ -242,43 +268,55 @@
     [calc]$Scratch->{foo} =3D 'bar'; return;[/calc]
 !endblock
=20
-LI1: [seti variable][value something][/seti]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#seti"]seti}}C< variable>] value [/=
seti]
=20
-.The same as C<[set] [/set]>, except it interpolates the container text. T=
he above is the same as:
+.The same as E<lbracket>{{C[jump=3D"ictags.html#set"]set}}]
+except it interpolates the container text. The above is the same as:
=20
 !block example; listitem=3D2
-    [set name=3Dvariable interpolate=3D1][value something][/set]
+    E<lbracket>{{C[jump=3D"ictags.html#set"]set}} name=3Dvariable interpol=
ate=3D1] E<lbracket>{{C[jump=3D"ictags.html#value"]value}} something] [/set]
 !endblock
=20
-LI1: [tmp name]value[/tmp]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#tmp"]tmp}}C< variable>] value [/tm=
p]
+
+.The same as E<lbracket>{{C[jump=3D"ictags.html#seti"]seti}}]
+except it does not persist.
+
+LI1: E<lbracket>{{C[jump=3D"ictags.html#tmpn"]tmpn}}C< variable>] value [/=
tmpn]
=20
-.The same as [seti] but it does not persist.
+.The same as E<lbracket>{{C[jump=3D"ictags.html#set"]set}}]
+except it does not persist.
=20
-LI1: [scratch name]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#scratch"]scratch}}C< variable>]
=20
 .Returns the contents of a scratch variable to the page. C<[scratch foo]> =
is the same as, but faster than:
=20
 !block example; listitem=3D2
-    [perl]$Scratch->{foo}[/perl]
+    E<lbracket>{{C[jump=3D"ictags.html#perl"]perl}}] $Scratch->{foo} [/per=
l]
 !endblock
=20
-LI1: [scratchd]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#scratchd"]scratchd}}C< variable>]
=20
-.The same as [scratch name], except it deletes the value after returning i=
t. Same as [scratch foo][set foo][/set].
+.The same as E<lbracket>{{C[jump=3D"ictags.html#scratch"]scratch}}C< varia=
ble>]
+except it deletes the value after returning it. Same as C<[scratch foo] [{=
{C[jump=3D"ictags.html#set"]set}} foo] [/set]>.
=20
-LI1: [if scratch name op* compare*] yes [else] no [/else] [/if]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#if"]if}}C< scratch name op* compar=
e*]> yes C<[else]> no C<[/else][/if]>
=20
-.Tests a scratch variable. See the IF tag for more information.
+.Tests a scratch variable. See the E<lbracket>{{C[jump=3D"ictags.html#if"]=
if}}]
+tag documentation for more information.
=20
 H2: loop
=20
-Loop lists can be used to construct arbitrary lists based on the contents =
of a database field, a search, or other value (like a fixed list). Loop acc=
epts a C<search> parameter that will do one-click searches on a database ta=
ble (or file).
+Loop lists can be used to construct arbitrary lists based on the contents =
of a database field, a search or other value (like a fixed list). Loop acce=
pts a C<search> parameter that will do one-click searches on a database tab=
le (or file).
=20
 To iterate over all keys in a table, use the idiom (C<[loop search=3D"ra=
=3Dyes/ml=3D9999"] [/loop]>. C<ra=3Dyes> sets C<mv_return_all>, which means=
 "match everything". C<ml=3D9999> limits matches to that many records. If t=
he text file for searching an Interchange DBM database is not used, set C<s=
t=3Ddb> (mv_searchtype).
=20
-When using C<st=3Ddb>, returned keys may be affected by C<TableRestrict>. =
See C<catalog.cfg>. Both can be sorted with C<[sort table:field:mod -start =
+number]> modifiers. See C<Sorting>.
+When using C<st=3Ddb>, returned keys may be affected by C<TableRestrict>. =
Both can be sorted with C<[sort table:field:mod -start +number]> modifiers.=
 See {{C[jump=3D"icdatabase.html#Sorting"]sorting}}.
=20
-LI1: [loop item item item] LIST [/loop]
+The Interchange Tags Reference has more information on the
+E<lbracket>{{C[jump=3D"ictags.html#loop"]loop}}] tag.
+
+LI1: E<lbracket>{{C[jump=3D"ictags.html#loop"]loop}}C< item item item]> LI=
ST C<[/loop]>
=20
 .named attributes: C<[loop prefix=3Dlabel* list=3D"item item item"* search=
=3D"se=3Dwhatever"*]>
=20
@@ -298,17 +336,17 @@
 .This will output:
=20
 !block example; listitem=3D2
-                Red-Small
-                White-Small
-                Blue-Small
-
-                Red-Medium
-                White-Medium
-                Blue-Medium
-
-                Red-Large
-                White-Large
-                Blue-Large
+    Red-Small
+    White-Small
+    Blue-Small
+
+    Red-Medium
+    White-Medium
+    Blue-Medium
+
+    Red-Large
+    White-Large
+    Blue-Large
 !endblock
=20
 .The search=3D"args" parameter will return an arbitrary search, just as in=
 a one-click search:
@@ -321,17 +359,17 @@
=20
 .The above will show all items with a category containing the whole world =
"Americana."
=20
-LI1: [if-loop-data table field] IF [else] ELSE [/else][/if-loop-field]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#if-PREFIX-data"]if-loop-data}}C< t=
able field]> IF C<[else]> ELSE C<[/else][/if-loop-data]>
=20
-.Outputs the IF if the C<field> in the C<table> is not empty, and the ELSE=
 (if any) otherwise.
+.Outputs the IF if the C<field> in the C<table> is not empty or the ELSE (=
if any) otherwise.
=20
-Note: This tag does not nest with other C<[if-loop-data ...]> tags.
+Note: This tag does not nest with other C<if-loop-data> tags.
=20
-LI1: [if-loop-field field] IF [else] ELSE [/else][/if-loop-field]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#if-PREFIX-field"]if-loop-field}}] =
IF C<[else]> ELSE C<[/else][/if-loop-field]>
=20
-.Outputs the IF if the C<field> in the C<products> table is not empty, and=
 the ELSE (if any) otherwise.
+.Outputs the IF if the C<field> in the C<products> table is not empty or t=
he ELSE (if any) otherwise.
=20
-Note: This tag does not nest with other C<[if-loop-field ...]> tags.
+Note: This tag does not nest with other C<if-loop-field> tags.
=20
 LI1: [loop-alternate N] DIVISIBLE [else] NOT DIVISIBLE [/else][/loop-alter=
nate]
=20
@@ -346,35 +384,37 @@
=20
 .Terminates the alternation area.
=20
-LI1: [loop-change marker]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-change"]loop-change}}C< mar=
ker>]
=20
 .Same as C<[item-change]>, but within loop lists.
=20
-LI1: [loop-code]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-code"]loop-code}}]
=20
 .Evaluates to the first returned parameter for the current returned record.
=20
-LI1: [loop-data database fieldname]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-data"]loop-data}}C< databas=
e fieldname>]
=20
 .Evaluates to the field name fieldname in the arbitrary database table dat=
abase for the current item.
=20
-LI1: [loop-description]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-description"]loop-descripti=
on}}]
=20
 .Evaluates to the product description for the current item. Returns the <D=
escription Field> from the first products database where that item exists.
=20
-LI1: [loop-field fieldname]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-field"]loop-field}}C< field=
name>]
=20
-.The [loop-field ...] tag is special in that it looks in any of the tables=
 defined as C<ProductFiles>, in that order, for the data, and returns the v=
alue only if that key is defined. In most catalogs, where C<ProductFiles> i=
s not defined C<[loop-field title]> is equivalent to C<[loop-data products =
title]>.
+.The E<lbracket>{{C[jump=3D"ictags.html#PREFIX-field"]loop-field}}]
+.The E<lbracket>{{C[jump=3D"ictags.html#PREFIX-field"]loop-field}}] tag is=
 special in that it looks in any of the tables defined as C<ProductFiles>, =
in that order, for the data and returns the value only if that key is defin=
ed. In most catalogs, where C<ProductFiles> is not defined C<[loop-field ti=
tle]> is equivalent to
+E<lbracket>{{C[jump=3D"ictags.html#PREFIX-data"]loop-field}}C< products ti=
tle>].
=20
 .Evaluates to the field name fieldname in the database for the current ite=
m.
=20
-LI1: [loop-increment]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-increment"]loop-increment}}]
=20
 .Evaluates to the number of the item in the list. Used for numbering items=
 in the list. Starts from one (1).
=20
 LI1: [loop-last]tags[/loop-last]
=20
-.Evaluates the output of the ITL tags encased in the [loop-last] tags. If =
it evaluates to a numerical non-zero number (for example, 1, 23, or -1), th=
e loop iteration will terminate. If the evaluated number is negative, the i=
tem itself will be skipped. If the evaluated number is positive, the item i=
tself will be shown, but will be last on the list.
+.Evaluates the output of the ITL tags encased in the [loop-last] tags. If =
it evaluates to a numerical non-zero number (for example, 1, 23, -10 etc.),=
 the loop iteration will terminate. If the evaluated number is negative, th=
e item itself will be skipped. If the evaluated number is positive, the ite=
m itself will be shown, but will be last on the list.
=20
 !block example; listitem=3D2
       [loop-last][calc]
@@ -388,7 +428,7 @@
=20
 LI1: [loop-next]tags[/loop-next]
=20
-.Evaluates the output of the ITL tags encased in the [loop-next] tags. If =
it evaluates to a numerical non-zero number (for example, 1, 23, or -1), th=
e loop will be skipped with no output. Example:
+.Evaluates the output of the ITL tags encased in the [loop-next] tags. If =
it evaluates to a numerical non-zero number (for example, 1, 23, -10 etc.),=
 the loop will be skipped with no output. Example:
=20
 !block example; listitem=3D2
       [loop-next][calc][loop-field weight] < 1[/calc][/loop-next]
@@ -396,27 +436,32 @@
=20
 .If this is contained in your C<[loop list]> and the product's weight fiel=
d is less than 1, a numerical C<1> will be output from the C<[calc][/calc]>=
 operation. The item will not be shown.
=20
-LI1: [loop-price n* noformat*]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-price"]loop-price}}C< n* no=
format*>]
=20
 .Evaluates to the price for the optional quantity n (from the products fil=
e) of the current item, with currency formatting. If the optional "noformat=
" is set, then currency formatting will not be applied.
=20
-LI1: [loop-calc]PERL[/loop-calc]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#PREFIX-calc"]loop-calc}}] PERL C<[=
/loop-calc]>
=20
-.Calls embedded Perl with the code in the container. All [loop-...] tags c=
an be placed inside except for [loop-filter ...][/loop-filter], [loop-exec =
routine][/loop-exec], [loop-last][/loop-last], and [loop-next][/loop-next.
+.Calls embedded Perl with the code in the container. All C<[loop-*]> tags =
can be placed inside except for C<[loop-filter ...][/loop-filter]>, C<[loop=
-exec routine][/loop-exec]>, C<[loop-last][/loop-last]> and C<[loop-next][/=
loop-next]>.
=20
 Note: All normal embedded Perl operations can be used, but be careful to p=
re-open any database tables with a [perl tables=3D"tables you need"][/perl]=
 tag prior to the opening of the [loop].
=20
 LI1: [loop-exec routine]argument[/loop-exec]
=20
-.Calls a subroutine predefined either in catalog.cfg with Sub, or in a [lo=
op...] with [loop-sub routine]PERL[/loop-sub]. The container text is passed=
 as $_[0], and the array (or hash) value of the current row is $_[1].
+.Calls a subroutine predefined either in catalog.cfg with Sub or in a
+E<lbracket>{{C[jump=3D"ictags.html#loop"]loop}}]
+with C<[loop-sub routine]> PERL C<[/loop-sub]>. The container text is pass=
ed as C<$_[0]> and the array (or hash) value of the current row is C<$_[1]>.
=20
 LI1: [loop-sub routine]PERL[/loop-sub]
=20
-.Defines a subroutine that is available to the current (and subsequent) [l=
oop-...] tags within the same page. See {{CMD[jump=3D"icconfig.html#Program=
ming"]Interchange Programming}}.
+.Defines a subroutine that is available to the current (and subsequent) C<=
[loop-*]> tags within the same page. See {{CMD[jump=3D"#Programming"]Interc=
hange Programming}}.
=20
 H2: if
=20
-LI1: [if type field op* compare*]
+LI1: E<lbracket>{{C[jump=3D"ictags.html#if"]if}}C< type field op* compare*=
>]
+
+The Interchange Tags Reference has more information on the
+E<lbracket>{{C[jump=3D"ictags.html#if"]if}}] tag.
=20
 .named attributes: C<[if type=3D"type" term=3D"field" op=3D"op" compare=3D=
"compare"]>
=20
@@ -445,15 +490,16 @@
     [/if]
 !endblock
=20
-The C<[if]> tag can also have some variants:
+The E<lbracket>{{C[jump=3D"ictags.html#if"]if}}] tag can also have some va=
riants:
=20
 !block example; listitem=3D1
-    [if explicit][condition] CODE [/condition]
-                Displayed if valid Perl CODE returns a true value.
+    [if explicit]
+    [condition] CODE [/condition]
+                                Displayed if valid Perl CODE returns a tru=
e value.
     [/if]
 !endblock
=20
-Some Perl-style regular expressions can be written, and combine conditions:
+Some Perl-style regular expressions can be written:
=20
 !block example; listitem=3D1
     [if value name =3D~ /^mike/i]
@@ -557,7 +603,8 @@
=20
 LI1: explicit
=20
-.A test for an explicit value. If Perl code is placed between a C<[conditi=
on]> C<[/condition]> tag pair, it will be used to make the comparison. Argu=
ments can be passed to import data from user space, just as with the C<[per=
l]> tag.
+.A test for an explicit value. If Perl code is placed between a C<[conditi=
on]> C<[/condition]> tag pair, it will be used to make the comparison. Argu=
ments can be passed to import data from user space, just as with the
+E<lbracket>{{C[jump=3D"ictags.html#perl"]perl}}] tag.
=20
 !block example; listitem=3D2
     [if explicit]
@@ -628,7 +675,7 @@
=20
     [if type=3Dordered term=3D"99-102" compare=3D"size =3D~ /large/i"]
=20
-    To make sure it is the size that is large, and not another attribute, =
you could use:
+    To make sure it is the size that is large and not another attribute, y=
ou could use:
=20
     [if ordered 99-102 main size eq 'large'] ... [/if]
=20
@@ -640,7 +687,7 @@
=20
 LI1: scratch
=20
-.The Interchange scratchpad variables, which can be set with the C<[set na=
me]value[/set]> element.
+.The Interchange scratchpad variables, which can be set with the C<[set na=
me] value [/set]> element.
=20
 !block example; listitem=3D2
     [if scratch mv_separate_items]
@@ -653,15 +700,15 @@
=20
 LI1: session
=20
-.The Interchange session variables. Of particular interest are logged_in, =
source, browser, and username.
+.The Interchange session variables. Of particular interest are logged_in, =
source, browser and username.
=20
 LI1: validcc
=20
-.A special case, it takes the form C<[if validcc no type exp_date]>. Evalu=
ates to true if the supplied credit card number, type of card, and expirati=
on date pass a validity test. It performs a LUHN-10 calculation to weed out=
 typos or phony card numbers.
+.A special case, it takes the form C<[if validcc no type exp_date]>. Evalu=
ates to true if the supplied credit card number, type of card and expiratio=
n date pass a validity test. It performs a LUHN-10 calculation to weed out =
typos or phony card numbers.
=20
 LI1: value
=20
-.The Interchange user variables, typically set in search, control, or orde=
r forms. Variables beginning with C<mv_> are Interchange special values, an=
d should be tested and used with caution.
+.The Interchange user variables, typically set in search, control or order=
 forms. Variables beginning with C<mv_> are Interchange special values and =
should be tested and used with caution.
=20
 =3Ditem variable
=20
@@ -724,7 +771,8 @@
=20
 LI1: [condition] text [/condition]
=20
-.Only used with the C<[if explicit]> tag. Allows an arbitrary expression B=
<in Perl> to be placed inside, with its return value interpreted as the res=
ult of the test. If arguments are added to C<[if explicit args]>, those wil=
l be passed as arguments in the C<[perl]> construct.
+.Only used with the C<[if explicit]> tag. Allows an arbitrary expression B=
<in Perl> to be placed inside, with its return value interpreted as the res=
ult of the test. If arguments are added to C<[if explicit args]>, those wil=
l be passed as arguments in the
+E<lbracket>{{C[jump=3D"ictags.html#perl"]perl}}] construct.
=20
 LI1: [/if]
=20
@@ -786,7 +834,7 @@
=20
 The two examples above are essentially equivalent.  See the {{C[jump=3D"ic=
tags.html#perl"]perl}} and  {{C[jump=3D"ictags.html#mvasp"]mvasp}} tags for=
 usage details.
=20
-The C<[{{CMD[jump=3D"ictags.html#perl"]perl}}]> tag enforces {{CMD[jump=3D=
"http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}} checking,=
 so many standard Perl operators are not available. This prevents user acce=
ss to all files and programs on the system without the Interchange daemon's=
 permissions. See {{C[jump=3D"#GlobalSub *global*"]GlobalSub}} and {{C[jump=
=3D"ictags.html#User-defined Tags"]User-defined Tags}} for ways to make ext=
ernal files and programs available to Interchange.
+The C<[{{CMD[jump=3D"ictags.html#perl"]perl}}]> tag enforces {{CMD[jump=3D=
"http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}} checking,=
 so many standard Perl operators are not available. This prevents user acce=
ss to all files and programs on the system without the Interchange daemon's=
 permissions. See {{C[jump=3D"icconfig.html#GlobalSub *global*"]GlobalSub}}=
 and {{C[jump=3D"ictags.html#User-defined Tags"]User-defined Tags}} for way=
s to make external files and programs available to Interchange.
=20
 .Named parameters:
=20
@@ -815,9 +863,9 @@
    [/perl]
 !endblock
=20
-Note[label=3D'Important Note: '] Global subroutines are not subject to the=
 stringent security check from the C<Safe> module. This means that the subr=
outine will be able to modify any variable in Interchange, and will be able=
 to write to read and write any file that the Interchange daemon has permis=
sion to write. Because of this, the subroutines should be used with caution=
 They are defined in the main C<interchange.cfg> file, and can't be reache=
d by from individual users in a multi-catalog system.
+Note[label=3D'Important Note: '] Global subroutines are not subject to the=
 stringent security check from the C<Safe> module. This means that the subr=
outine will be able to modify any variable in Interchange and will be able =
to write to read and write any file that the Interchange daemon has permiss=
ion to write. Because of this, the subroutines should be used with caution.=
 They are defined in the main C<interchange.cfg> file and can't be reached =
by from individual users in a multi-catalog system.
=20
-Global subroutines are defined in C<interchange.cfg> with the C<GlobalSub>=
 directive, or in user catalogs which have been enabled through C<AllowGlob=
al>. Catalog subroutines are defined in C<catalog.cfg>, with the C<Sub> dir=
ective and are subject to the stringent Safe.pm security restrictions that =
are controlled by the global directive C<SafeUntrap>.
+Global subroutines are defined in C<interchange.cfg> with the C<GlobalSub>=
 directive or in user catalogs which have been enabled through C<AllowGloba=
l>. Catalog subroutines are defined in C<catalog.cfg>, with the C<Sub> dire=
ctive and are subject to the stringent Safe.pm security restrictions that a=
re controlled by the global directive C<SafeUntrap>.
=20
 The code can be as complex as you want them to be, but cannot be used by o=
perators that modify the file system or use unsafe operations like "system,=
" "exec," or backticks. These constraints are enforced with the default per=
missions of the standard Perl module {{B:Safe}}. Operations may be untrappe=
d on a system-wide basis with the C<SafeUntrap> directive.
=20
@@ -872,7 +920,7 @@
=20
 If no closing C<[/mvasp]> tag is present, the remainder of the page will a=
lso be seen as ASP.
=20
-ASP is simple. Anything between <% and %> is code, and the string %> can n=
ot occur anywhere inside. Anything not between those anchors is plain HTML =
that is placed unchanged on the page. Interchange variables, [L][/L], and [=
LC][/LC] areas will still be inserted, but any Interchange tags will not.
+ASP is simple. Anything between <% and %> is code, and the string %> can n=
ot occur anywhere inside. Anything not between those anchors is plain HTML =
that is placed unchanged on the page. Interchange variables, C<[L][/L]> and=
 C<[LC][/LC]> areas will still be inserted, but any Interchange tags will n=
ot.
=20
 There is a shorthand <% =3D $foo %>, which is equivalent to <% $Document->=
write($foo); %> or <% HTML $foo; %>
=20
@@ -902,7 +950,7 @@
=20
 H1: Interchange Perl Objects
=20
-.Interchange gives you access to the power of Perl with the [perl], [calc]=
, and
+.Interchange gives you access to the power of Perl with the [perl], [calc]=
 and
 .[mvasp] tags. They all support the same set of Perl objects and variables.
=20
 H2: A note about Safe
@@ -1163,7 +1211,7 @@
=20
 .A search object that will search a database without using the text file. =
It is the same as Interchange's C<db> searchtype. Options are specified in =
a hash and passed to the object. All multiple-field options should be passe=
d as array references. Before using the $DbSearch object, it must be told w=
hich table to search. For example, to use the table C<foo>, it must have be=
en shared with C<[mvasp foo]>.
=20
-.There are three search methods: C<array>, C<hash>, and C<list>.
+.There are three search methods: C<array>, C<hash> and C<list>.
=20
 !block example; listitem=3D2
     array    Returns a reference to an array of arrays (best)
@@ -1213,7 +1261,7 @@
 !endblock
=20
 Note the write of 4096 spaces. Because Interchange's link program is
-parsed by default, and your web server (and the link program) have
+parsed by default and your web server (and the link program) have
 buffers, you need to fill up the buffer to cause a write. You can do it
 without the extra padding if you set the link up as a non-parsed-header
 program -- see your web server documentation on how to do that.
@@ -1262,7 +1310,7 @@
=20
 LI1: $Document->header($foo, $opt)
=20
-.Add the header line $foo to the HTTP header. This is used to change the p=
age content type, cache options, or other attributes. The code below change=
s the content type (MIME type) to text/plain:
+.Add the header line $foo to the HTTP header. This is used to change the p=
age content type, cache options or other attributes. The code below changes=
 the content type (MIME type) to text/plain:
=20
 !block example; listitem=3D2
     $Document->header("Content-type: text/plain");
@@ -1407,7 +1455,7 @@
     $Tag->shipping_desc('upsg');
 !endblock
=20
-.There are two ways of specifying parameters. Either use the positional pa=
rameters as documented (for an authoritative look at the parameters, see th=
e %Routine value in Vend::Parse), or specify it all with an option hash par=
ameter names as in any named parameters as specified in an Interchange tag.=
 The calls
+.There are two ways of specifying parameters. Either use the positional pa=
rameters as documented (for an authoritative look at the parameters, see th=
e %Routine value in Vend::Parse) or specify it all with an option hash para=
meter names as in any named parameters as specified in an Interchange tag. =
The calls
=20
 !block example; listitem=3D2
     $Tag->data('products', 'title', '00-0011');
@@ -1669,7 +1717,7 @@
=20
 .If an named attribute corresponding to a product option is passed, and th=
at option would cause a change in the price, the appropriate price will be =
displayed.
=20
-.Demo example: The T-Shirt (product code 99-102), with a base price of $10=
00, can vary in price depending on size and color. C<S>, the small size, i=
s 50 cents less; C<XL>, the extra large size, is $1.00 more, and the color =
C<RED> is 0.75 extra. There are also quantity pricing breaks (see the demo =
C<pricing> database. So the following will be true:
+.Demo example: The T-Shirt (product code 99-102), with a base price of $10=
00, can vary in price depending on size and color. C<S>, the small size, i=
s 50 cents less; C<XL>, the extra large size, is $1.00 more and the color C=
<RED> is 0.75 extra. There are also quantity pricing breaks (see the demo C=
<pricing> database. So the following will be true:
=20
 !block example; listitem=3D2
     [price  code=3D99-102
@@ -1755,7 +1803,7 @@
=20
 The C<[banner ...]> ITL tag is used to implement it.
=20
-The weighting system pre-builds banners in the directory 'Banners,' under =
the temporary directory. It will build one copy of the banner for every one=
 weight. If one banner is weighted C<7>, one C<2>, and one C<1>, then a tot=
al of 10 pre-built banners will be made. The first will be displayed 70 per=
cent of the time, the second 20 percent, and the third 10 percent, in rando=
m fashion. If all banners need to be equal, give each a weight of 1.
+The weighting system pre-builds banners in the directory 'Banners,' under =
the temporary directory. It will build one copy of the banner for every one=
 weight. If one banner is weighted C<7>, one C<2> and one C<1>, then a tota=
l of 10 pre-built banners will be made. The first will be displayed 70 perc=
ent of the time, the second 20 percent and the third 10 percent, in random =
fashion. If all banners need to be equal, give each a weight of 1.
=20
 Each category may have separate weighting. If the above is placed in categ=
ory C<tech>, then it will behave as above when placed in C<[banner category=
=3Dtech]> in the page. A separate category, say C<art>, would have its own =
rotation and weighting.
=20
@@ -1793,7 +1841,7 @@
=20
 The special key "default" is the banner that is displayed if no banners ar=
e found. (Doesn't apply to weighted banners.)
=20
-Weighted banners are built the first time they are accessed after catalog =
reconfiguration. They will not be rebuilt until the catalog is reconfigured=
, or the file tmp/Banners/total_weight and tmp/Banners/<category>/total_wei=
ght is removed.
+Weighted banners are built the first time they are accessed after catalog =
reconfiguration. They will not be rebuilt until the catalog is reconfigured=
 or the file tmp/Banners/total_weight and tmp/Banners/<category>/total_weig=
ht is removed.
=20
 If the option C<once> is passed (i.e., [banner once=3D1 weighted=3D1], the=
n the banners will not be rebuilt until the C<total_weight> file is removed.
=20
@@ -1918,7 +1966,7 @@
     tech:sw            0        1        Software banner 1{or}SW banner 2
 !endblock
=20
-.This works the same as single-level categories, except that the category =
tech:hw will select that banner. The category tech:sw will select its own. =
But, the category tech:html would just get the "tech" banner. Otherwise, it=
 works just as in other categorized ads. Rotation will work if set non-zero=
/non-blank, and it will be inactive if the rotate field is blank. Each cate=
gory rotates on its own.
+.This works the same as single-level categories, except that the category =
tech:hw will select that banner. The category tech:sw will select its own. =
But, the category tech:html would just get the "tech" banner. Otherwise, it=
 works just as in other categorized ads. Rotation will work if set non-zero=
/non-blank and it will be inactive if the rotate field is blank. Each categ=
ory rotates on its own.
=20
 LI1: Advanced
=20
@@ -2027,7 +2075,7 @@
=20
 .named attributes: C<[cart name=3D"name"]>
=20
-.Sets the name of the current shopping cart for display of shipping, price=
, total, subtotal, and nitems tags. If a different price is used for the ca=
rt, all of the above except C<[shipping]> will reflect the normal price fie=
ld. Those operations must be emulated with embedded Perl or the C<[item-lis=
t]>, C<[calc]>, and C<[currency]> tags, or use the PriceAdjustment feature =
to set it.
+.Sets the name of the current shopping cart for display of C<[shipping]>, =
C<[price]>, C<[total]>, C<[subtotal]> and C<[nitems]> tags. If a different =
price is used for the cart, all of the above except C<[shipping]> will refl=
ect the normal price field. Those operations must be emulated with embedded=
 Perl or the C<[item-list]>, C<[calc]> and C<[currency]> tags, or use the P=
riceAdjustment feature to set it.
=20
 LI1: [row nn]
=20
@@ -2062,7 +2110,7 @@
                     is yes.
=20
     align=3D(L|R|I)   Determines whether text is aligned to the left (the =
default),
-                    the right, or in a way that might display an HTML text
+                    the right or in a way that might display an HTML text
                     input field correctly.
 !endblock
=20
@@ -2074,7 +2122,7 @@
=20
 Within any page, the C<[item-list cart*]> element shows a list of all the =
items ordered by the customer so far. It works by repeating the source betw=
een C<[item-list]> and C<[/item-list]> once for each item ordered.
=20
-Note: The special tags that reference item within the list are not normal =
Interchange tags, do not take named attributes, and cannot be contained in =
an HTML tag (other than to substitute for one of its values or provide a co=
nditional container). They are interpreted only inside their corresponding =
list container. Normal Interchange tags can be interspersed, though they wi=
ll be interpreted I<after> all of the list-specific tags.
+Note: The special tags that reference item within the list are not normal =
Interchange tags, do not take named attributes and cannot be contained in a=
n HTML tag (other than to substitute for one of its values or provide a con=
ditional container). They are interpreted only inside their corresponding l=
ist container. Normal Interchange tags can be interspersed, though they wil=
l be interpreted I<after> all of the list-specific tags.
=20
 Between the item_list markers the following elements will return informati=
on for the current item:
=20
@@ -2232,7 +2280,7 @@
=20
 H2: On-the-fly Catalog Pages
=20
-If an item is displayed on the search list (or order list) and there is a =
link to a special page keyed on the item, Interchange will attempt to build=
 the page "on the fly." It will look for the special page flypage.html, whi=
ch is used as a template for building the page. If C<[item-field fieldname]=
>, C<[item-price]>, and similar elements are used on the page, complex and =
information-packed pages can be built. The C<[if-item-field fieldname]> HTM=
L C<[/if-item-field]> pair can be used to insert HTML only if there is a no=
n-blank value in a particular field.
+If an item is displayed on the search list (or order list) and there is a =
link to a special page keyed on the item, Interchange will attempt to build=
 the page "on the fly." It will look for the special page flypage.html, whi=
ch is used as a template for building the page. If C<[item-field fieldname]=
>, C<[item-price]> and similar elements are used on the page, complex and i=
nformation-packed pages can be built. The C<[if-item-field fieldname]> HTML=
 C<[/if-item-field]> pair can be used to insert HTML only if there is a non=
-blank value in a particular field.
=20
 {{B:Important note:}} Because the tags are substituted globally on the pag=
e, C<[item-*]> tags cannot be used on the default on-the-fly page. To use a=
 [search-region] or [item-list] tag, change the default with the prefix par=
ameter. Example:
=20
@@ -2285,7 +2333,7 @@
 H2: Special Pages
=20
 A number of HTML pages are special for Interchange operation. Typically, t=
hey
-are used to transmit error messages, status of search or order operations,=
 and
+are used to transmit error messages, status of search or order operations =
and
 other out of boundary conditions.
=20
 Note: The distributed demo does not use all of the default values.
@@ -2352,7 +2400,7 @@
=20
 Of course, the server must be restarted for it to be recognized. The full =
path to the program should be used. If having trouble, check it from the co=
mmand line (as with all external programs called by Interchange).
=20
-Insert C<[flag type=3Dcheckhtml][/tag]> at the top or bottom of pages to c=
heck, and the output of the checker should be appended to the browser outpu=
t as a comment, visible if the page or frame source are viewed. To do this =
occasionally, use a Variable setting:
+Insert C<[flag type=3Dcheckhtml][/tag]> at the top or bottom of pages to c=
heck and the output of the checker should be appended to the browser output=
 as a comment, visible if the page or frame source are viewed. To do this o=
ccasionally, use a Variable setting:
=20
 !block example
    Variable  CHECK_HTML    [flag type=3Dcheckhtml]
@@ -2362,7 +2410,7 @@
=20
 H1: Forms and Interchange
=20
-Interchange uses HTML forms for many of its functions, including ordering,=
 searching, updating account information, and maintaining databases. Order =
operations possibly include ordering an item, selecting item size or other =
attributes, and reading user information for payment and shipment. Search o=
perations may also be triggered by a form.
+Interchange uses HTML forms for many of its functions, including ordering,=
 searching, updating account information and maintaining databases. Order o=
perations possibly include ordering an item, selecting item size or other a=
ttributes and reading user information for payment and shipment. Search ope=
rations may also be triggered by a form.
=20
 Interchange supports file upload with the C<multipart/form-data> type. The=
 file is placed in memory and discarded if not accessed with the C<[value-e=
xtended name=3Dfilevar file_contents=3D1]> tag or written with C<[value-ext=
ended name=3Dfilevar outfile=3Dyour_file_name]>. See Extended Value Access =
and File Upload.
=20
@@ -2568,7 +2616,7 @@
=20
 .Submits the form for order processing. If no order profile is defined wit=
h the C<mv_order_profile> variable, the order is checked to see if the curr=
ent cart contains any items and the order is submitted.
=20
-.If there is an order profile defined, the form will be checked against th=
e definition in the order profile and submitted if the pragma &final is set=
 to yes. If &final is set to no (the default), and the check succeeds, the =
user will be routed to the Interchange page defined in mv_successpage, or m=
v_nextpage. If the check fails, the user will be routed to mv_failpage or m=
v_nextpage in that order.
+.If there is an order profile defined, the form will be checked against th=
e definition in the order profile and submitted if the pragma &final is set=
 to yes. If C<&final> is set to no (the default) and the check succeeds, th=
e user will be routed to the Interchange page defined in mv_successpage or =
mv_nextpage. If the check fails, the user will be routed to mv_failpage or =
mv_nextpage in that order.
=20
 H2: One-click Multiple Variables
=20
@@ -2635,7 +2683,7 @@
=20
 H2: Checks and Selections
=20
-A "memory" for drop-down menus, radio buttons, and checkboxes can be provi=
ded with the C<[checked]> and C<[selected]> tags.
+A "memory" for drop-down menus, radio buttons and checkboxes can be provid=
ed with the C<[checked]> and C<[selected]> tags.
=20
 LI1: [checked var_name value]
=20
@@ -2964,7 +3012,7 @@
=20
 H1: Internationalization
=20
-Interchange has a rich set of internationalization (I18N) features that al=
low conditional message display, differing price formats, different currenc=
y definitions, price factoring, sorting, and other settings. The definition=
s are maintained in the catalog.cfg file through the use of built-in POSIX =
support and Interchange's C<Locale> directive. All settings are independent=
 for each catalog and each user visiting that catalog, since customers can =
access the same catalog in an unlimited number of languages and currencies.
+Interchange has a rich set of internationalization (I18N) features that al=
low conditional message display, differing price formats, different currenc=
y definitions, price factoring, sorting and other settings. The definitions=
 are maintained in the catalog.cfg file through the use of built-in POSIX s=
upport and Interchange's C<Locale> directive. All settings are independent =
for each catalog and each user visiting that catalog, since customers can a=
ccess the same catalog in an unlimited number of languages and currencies.
=20
 H2: Configuring the Locale
=20
@@ -3042,7 +3090,7 @@
=20
 <A HREF=3D"[area index]">Catalog home page</A>
=20
-If a page index.html exists, it will be the default. If the current locale=
 is C<fr_FR>, a page "index.fr_FR" exists, and C<Locale> looks like this:
+If a page index.html exists, it will be the default. If the current locale=
 is C<fr_FR>, a page "index.fr_FR" exists and C<Locale> looks like this:
=20
 !block example
    Locale fr_FR HTMLsuffix  .fr_FR
@@ -3116,7 +3164,7 @@
     Locale fr_FR price_picture "##.###,## fr"
 !endblock
=20
-Note[label=3D'IMPORTANT NOTE: '] The decimal point in use, set by C<mon_de=
cimal_point>, and the thousands separator, set by C<mon_thousands_sep> must=
 match the settings in the price_picture. The C<frac_digits> setting is not=
 used in this case. It is derived from the location of the decimal (if any).
+Note[label=3D'IMPORTANT NOTE: '] The decimal point in use (set by C<mon_de=
cimal_point>) and the thousands separator (set by C<mon_thousands_sep>) mus=
t match the settings in the price_picture. The C<frac_digits> setting is no=
t used in this case. It is derived from the location of the decimal (if any=
).
=20
 .The same setting for C<fr_FR> above can be achieved with:
=20
@@ -3288,7 +3336,7 @@
=20
 H2: Placing Locale Information in a Database
=20
-Interchange has the capability to read its locale information from a datab=
ase, named with the C<LocaleDatabase> directive. The database can be of any=
 valid Interchange type. The locales are in columns, and the keys are in ro=
ws. For example, to set up price information:
+Interchange has the capability to read its locale information from a datab=
ase, named with the C<LocaleDatabase> directive. The database can be of any=
 valid Interchange type. The locales are in columns and the keys are in row=
s. For example, to set up price information:
=20
 !block example
    key                 en_US   fr_FR   de_DE



1.96      +139 -114  docs/ictags.sdf


rev 1.96, prev_rev 1.95
Index: ictags.sdf
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/docs/ictags.sdf,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- ictags.sdf	31 Jul 2002 12:14:41 -0000	1.95
+++ ictags.sdf	31 Jul 2002 19:54:41 -0000	1.96
@@ -1,10 +1,10 @@
 !init OPT_LOOK=3D"akopia"; OPT_STYLE=3D"manual"=20
-# $Id: ictags.sdf,v 1.95 2002/07/31 12:14:41 kwalsh Exp $
+# $Id: ictags.sdf,v 1.96 2002/07/31 19:54:41 kwalsh Exp $
=20
 !define DOC_NAME "Interchange Tags Reference"
 !define DOC_TYPE ""
 !define DOC_CODE "ictags"
-!define DOC_VERSION substr('$Revision: 1.95 $', 11, -2)
+!define DOC_VERSION substr('$Revision: 1.96 $', 11, -2)
 !define DOC_STATUS "Draft"
 !define DOC_PROJECT "Interchange"
 !define DOC_URL "http://interchange.redhat.com/doc/ictags.html"
@@ -613,7 +613,8 @@
 E<lbracket>{{C[jump=3D"#PREFIX-code"]PREFIX-code}}]
 This may or may not be equivalent to
 E<lbracket>{{C[jump=3D"#PREFIX-field"]PREFIX-field}} field]
-depending upon whether your search table is defined as one of the C<Produc=
tFiles>.
+depending upon whether your search table is defined as one of the
+{{C[jump=3D"icconfig.html#ProductFiles"]ProductFiles}}.
=20
 H2: PREFIX-description
=20
@@ -668,7 +669,9 @@
=20
 In this case, you are searching the table C<foo> for a string
 of C<bar>. When it is found, you wish to display the value of C<foo_field>.
-Unless C<foo> is in C<ProductFiles> and the code is not present in a previ=
ous
+Unless C<foo> is in
+{{C[jump=3D"icconfig.html#ProductFiles"]ProductFiles}}
+and the code is not present in a previous
 product file, you will get a blank or some value you don't want. What
 you really want is
 E<lbracket>{{C[jump=3D"#PREFIX-data"]loop-data}}C< foo field>], which spec=
ifically=20
@@ -965,7 +968,7 @@
 {{CMD[jump=3D"#accessories_width"]width}}|I<none>
 {{CMD[jump=3D"#accessories_default"]default}}|I<none>
 {{CMD[jump=3D"#accessories_price"]price}}|I<none>
-{{CMD[jump=3D"#accessories_price"]price_data}}|I<none>
+{{CMD[jump=3D"#accessories_price_data"]price_data}}|I<none>
 {{CMD[jump=3D"#accessories_contains"]contains}} (C<type>=3Dradio or check)=
|I<none>
 {{CMD[jump=3D"#accessories_joiner"]joiner}} (C<type>=3Dlinks)|I<none>
 {{CMD[jump=3D"#accessories_href"]href}} (C<type>=3Dlinks)|I<none>
@@ -1716,6 +1719,7 @@
     <INPUT TYPE=3D"checkbox" NAME=3D"color" VALUE=3D"green" CHECKED>&nbsp;=
Sea Green&nbsp;($50.00)
 !endblock
=20
+H4: {{CMD[id=3D"accessories_price_data"]price_data}}
=20
 H4: {{CMD[id=3D"accessories_contains"]contains}}
=20
@@ -1767,7 +1771,7 @@
=20
 For example, to generate a series of linksE<nbspace>E<emdash> one
 per item attribute value passedE<nbspace>E<emdash> that set the
-variable "color" to the corresponding {{C[jump=3D"#passed"]passed}}
+variable "color" to the corresponding {{C[jump=3D"#accessories_passed"]pas=
sed}}
 value (blank, blue, or green), do N<this:>
=20
 !block example
@@ -2124,6 +2128,8 @@
 See the description of the {{CMD[jump=3D"#page_search"]page}} tag for more
 detail.
=20
+H4: {{CMD[id=3D"area_secure"]secure}}
+
=20
 H4: Examples
=20
@@ -6492,8 +6498,12 @@
=20
=20
 # BEGIN ########### handling Subsections ##############
+H4: {{CMD[id=3D"handling_cart"]cart}}
+
 H4: {{CMD[id=3D"handling_mode"]mode}}
=20
+H4: {{CMD[id=3D"handling_table"]table}}
+
=20
=20
 # END ++++++++++++ handling Subsections +++++++++++++
@@ -7128,14 +7138,14 @@
=20
 H4: [else] text [/else]
=20
-The optional else-text for an if or if_field conditional.
+The optional else-text for an if or C<[if-field]> conditional.
=20
 H4: [condition] text [/condition]
=20
 Only used with the [if explicit] tag. Allows an arbitrary expression
 B<in Perl> to be placed inside, with its return value interpreted as
 the result of the test. If arguments are added to [if explicit args],
-those will be passed as arguments are in the E<lbracket>{{I[jump=3D"#per"]=
per}}l] construct.
+those will be passed as arguments are in the E<lbracket>{{I[jump=3D"#perl"=
]perl}}] construct.
=20
=20
=20
@@ -7691,36 +7701,38 @@
 H4: E<lbracket>if-data table column]
=20
 If the database field C<column> in table I<table> is non-blank, the
-following text up to the C<[/if_data]> tag is substituted. This can be
+following text up to the C<[/if-data]> tag is substituted. This can be
 used to substitute IMG or other tags only if the corresponding source
-item is present. Also accepts a C<[else]>else textC<[/else]> pair for the
+item is present. Also accepts an C<[else]>else textC<[/else]> pair for the
 opposite condition.
=20
 H4: E<lbracket>if-data ! table column]
=20
-Reverses sense for [if-data].
+Reverses sense for C<[if-data]>.
=20
 H4: E<lbracket>/if-data]
=20
-Terminates an [if_data table column] element.
+Terminates an C<[if-data table column]> element.
=20
 H4: E<lbracket>if-field fieldname]
=20
 If the products database field I<fieldname> is non-blank, the following
-text up to the [/if_field] tag is substituted. If you have more than
-one products database table (see I<ProductFiles>), it will check
+text up to the C<[/if-field]> tag is substituted. If you have more than
+one products database table (see
+{{C[jump=3D"icconfig.html#ProductFiles"]ProductFiles}}),
+it will check
 them in order until a matching key is found. This can be used to
 substitute IMG or other tags only if the corresponding source
-item is present. Also accepts a [else]else text[/else] pair
+item is present. Also accepts an C<[else]>else textC<[/else]> pair
 for the opposite condition.
=20
 H4: E<lbracket>if-field ! fieldname]
=20
-Reverses sense for [if-field].
+Reverses sense for C<[if-field]>.
=20
 H4: E<lbracket>/if-field]
=20
-Terminates an [if_field fieldname] element.
+Terminates an C<[if-field fieldname]> element.
=20
 H4: E<lbracket>item-accessories attribute*, type*, field*, database*, name=
*]
=20
@@ -7749,7 +7761,8 @@
=20
 Evaluates to the field name I<fieldname> in the products database,
 for the current item. If the item is not found in the first of the
-I<ProductFiles>, all will be searched in sequence.
+{{C[jump=3D"icconfig.html#ProductFiles"]ProductFiles}},
+all will be searched in sequence.
=20
 H4: E<lbracket>item-increment]
=20
@@ -8303,7 +8316,8 @@
=20
 Outputs the B<IF> if the C<column> in the C<products> table is non-empty,
 and the B<ELSE> (if any) otherwise. Will fall through to the first
-non-empty field if there are multiple C<ProductFiles>.
+non-empty field if there are multiple
+{{C[jump=3D"icconfig.html#ProductFiles"]ProductFiles}}.
=20
 See E<lbracket>{{CMD[jump=3D"#if-PREFIX-field"]if-PREFIX-field}}E<rbracket=
>.
=20
@@ -8617,7 +8631,7 @@
 and '%>' ASP delimiters allow you to mix HTML and perl code.
=20
 See the {{C[jump=3D"#perl"]perl}} tag and
-{{CMD[jump=3D"icconfig.html#ASP-Like Perl"]ASP-Like Perl}}
+{{CMD[jump=3D"ictemplates.html#ASP-Like Perl"]ASP-Like Perl}}
 sections for more detail.
=20
 H4: {{CMD[id=3D"mvasp_tables"]tables}}
@@ -8661,7 +8675,7 @@
=20
 H4: Examples
=20
-See the {{CMD[jump=3D"icconfig.html#ASP-Like Perl"]ASP-Like Perl}}
+See the {{CMD[jump=3D"ictemplates.html#ASP-Like Perl"]ASP-Like Perl}}
 section of {{CMD[jump=3D"ictemplates.html#Programming"]Interchange Program=
ming}}.
=20
=20
@@ -9201,7 +9215,8 @@
 B<code> should be a product code listed in one of the "products"
 databases. The optional argument B<base> constrains the order to
 a particular products file. If not specified, all tables defined as
-ProductFiles will be searched in sequence for the item.
+{{C[jump=3D"icconfig.html#ProductFiles"]ProductFiles}}
+will be searched in sequence for the item.
=20
 The optional argument B<cart> selects the shopping cart where the item
 will be placed.
@@ -9390,6 +9405,8 @@
 Interchange cannot use the cache, since the link must then include the
 I<mv_session_id> argument in order to preserve session.
=20
+H4: {{CMD[id=3D"page_extra"]extra}}
+
 H4: {{CMD[id=3D"page_form"]form}}
=20
 The optional C<form> argument allows you to encode a form in the link.
@@ -9520,6 +9537,7 @@
 E<lbracket>{{C[jump=3D"#area"]area}} ...]> tags to specify the search
 (an argument to a scan is never valid anyway).
=20
+H4: {{CMD[id=3D"page_secure"]secure}}
=20
=20
 H4: Original syntax
@@ -9990,7 +10008,7 @@
=20
 !block table; colvaligns=3D"TTT"; format=3D"262"
 Parameters|Description|Default
-{{CMD[jump=3D"#price_mv_ib"]base}}|<<
+{{CMD[jump=3D"#price_base"]base}}|<<
 Alias for mv_ib
 >>|DEFAULT_VALUE
 {{CMD[jump=3D"#price_code"]code}}|<<
@@ -10137,6 +10155,8 @@
=20
=20
 # BEGIN ########### price Subsections ##############
+H4: {{CMD[id=3D"price_base"]base}}
+
 H4: {{CMD[id=3D"price_code"]code}}
=20
=20
@@ -12082,7 +12102,7 @@
 * Here is an example from the foundation checkout.html page:
 >    [shipping
 >        label=3D1
->        mode=3D|E<lbracket>{{CMD[jump=3D"#data"]data}} table=3Dcountry ke=
y=3D'[default country US]' col=3Dshipmodes]|
+>        mode=3D|[data table=3Dcountry key=3D'[default country US]' col=3D=
shipmodes]|
 >    ]
 >>|DEFAULT_VALUE
 {{CMD[jump=3D"#shipping_mode"]mode}}|<<
@@ -12225,7 +12245,7 @@
 * Here is an example from the foundation checkout.html page:
 >    [shipping
 >        label=3D1
->        mode=3D|E<lbracket>{{CMD[jump=3D"#data"]data}} table=3Dcountry ke=
y=3D'[default country US]' col=3Dshipmodes]|
+>        mode=3D|[data table=3Dcountry key=3D'[default country US]' col=3D=
shipmodes]|
 >    ]
=20
=20
@@ -13441,7 +13461,8 @@
=20
=20
 # BEGIN ########### tmp Subsections ##############
-H4: {{CMD[id=3D"tmp_name"]name}}
+
+H4: {{CMD[id=3D"tmpn_name"]name}}
=20
=20
=20
@@ -14319,6 +14340,10 @@
 # BEGIN ########### userdb Subsections ##############
 H4: {{CMD[id=3D"userdb_function"]function}}
=20
+H4: {{CMD[id=3D"userdb_nickname"]name}}
+
+H4: {{CMD[id=3D"userdb_db"]table}}
+
=20
=20
 # END ++++++++++++ userdb Subsections +++++++++++++
@@ -14586,7 +14611,6 @@
 file upload, then the contents of that upload can be returned to the=20
 page or optionally written to the C<outfile>.
=20
-
 H4: {{CMD[id=3D"tree_name"]name}}
=20
 The form variable NAME. If no other parameters are present, then the=20
@@ -14654,6 +14678,8 @@
=20
=20
 # BEGIN ########### value-extended Subsections ##############
+H4: {{CMD[id=3D"value_extended_umask"]umask}}
+
 H4: {{CMD[id=3D"value_extended_name"]name}}
=20
=20
@@ -14737,7 +14763,7 @@
=20
 As is the case with E<lbracket>{{C[jump=3D"#perl"]perl}}] tag, user tags
 run under the Perl {{CMD[jump=3D"http://www.perl.com/pub/doc/manual/html/l=
ib/Safe.html"]Safe.pm}} module with warnings disabled. Unlike
-E<lbracket>{{C[jump=3D"#per"]per}}l] tags, however, user tags use Perl's '=
C<strict>' pragma.
+E<lbracket>{{C[jump=3D"#perl"]perl}}] tags, however, user tags use Perl's =
'C<strict>' pragma.
=20
=20
 The properties for UserTag are:
@@ -14903,8 +14929,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/bar-button]
 !endblock
=20
@@ -15012,8 +15038,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/convert_date]
 !endblock
=20
@@ -15109,8 +15135,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|I<No>
 !endblock
=20
@@ -15177,8 +15203,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|I<No>
 !endblock
=20
@@ -15247,8 +15273,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/email]
 !endblock
=20
@@ -15331,8 +15357,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/email_raw]
 !endblock
=20
@@ -15432,8 +15458,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|I<No>
 !endblock
=20
@@ -15505,8 +15531,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|I<No>
 !endblock
=20
@@ -15588,8 +15614,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|I<No>
 !endblock
=20
@@ -15670,8 +15696,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|I<No>
 !endblock
=20
@@ -15798,8 +15824,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/table-organize]
 !endblock
=20
@@ -16007,8 +16033,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/title-bar]
 !endblock
=20
@@ -16112,8 +16138,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/xml-generator]
 !endblock
=20
@@ -16436,8 +16462,8 @@
 !block table;headings=3D1
 A|B
 Other_Characteristics|
-Invalidates {{CMD[jump=3D"#static_cache"]cache}}|I<No>
-{{CMD[jump=3D"#macro_tags"]Macro}}|I<No>
+Invalidates cache|I<No>
+Macro|I<No>
 Has end tag|[/dummy]
 !endblock
=20
@@ -16594,8 +16620,7 @@
=20
 A2: Nonstandard parsing within the admin interface
=20
-Parsing of content via the specialized
-{{C[jump=3D"#UI_ut_regenerate"]regenerate}} usertag included
+Parsing of content via the specialized C<[regenerate]> usertag included
 with the administrative interface does not obey the above order. The
 MV_AUTOLOAD and '<!--[tagname]-->' escapes are skipped. There are
 some other more subtle differences as well; in the very unlikely event
@@ -16781,62 +16806,62 @@
=20
 !block table; colvaligns=3D"TT"; format=3D"19"
 Abbr|Long name
-DL|{{CMD[jump=3D"#mv_raw_dict_look"]mv_raw_dict_look}}
-MM|{{CMD[jump=3D"#mv_more_matches"]mv_more_matches}}
-ac|{{CMD[jump=3D"#mv_all_chars"]mv_all_chars}}
-ar|{{CMD[jump=3D"#mv_arg"]mv_arg}}
-bd|{{CMD[jump=3D"#mv_base_directory"]mv_base_directory}}
-bs|{{CMD[jump=3D"#mv_begin_string"]mv_begin_string}}
-ck|{{CMD[jump=3D"#mv_cache_key"]mv_cache_key}}
-co|{{CMD[jump=3D"#mv_coordinate"]mv_coordinate}}
-cs|{{CMD[jump=3D"#mv_case"]mv_case}}
-cv|{{CMD[jump=3D"#mv_verbatim_columns"]mv_verbatim_columns}}
-de|{{CMD[jump=3D"#mv_dict_end"]mv_dict_end}}
-df|{{CMD[jump=3D"#mv_dict_fold"]mv_dict_fold}}
-di|{{CMD[jump=3D"#mv_dict_limit"]mv_dict_limit}}
-dl|{{CMD[jump=3D"#mv_dict_look"]mv_dict_look}}
-do|{{CMD[jump=3D"#mv_dict_order"]mv_dict_order}}
-dr|{{CMD[jump=3D"#mv_record_delim"]mv_record_delim}}
-em|{{CMD[jump=3D"#mv_exact_match"]mv_exact_match}}
-er|{{CMD[jump=3D"#mv_spelling_errors"]mv_spelling_errors}}
-fi|{{CMD[jump=3D"#mv_search_file"]mv_search_file}}
-fm|{{CMD[jump=3D"#mv_first_match"]mv_first_match}}
-fn|{{CMD[jump=3D"#mv_field_names"]mv_field_names}}
-hs|{{CMD[jump=3D"#mv_head_skip"]mv_head_skip}}
-id|{{CMD[jump=3D"#mv_session_id"]mv_session_id}}
-il|{{CMD[jump=3D"#mv_index_delim"]mv_index_delim}}
-ix|{{CMD[jump=3D"#mv_index_delim"]mv_index_delim}}
-lb|{{CMD[jump=3D"#mv_search_label"]mv_search_label}}
-lo|{{CMD[jump=3D"#mv_list_only"]mv_list_only}}
-lr|{{CMD[jump=3D"#mv_line_return"]mv_line_return}}
-lr|{{CMD[jump=3D"#mv_search_line_return"]mv_search_line_return}}
-ml|{{CMD[jump=3D"#mv_matchlimit"]mv_matchlimit}}
-mm|{{CMD[jump=3D"#mv_max_matches"]mv_max_matches}}
-mp|{{CMD[jump=3D"#mv_profile"]mv_profile}}
-ms|{{CMD[jump=3D"#mv_min_string"]mv_min_string}}
-ne|{{CMD[jump=3D"#mv_negate"]mv_negate}}
-np|{{CMD[jump=3D"#mv_nextpage"]mv_nextpage}}
-nu|{{CMD[jump=3D"#mv_numeric"]mv_numeric}}
-op|{{CMD[jump=3D"#mv_column_op"]mv_column_op}}
-os|{{CMD[jump=3D"#mv_orsearch"]mv_orsearch}}
-pc|{{CMD[jump=3D"#mv_pc"]mv_pc}}
-ra|{{CMD[jump=3D"#mv_return_all"]mv_return_all}}
-rd|{{CMD[jump=3D"#mv_return_delim"]mv_return_delim}}
-rf|{{CMD[jump=3D"#mv_return_fields"]mv_return_fields}}
-rn|{{CMD[jump=3D"#mv_return_file_name"]mv_return_file_name}}
-rr|{{CMD[jump=3D"#mv_return_reference"]mv_return_reference}}
-rs|{{CMD[jump=3D"#mv_return_spec"]mv_return_spec}}
-se|{{CMD[jump=3D"#mv_searchspec"]mv_searchspec}}
-sf|{{CMD[jump=3D"#mv_search_field"]mv_search_field}}
-si|{{CMD[jump=3D"#mv_search_immediate"]mv_search_immediate}}
-sp|{{CMD[jump=3D"#mv_search_page"]mv_search_page}}
-sq|{{CMD[jump=3D"#mv_sql_query"]mv_sql_query}}
-st|{{CMD[jump=3D"#mv_searchtype"]mv_searchtype}}
-su|{{CMD[jump=3D"#mv_substring_match"]mv_substring_match}}
-tf|{{CMD[jump=3D"#mv_sort_field"]mv_sort_field}}
-to|{{CMD[jump=3D"#mv_sort_option"]mv_sort_option}}
-un|{{CMD[jump=3D"#mv_unique"]mv_unique}}
-va|{{CMD[jump=3D"#mv_value"]mv_value}}
+DL|mv_raw_dict_look
+MM|mv_more_matches
+ac|mv_all_chars
+ar|mv_arg
+bd|mv_base_directory
+bs|mv_begin_string
+ck|mv_cache_key
+co|mv_coordinate
+cs|mv_case
+cv|mv_verbatim_columns
+de|mv_dict_end
+df|mv_dict_fold
+di|mv_dict_limit
+dl|mv_dict_look
+do|mv_dict_order
+dr|mv_record_delim
+em|mv_exact_match
+er|mv_spelling_errors
+fi|mv_search_file
+fm|mv_first_match
+fn|mv_field_names
+hs|mv_head_skip
+id|mv_session_id
+il|mv_index_delim
+ix|mv_index_delim
+lb|mv_search_label
+lo|mv_list_only
+lr|mv_line_return
+lr|mv_search_line_return
+ml|mv_matchlimit
+mm|mv_max_matches
+mp|mv_profile
+ms|mv_min_string
+ne|mv_negate
+np|mv_nextpage
+nu|mv_numeric
+op|mv_column_op
+os|mv_orsearch
+pc|mv_pc
+ra|mv_return_all
+rd|mv_return_delim
+rf|mv_return_fields
+rn|mv_return_file_name
+rr|mv_return_reference
+rs|mv_return_spec
+se|mv_searchspec
+sf|mv_search_field
+si|mv_search_immediate
+sp|mv_search_page
+sq|mv_sql_query
+st|mv_searchtype
+su|mv_substring_match
+tf|mv_sort_field
+to|mv_sort_option
+un|mv_unique
+va|mv_value
 !endblock
=20
 Line: