[interchange-cvs] interchange - jon modified 10 files

interchange-core@interchange.redhat.com interchange-core@interchange.redhat.com
Wed Nov 21 17:18:00 2001


User:      jon
Date:      2001-11-21 22:17:02 GMT
Modified:  pod      Tag: STABLE_4_8-branch icadvanced.pod icconfig.pod
Modified:           icdatabase.pod icfoundation.pod ictags.pod
Modified:           ictemplates.pod icupgrade.pod
Added:     pod      Tag: STABLE_4_8-branch ic_ecommerce.pod
Added:              ic_howto_cvs.pod icfaq.pod
Log:
Synchronize POD docs with latest SDF source.

Adding Dan Browning's ic_howto_cvs doc, Ed LaFrance's ic_ecommerce,
and the long-lost IC FAQ.

Revision  Changes    Path
No                   revision



No                   revision



2.2.2.1   +5 -0      interchange/pod/icadvanced.pod


rev 2.2.2.1, prev_rev 2.2
Index: icadvanced.pod
===================================================================
RCS file: /var/cvs/interchange/pod/icadvanced.pod,v
retrieving revision 2.2
retrieving revision 2.2.2.1
diff -u -u -r2.2 -r2.2.2.1
--- icadvanced.pod	2001/08/06 23:25:36	2.2
+++ icadvanced.pod	2001/11/21 22:17:01	2.2.2.1
@@ -1358,3 +1358,8 @@
 
 =back
 
+ ________________________________________
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
+



2.2.2.1   +46 -5     interchange/pod/icconfig.pod


rev 2.2.2.1, prev_rev 2.2
Index: icconfig.pod
===================================================================
RCS file: /var/cvs/interchange/pod/icconfig.pod,v
retrieving revision 2.2
retrieving revision 2.2.2.1
diff -u -u -r2.2 -r2.2.2.1
--- icconfig.pod	2001/08/06 23:25:36	2.2
+++ icconfig.pod	2001/11/21 22:17:01	2.2.2.1
@@ -1691,6 +1691,24 @@
 
    NonTaxableField    wholesale
 
+=head2 NoSearch
+
+Here you can provide one or more filename fragments that will be
+matched against the file name used in any attempted search (the
+mv_search_file or 'fi' attribute). You may separate multiple match
+strings with whitespace, and may include shell-style wildcards.
+
+The default setting is 'userdb', which means that by default you
+cannot use Interchange-style searches on the userdb table. (Pure SQL
+searches still work with it, however.)
+
+For example, consider this setting:
+
+   NoSearch  userdb  .*  *.secret
+
+In this case any search file with 'userdb' in its name, or beginning
+with a dot, or ending in '.secret', will not be searchable.
+
 =head2 OfflineDir
 
 The location of the offline database files for use with the
@@ -2080,14 +2098,32 @@
 =head2 SalesTax
 
 If non-blank, enables automatic addition of sales tax based on the
-order form. The value is a comma-separated list of the field names (as
-placed in order.html) in priority order, which should be used to look
-up sales tax percentage in the salestax.asc database. This database
-is not supplied with Interchange. It is typically received from a
-third party by quarterly or monthly subscription.
+order form. The value is one of three types of values:
+
+=over 4
+
+=item multi
 
+The special value "multi" enables table-based lookup of taxing rates
+based on the value of user form values, by default country and
+state.
+
+=item [itl-tags]
+
+If the value has a left square bracket, it is interpolated for ITL
+tags and the result used as the amount of the salestax.
+
+=item var1, var2
+
+A comma-separated list of the field names (as placed in the checkout
+page, for example ord/checkout.html) in priority order. These are be
+used to look up sales tax percentage in the salestax.asc ASCII
+table. (This table is not supplied with Interchange.)
+
    SalesTax            zip state
 
+=back
+
 =head2 SalesTaxFunction
 
 A Perl subroutine that will return a hash reference with the sales tax
@@ -2598,4 +2634,9 @@
 Disables IP qualification of user sessions. B<This degrades catalog
 security.> Do not use unless using encryption or a real-time payment
 gateway.
+
+ ________________________________________
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
 



2.1.2.1   +110 -31   interchange/pod/icdatabase.pod


rev 2.1.2.1, prev_rev 2.1
Index: icdatabase.pod
===================================================================
RCS file: /var/cvs/interchange/pod/icdatabase.pod,v
retrieving revision 2.1
retrieving revision 2.1.2.1
diff -u -u -r2.1 -r2.1.2.1
--- icdatabase.pod	2001/07/18 15:11:03	2.1
+++ icdatabase.pod	2001/11/21 22:17:01	2.1.2.1
@@ -1519,6 +1519,7 @@
  ac  mv_all_chars
  bd  mv_base_directory
  bs  mv_begin_string
+ ck  mv_cache_key
  co  mv_coordinate
  cs  mv_case
  cv  mv_verbatim_columns
@@ -1538,8 +1539,12 @@
  hs  mv_head_skip
  ix  mv_index_delim
  lb  mv_search_label
+ lf  mv_like_field
  lo  mv_list_only
  lr  mv_search_line_return
+ ls  mv_like_spec
+ ma  mv_more_alpha
+ mc  mv_more_alpha_chars
  md  mv_more_decade
  ml  mv_matchlimit
  mm  mv_max_matches
@@ -1552,6 +1557,7 @@
  nu  mv_numeric
  op  mv_column_op
  os  mv_orsearch
+ pf  prefix
  ra  mv_return_all
  rd  mv_return_delim
  rf  mv_return_fields
@@ -1567,17 +1573,14 @@
  sf  mv_search_field
  sg  mv_search_group
  si  mv_search_immediate
+ sm  mv_start_match
  sp  mv_search_page
  sq  mv_sql_query
  sr  mv_search_relate
  st  mv_searchtype
  su  mv_substring_match
- tc  mv_sort_command
- td  mv_table_cell
  tf  mv_sort_field
- th  mv_table_header
  to  mv_sort_option
- tr  mv_table_row
  un  mv_unique
  va  mv_value
 
@@ -2113,11 +2116,41 @@
 
 =item mv_return_fields
 
-The fields that should be returned by the match, specified either by
-field name or by column number. Specify 0 as the first field to be
-returned if searching the products database, since that is the key for
-accessing database fields.
+The field(s) that should be returned by the match, specified either by
+field name or by column number, separated by commas. Do not list the
+same field more than once per search. Specify 0 as the first field to
+be returned if searching the products database, since that is the key
+for accessing database fields.
 
+=back
+
+As with SQL queries, you can use the '*' shortcut to return all
+fields. For example:
+
+    [loop search="fi=nation/ra=yes/rf=*"]
+
+when used with a hypothetical 'nation' table would be equivalent to:
+
+    [loop search="
+          fi=nation
+          ra=yes
+          rf=code,sorder,region,name,tax
+    "]
+
+as well as:
+
+    [loop search="fi=nation/ra=yes/rf=0,1,2,3,4"]
+
+and:
+
+    [query sql="select * from nation"][/query]
+
+However, you probably rarely need to use every single field in a row.
+For maximum maintainability and execution speed the best practice is
+to list by name only the fields you want returned.
+
+=over 4
+
 =item mv_return_spec
 
 Returns the string specified as the search (i.e., the value of
@@ -3553,24 +3586,26 @@
 database=table parameter with any call to userdb. The global
 parameters (default in parens):
 
-   database     Sets user database table (userdb)
-   show         Show the return value of certain functions
-                or the error message, if any (0)
-   force_lower  Force possibly upper-case database fields
-                to lower case session variable names (0)
-   billing      Set the billing fields (see Accounts)
-   shipping     Set the shipping fields (see Address Book)
-   preferences  Set the preferences fields (see Preferences)
-   bill_field   Set field name for accounts (accounts)
-   addr_field   Set field name for address book (address_book)
-   pref_field   Set field name for preferences (preferences)
-   cart_field   Set field name for cart storage (carts)
-   pass_field   Set field name for password (password)
-   time_field   Set field for storing last login time (time)
-   expire_field Set field for expiration date (expire_date)
-   acl          Set field for simple access control storage (acl)
-   file_acl     Set field for file access control storage (file_acl)
-   db_acl       Set field for database access control storage (db_acl)
+ database          Sets user database table (userdb)
+ show              Show the return value of certain functions
+                   or the error message, if any (0)
+ force_lower       Force possibly upper-case database fields
+                   to lower case session variable names (0)
+ billing           Set the billing fields (see Accounts)
+ shipping          Set the shipping fields (see Address Book)
+ preferences       Set the preferences fields (see Preferences)
+ bill_field        Set field name for accounts (accounts)
+ addr_field        Set field name for address book (address_book)
+ pref_field        Set field name for preferences (preferences)
+ cart_field        Set field name for cart storage (carts)
+ pass_field        Set field name for password (password)
+ time_field        Set field for storing last login time (time)
+ outboard          Set fields that live in another table
+ outboard_key_col  Set field providing key for outboard tables
+ expire_field      Set field for expiration date (expire_date)
+ acl               Set field for simple access control storage (acl)
+ file_acl          Set field for file access control storage (file_acl)
+ db_acl            Set field for database access control storage (db_acl)
 
 By default the system crypt() call will be used to compare the
 password. This is best for security, but the passwords in the user
@@ -3791,7 +3826,10 @@
 =item save
 
 Saves all non-special form values that have columns in the user
-database.
+database. If a field is defined as scratch, it retrieves the field
+from the Scratch storage area; otherwise from Values. If the field is
+one of the outboard fields, it will save it in the outboard table
+with the value of outboard_key_col as the key.
 
 =item set_cart
 
@@ -4071,6 +4109,42 @@
 Of course, a pre-existing database with the ACL values will work as
 well. It need not be in the UserDB setup.
 
+=head2 Using more than one table
+
+You can save/retrieve userdb information from more than one table with
+the outboard specifier. It is a key-value comma-separated series of
+field specifications. For instance, if the billing address is to be
+stored in a separate table named "billing", you would do:
+
+        UserDB  outboard  <<EOF
+            b_fname=billing::first_name,
+            b_lname=billing::last_name,
+            b_address1=billing::address1,
+            b_address2=billing::address2,
+                b_etc=billing::etc
+        EOF
+
+When the user logs in, Interchange will access the first_name field
+in table billing to get the value of b_fname. When the values
+are saved, it will be saved there as well. If you wish to make the
+fields read-only, just set UserDB default scratch "b_fname b_lname
+..." and the values will be retrieved/saved from there. To initialize
+the values for a form, you could do a function after the user logs in:
+
+ [calc]
+        my @s_fields = grep /\S/, split /[\s,\0]+/, $Config->{UserDB}{scratch};
+        for(@s_fields) {
+                $Values->{$_} = $Scratch->{$_};
+        }
+        return;
+ [/calc]
+
+If the fields in the outboard table use another key besides
+username, you can specify the column in the userdb that contains
+the key value:
+
+        UserDB  default  outboard_key_col   account_id
+
 =head1 Tracking and Back-End Order Entry
 
 Interchange allows the entry of orders into a system through one of
@@ -4542,11 +4616,11 @@
 
 B<IMPORTANT NOTE: >Interchange attempts to perform operations
 securely, but no guarantees or warranties of any kind are made! Since
-Interchange comes with Perl source, it is possible to modify the
+Interchange comes with source code, it is fairly easy to modify the
 program to create security problems. One way to minimize this
-possibility is to record digital signatures, using MD5 or PGP, of
-interchange, interchange.cfg, and all modules included in
-Interchange. Check them on a regular basis to ensure they have not
+possibility is to record digital signatures, using MD5 or PGP or
+GnuPG, of interchange, interchange.cfg, and all modules included
+in Interchange. Check them on a regular basis to ensure they have not
 been changed.
 
 Interchange uses the SecureURL directive to set the base URL for
@@ -4749,4 +4823,9 @@
 the database residing on the UNIX side.
 
 =back
+
+ ________________________________________
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
 



2.1.2.1   +5 -0      interchange/pod/icfoundation.pod


rev 2.1.2.1, prev_rev 2.1
Index: icfoundation.pod
===================================================================
RCS file: /var/cvs/interchange/pod/icfoundation.pod,v
retrieving revision 2.1
retrieving revision 2.1.2.1
diff -u -u -r2.1 -r2.1.2.1
--- icfoundation.pod	2001/07/18 15:11:03	2.1
+++ icfoundation.pod	2001/11/21 22:17:01	2.1.2.1
@@ -3945,3 +3945,8 @@
 to use them, instead of removing them from the database altogether.
 That way nothing in admin or demo will break.
 
+ ________________________________________
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
+



2.1.2.1   +2547 -1484interchange/pod/ictags.pod


rev 2.1.2.1, prev_rev 2.1
Index: ictags.pod
===================================================================
RCS file: /var/cvs/interchange/pod/ictags.pod,v
retrieving revision 2.1
retrieving revision 2.1.2.1
diff -u -u -r2.1 -r2.1.2.1
--- ictags.pod	2001/07/18 15:11:03	2.1
+++ ictags.pod	2001/11/21 22:17:01	2.1.2.1
@@ -6,8 +6,8 @@
 
 =head1 Interchange Tag Reference
 
-Interchange functions are accessed via ITL, the Interchange Tag
-Language. The pages in a catalog may be mostly HTML, but they will use
+Interchange functions are accessed via the Interchange Tag Language
+(ITL). The pages in a catalog may be mostly HTML, but they will use
 ITL tags to provide access to Interchange's functions. ITL is a
 superset of MML, or Minivend Markup Language. Minivend was the
 predecessor to Interchange.
@@ -19,7 +19,7 @@
 
 This document covers Interchange versions 4.7-4.8.
 
-=head2 Tag Syntax
+=head1 Tag Syntax
 
 ITL tags are similar to HTML in syntax, in that they accept parameters
 or attributes and that there are both I<standalone> and I<container>
@@ -41,10 +41,8 @@
     You have a name. It is [value name].
     [/if]
 
-We will usually call the ITL tags B<Interchange tags> or just B<tags>.
+=head2 Standard Syntax
 
-Standard Syntax
-
 The most common syntax is to enclose the tag with its parameters and
 attributes in [square brackets]. If the tag has an end tag, the tag
 and its end tag will delimit contained body text:
@@ -66,7 +64,7 @@
 interchangeable, except that an ending tag must match the tag (i.e.,
 don't use [item-list] list [/item_list]).
 
-HTML-Comment
+=head2 HTML-Comment
 
 ITL also allows you to use '<!--[' and ']-->' as interchangeable
 alternatives to plain square brackets: [tagname] and
@@ -102,7 +100,7 @@
 See the I<Template Parsing Order> appendix if you are modifying the
 special administrative interface pages and intend to use this syntax.
 
-HTML-Embedded
+=head2 HTML-Embedded
 
 As an alternative syntax, you can usually embed an Interchange tag as
 an attribute within an HTML tag. This allows some HTML editors to work
@@ -162,7 +160,7 @@
 
 
 
-I<Named vs. Positional Parameters>
+=head2 I<Named vs. Positional Parameters>
 
 There are two styles of supplying parameters to a tag: named and
 positional.
@@ -226,7 +224,7 @@
 Note that the argument to B<href> ('scan') did not need to be quoted;
 only the argument to B<arg>, which contained a tag, needed the quotes.
 
-I<Universal Attributes>
+=head2 I<Universal Attributes>
 
 Universal attributes apply to all tags, though each tag specifies its
 own default for the attribute. The code implementing universal
@@ -344,13 +342,13 @@
 
 Deprecated
 
-Tag-specific Attributes
+=head2 Tag-specific Attributes
 
 Each tag may accept additional named attributes which vary from tag to
 tag. Please see the entry for the tag in question for details about
 tag-specific attributes.
 
-I<Attribute Arrays and Hashes>
+=head2 I<Attribute Arrays and Hashes>
 
 Some tags allow you to pass an array or hash as the value of an
 attribute. For an ordinary tag, the syntax is as follows:
@@ -405,7 +403,7 @@
 
     $Tag->routine( { entry => $hashref } );
 
-=head2 Looping tags and Sub-tags
+=head1 Looping tags and Sub-tags
 
 I<>Certain tags are not standalone; these are the ones that are
 interpreted as part of a surrounding looping tag like [loop],
@@ -444,8 +442,7 @@
 
 [PREFIX-last]
 
-[PREFIX-line] (tab-delimited list of parameters returned, can do
-tail-slice)
+[PREFIX-line] (tab-delimited list of parameters returned)
 
 [PREFIX-match]
 
@@ -453,9 +450,11 @@
 
 [PREFIX-next]
 
+[PREFIX-options]
+
 [PREFIX-param]
 
-[PREFIX-options]
+[PREFIX-pos]
 
 [PREFIX-price]
 
@@ -469,10 +468,10 @@
 
 [if-PREFIX-field]
 
-[if-PREFIX-param]
-
 [if-PREFIX-modifier] (hash list only)
 
+[if-PREFIX-param]
+
 [if-PREFIX-pos]
 
 [modifier-name]
@@ -491,9 +490,11 @@
  [search-list]         item                    [item-code], [item-field price], [item-increment]
  [query]               sql                     [sql-code], [sql-field price], [sql-increment]
 
-Sub-tag behavior is consistent among the looping tags.
+Sub-tag behavior is consistent among the looping tags. Subtags are
+parsed during evaluation of the enclosing loop, I<before> any regular
+tags within the loop.
 
-There are two types of looping lists; ARRAY and HASH.
+There are two types of looping lists: ARRAY and HASH.
 
 An array list is the normal output of a [query], a search, or a
 [loop] tag. It returns from 1 to N return fields, defined in the
@@ -555,13 +556,8 @@
         { foo => 'fooN', bar => 'barN' },
     ]
 
-Parse Order
+=head2 [I<PREFIX-accessories> arglist]
 
-Subtags are parsed during evaluation of the enclosing loop, I<before>
-any regular tags within the loop
-
-[I<PREFIX-accessories> arglist]
-
 Except for the usual differences that apply to all subtags (such as
 parsing order), these are more or less equivalent for an array-type
 S<list:>
@@ -577,8 +573,7 @@
 current item hash is passed so that a value default can be
 established.
 
-[I<PREFIX-alternate> N] DIVISIBLE [else] NOT DIVISIBLE
-[/else][/PREFIX-alternate]
+=head2 [I<PREFIX-alternate> N] DIVISIBLE [else] NOT DIVISIBLE [/else][/PREFIX-alternate]
 
 Set up an alternation sequence. If the item-increment is divisible by
 `N', the text will be displayed. If an `[else]NOT DIVISIBLE
@@ -590,12 +585,13 @@
     [item-alternate 2]EVEN[else]ODD[/else][/item-alternate]
     [item-alternate 3]BY 3[else]NOT by 3[/else][/item-alternate]
 
-[I<PREFIX-calc>] 2 + [item-field price] [/PREFIX-calc]
+=head2 [I<PREFIX-calc>] 2 + [item-field price] [/PREFIX-calc]
 
-Calls perl via the equivalent of the [calc] [/calc] tag pair. Much
-faster to execute.
+Executes Perl code in the tag body. This is equivalent to the [calc]
+[/calc] tag pair, except it's calculated at loop time instead of later
+when the rest of the page is parsed.
 
-[I<PREFIX-change>][condition] ... [/condition] TEXT [/PREFIX-change]
+=head2 [I<PREFIX-change>][condition] ... [/condition] TEXT [/PREFIX-change]
 
 Sets up a breaking sequence that occurs when the contents of
 [condition] [/condition] change. The most common one is a category
@@ -654,21 +650,21 @@
 subcategory once, while showing the name for every product. (The
 &nbsp; will prevent blanked table cells if you use a border.)
 
-[I<PREFIX-code>]
+=head2 [I<PREFIX-code>]
 
 The key or code of the current loop. In an [item-list] this is always
 the product code; in a loop list it is the value of the current
 argument; in a search it is whatever you have defined as the first
 mv_return_field (rf).
 
-[I<PREFIX-data> table field]
+=head2 [I<PREFIX-data> table field]
 
 Calls the column field in database table table for the current
 [PREFIX-code]. This may or may not be equivalent to [PREFIX-field
 field] depending on whether your search table is defined as one of
 the ProductFiles.
 
-[I<PREFIX-description>]
+=head2 [I<PREFIX-description>]
 
 The description of the current item, as defined in the catalog.cfg
 directive DescriptionField. In the demo, it would be the value of
@@ -678,18 +674,18 @@
 fails, then the attribute description will be substituted. This is
 useful to supply shopping cart descriptions for on-the-fly items.
 
-[I<PREFIX-discount>]
+=head2 [I<PREFIX-discount>]
 
 The price of the current item is calculated, and the difference
 between that price and the list price (quantity one) price is output.
 This may have different behavior than you expect if you set the
 [discount] [/discount] tag along with quantity pricing.
 
-[I<PREFIX-discount_subtotal>]
+=head2 [I<PREFIX-discount_subtotal>]
 
 Inserts the discounted subtotal of the ordered items.
 
-[I<PREFIX-field>]
+=head2 [I<PREFIX-field>]
 
 Looks up a field value for the current item in one of several places,
 in this order:
@@ -714,9 +710,10 @@
 foo_field. Unless foo is in 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 [loop-data foo foo_field],
-which specifically addresses the table foo.
+which specifically addresses the table foo. See also
+[PREFIX-param]> and [PREFIX-pos]>.
 
-[I<PREFIX-increment>]
+=head2 [I<PREFIX-increment>]
 
 The current count on the list, starting from either 1 in a
 zero-anchored list like [loop] or [item-list], or from the match
@@ -725,33 +722,50 @@
 If you skip items with [PREFIX-last] or [PREFIX-next], the count is
 NOT adjusted.
 
-[I<PREFIX-last>] CONDITION [/PREFIX-last]
+=head2 [I<PREFIX-last>] CONDITION [/PREFIX-last]
 
 If CONDITION evaluates true (a non-whitespace value that is not
 specifically zero) then this will be the last item displayed.
+
+=head2 [I<PREFIX-line> start_column]
+
+Returns all array values from the current looping row in a single
+string, with each value separated by a tab, roughly equivalent to
+this:
+
+ [PREFIX-pos 0](tab)[PREFIX-pos 1](tab)[PREFIX-pos 2](tab)[...]
+
+for however many fields were returned in that row.
+
+This is useful as a quick way to see all your results at a glance and
+verify your search specification.
 
-[I<PREFIX-modifier> attribute]
+If the optional start_column attribute is given, the output starts
+with that column instead of column 0.
 
+=head2 [I<PREFIX-modifier> attribute]
+
 If the item is a hash list (i.e. [item-list]), this will return the
 value of the attribute.
 
-[I<PREFIX-next>] CONDITION [/PREFIX-next]
+=head2 [I<PREFIX-next>] CONDITION [/PREFIX-next]
 
 If CONDITION evaluates true (a non-whitespace value that is not
 specifically zero) then this item is skipped.
-
-[I<PREFIX-param> name]
 
-[I<PREFIX-pos> N]
+=head2 [I<PREFIX-param> name]
 
-Returns the array parameter associated with the looping tag row. Each
-looping list returns an array of return fields, set in searches
-with mv_return_field or rf. The default is only to return the
-code of the search result, but by setting those parameters you can
-return more than one item.
+=head2 [I<PREFIX-pos> N]
 
-[PREFIX-pos N] outputs the I<N>th field as returned; [PREFIX-param]
-returns it by name.
+Returns the value of the array parameter associated with the looping
+tag row. Each looping list returns an array of return fields, set
+in searches with mv_return_field or rf. The default is only to
+return the code of the search result, but by setting those parameters
+you can return whichever columns you wish.
+
+[PREFIX-pos N] outputs the data from the I<N>th field as returned
+(starting with 0); [PREFIX-param] lets you access the data by field
+name instead of number.
 
 In a [query ...] ITL tag you can select multiple return fields with
 something like:
@@ -765,27 +779,27 @@
 row. Another synonym is [prefix-pos 0]; and [prefix-pos 1] is the same
 as [prefix-param bar].
 
-[I<PREFIX-price>]
+=head2 [I<PREFIX-price>]
 
-The price of the current code, formatted for currency. If
-Interchange's pricing routines cannot determine the price (i.e. it is
-not a valid product or on-the-fly item) then zero is returned. If the
-list is a hash list, the price will be modified by its quantity or
-other applicable attributes (like size in the demo).
+The price of the product identified by the current code, formatted for
+currency. If Interchange's pricing routines cannot determine the price
+(i.e. it is not a valid product or on-the-fly item) then zero is
+returned. If the list is a hash list, the price will be modified by
+its quantity or other applicable attributes (like size in the
+demo).
 
-[I<PREFIX-quantity>]
+=head2 [I<PREFIX-quantity>]
 
 The value of the quantity attribute in a hash list. Most commonly
 used to display the quantity of an item in a shopping cart
 [item-list].
 
-[I<PREFIX-subtotal>]
+=head2 [I<PREFIX-subtotal>]
 
 The [PREFIX-quantity] times the [PREFIX-price]. This does take
 discounts into effect.
 
-[I<if-PREFIX-data> table field] IF text [else] ELSE text [/else]
-[/if-PREFIX-data]
+=head2 [I<if-PREFIX-data> table field] IF text [else] ELSE text [/else] [/if-PREFIX-data]
 
 Examines the data field, i.e. [PREFIX-data table field], and if it is
 non-blank and non-zero then the IF text will be returned. If it is
@@ -800,13 +814,12 @@
 
 Careful, a space is not a false value!
 
-[I<if-PREFIX-field> field] IF text [else] ELSE text [/else]
-[/if-PREFIX-field]
+=head2 [I<if-PREFIX-field> field] IF text [else] ELSE text [/else] [/if-PREFIX-field]
 
 Same as [if-PREFIX-data ...] except uses the same data rules as
 [PREFIX-field].
 
-[I<modifier-name> attribute]
+=head2 [I<modifier-name> attribute]
 
 Outputs a variable name which will set an appropriate variable name
 for setting the attribute in a form (usually a shopping cart). Outputs
@@ -818,7 +831,7 @@
 
 etc.
 
-[I<quantity-name>]
+=head2 [I<quantity-name>]
 
 Outputs for successive items in the list:
 
@@ -1611,7 +1624,44 @@
             base ==> type
             comp ==> compare
             operator ==> op
+    [and type term op compare]
+
+ Parameters   Description                               Default
+ base         Alias for type                            DEFAULT_VALUE
+ comp         Alias for compare                         DEFAULT_VALUE
+ compare                                                DEFAULT_VALUE
+ op                                                     DEFAULT_VALUE
+ operator     Alias for op                              DEFAULT_VALUE
+ term                                                   DEFAULT_VALUE
+ type                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [and type term op compare]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->and(  { compare => VALUE_compare
+                  op => VALUE_op
+                  term => VALUE_term
+                  type => VALUE_type
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->and(type,term,op,compare, $attribute_hash_reference, $body);
+
 Description
 
 The [and ...] tag is only used in conjunction with [if ...]. Example:
@@ -1626,6 +1676,14 @@
 
 See [if ...].
 
+I<compare>
+
+I<op>
+
+I<term>
+
+I<type>
+
 =head2 area
 
 Alias:  B<href>
@@ -1791,14 +1849,8 @@
 Allows you to assign numeric values to preempt calculation of one or
 more of the following S<tags:>
 
-=over 4
-
-=item *
-
 [handling], [salestax], [shipping], and [subtotal]
 
-=back
-
 The assignment is persistent within a user's session until you clear
 it, an assigned tag will return your value instead of calculating a
 value.
@@ -1836,14 +1888,8 @@
 The assign tag allows you to assign numeric override values to one
 or more of the following S<tags:>
 
-=over 4
-
-=item *
-
 [handling], [salestax], [shipping], and [subtotal]
 
-=back
-
 An assigned tag will return your value rather than calculating its own
 until you clear the assignment.
 
@@ -1948,7 +1994,36 @@
  OR
 
     $Tag->attr_list($hash, $BODY);
+    [attr_list hash]
+
+ Parameters   Description                               Default
+ hash                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [attr_list hash]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->attr_list(  { hash => VALUE_hash
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->attr_list(hash, $attribute_hash_reference, $body);
+
 Description
 
 Tags an attribute list with values from a hash. Designed for use in
@@ -2000,6 +2075,8 @@
 Displays false text if the value of {key} is blank or zero, and
 nothing otherwise.
 
+I<hash>
+
 =head2 banner
 
 Implements random or rotating banner ads. See also I<Banner/Ad
@@ -2168,6 +2245,37 @@
 None. This tag doesn't work with embedded Perl due to special
 processing.
 
+    [bounce href if]
+
+ Parameters   Description                               Default
+ href                                                   DEFAULT_VALUE
+ if                                                     DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [bounce href if]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->bounce(  { href => VALUE_href
+                     if => VALUE_if
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->bounce(href,if, $attribute_hash_reference, $body);
+
 Description
 
 The [bounce ...] tag is designed to send an HTTP redirect (302 status
@@ -2204,6 +2312,10 @@
         [bounce href="/"]
         [/if]
 
+I<href>
+
+I<if>
+
 =head2 calc
 
 Calculates the value of the enclosed arithmetic expression.
@@ -2281,12 +2393,42 @@
  OR
 
     $Tag->cart($name);
+    [cart name]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [cart name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->cart(  { name => VALUE_name
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->cart(name, $attribute_hash_reference, $body);
+
 Description
 
 Sets the name of the current shopping cart for display of shipping,
 price, total, subtotal, shipping, and nitems tags.
 
+I<name>
+
 =head2 catch
 
 The page content contained within the [catch I<label>][/catch]
@@ -2369,6 +2511,32 @@
 
 I<try>
 
+    [catch ]
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 No
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [catch ]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->catch(  {
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->catch(, $attribute_hash_reference, $body);
+
 Description
 
 The page content contained within the [catch I<label>][/catch]
@@ -2425,7 +2593,35 @@
  OR
 
     $Tag->cgi($name);
+    [cgi name]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [cgi name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->cgi(  { name => VALUE_name
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->cgi(name, $attribute_hash_reference, $body);
+
 Description
 
 Displays the value of a CGI variable B<submitted to the current page>.
@@ -2440,6 +2636,8 @@
 
 This is the same as $CGI->{foo} in embedded Perl.
 
+I<name>
+
 =head2 checked
 
 Summary
@@ -2470,7 +2668,38 @@
  OR
 
     $Tag->checked($name, $value, $ATTRHASH);
+    [checked name valueother_named_attributes]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+ value                                                  DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [checked name value]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
 
+   $Tag->checked(  { name => VALUE_name
+                      value => VALUE_value
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->checked(name,value, $attribute_hash_reference, $body);
+
 Description
 
 You can provide a "memory" for drop-down menus, radio buttons, and
@@ -2499,6 +2728,10 @@
 want to use the volatile CGI space (i.e. [cgi foo]) use the option
 cgi=1.
 
+I<name>
+
+I<value>
+
 =head2 control
 
 Returns named scratchpad field or copies named scratch variable to
@@ -2509,121 +2742,96 @@
 
 Summary
 
-Parameters: B<name default>
-
-=over 4
-
-=item *
-
-name
-
-=over 8
+    [control name defaultother_named_attributes]
 
-=item *
+ Parameters   Description                               Default
+ default      Value to return if scratchpad variable missing or emptyDEFAULT_VALUE
+ name         Name of scratchpad variable to set or returnDEFAULT_VALUE
+ reset        Resets scratchpad (i.e. $::Control array) by setting special scratch variable 'control_index' to 0. Control_index is an index into the $::Control == $Vend::Session->{control} array of hashrefs.(must not specify name; may specify default)DEFAULT_VALUE
+ set          Copies named scratch variable (i.e., from $::Scratch) to scratchpad with current control index.DEFAULT_VALUE
 
-Name of scratchpad variable to set or return
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
 
-=back
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-=item *
+B<Tag expansion example:>
 
-default
+   [control name default]
+---
+   TAGRESULT
 
-=over 8
+B<ASP-like Perl call:>
 
-=item *
+   $Tag->control(  { default => VALUE_default
+                      name => VALUE_name
+}, $body  );
 
-Value to return if scratchpad variable missing or empty
+or similarly with positional parameters,
 
-=back
+    $Tag->control(name,default, $attribute_hash_reference, $body);
 
-=back
+Description
 
-Attributes
+Returns named scratchpad field or copies named scratch variable to
+scratchpad. Returns value specified by 'default' attribute if
+scratchpad variable is undefined or empty. Calling without a name
+moves to next scratchpad. Calling without a name and 'reset=1' returns
+to first scratchpad page.
 
-=over 4
+I<default>
 
-=item *
+Value to return if scratchpad variable missing or empty
 
-reset (must not specify name; may specify default)
+I<name>
 
-=over 8
+Name of scratchpad variable to set or return
 
-=item *
+I<reset>
 
 Resets scratchpad (i.e. $::Control array) by setting special scratch
 variable 'control_index' to 0. Control_index is an index into the
 $::Control == $Vend::Session->{control} array of hashrefs.
 
-=back
+=over 4
 
 =item *
 
-set
+(must not specify name; may specify default)
 
-=over 8
+=back
 
-=item *
+I<set>
 
 Copies named scratch variable (i.e., from $::Scratch) to scratchpad
 with current control index.
 
-=back
+=head2 control_set
 
-=back
+Bulk-sets scratchpad variables on the scratchpad page specified by
+'index'. Note that, unlike [control], this does not copy values from
+scratch.
 
-B<The attribute hash reference is passed> to the subroutine after the
-parameters as the last argument. B<This may mean that there are
-parameters not shown here.>
+Summary
 
-Must pass named parameter interpolate=1 to cause interpolation.
+This example sets var_one, var_two and var_three in the scratchpad on
+page 5 (index begins with 0).
 
-Invalidates cache: B<no>
+  [control_set index=4]
+    [var_one]var_one_value[/var_one]
+    [var_two]var_two_value[/var_two]
+    [var_three]var_three_value[/var_three]
+  [/control_set]
 
-Called Routine:
+Parameters: B<index>
 
-B<ASP-like Perl call:>
+Positional parameters in same order.
 
-    $Tag->control(
-        {
-         name => VALUE,
-         default => VALUE,
-        }
-    )
-
- OR
-
-    $Tag->control($name, $default, $ATTRHASH);
-
-Description
-
-Returns named scratchpad field or copies named scratch variable to
-scratchpad. Returns value specified by 'default' attribute if
-scratchpad variable is undefined or empty. Calling without a name
-moves to next scratchpad. Calling without a name and 'reset=1' returns
-to first scratchpad page.
-
-=head2 control_set
-
-Bulk-sets scratchpad variables on the scratchpad page specified by
-'index'. Note that, unlike [control], this does not copy values from
-scratch.
-
-Summary
-
-This example sets var_one, var_two and var_three in the scratchpad on
-page 5 (index begins with 0).
-
-  [control_set index=4]
-    [var_one]var_one_value[/var_one]
-    [var_two]var_two_value[/var_two]
-    [var_three]var_three_value[/var_three]
-  [/control_set]
-
-Parameters: B<index>
-
-Positional parameters in same order.
-
 B<The attribute hash reference is passed> after the parameters but
 before the container text argument. B<This may mean that there are
 parameters not shown here.>
@@ -2649,13 +2857,45 @@
  OR
 
     $Tag->control_set($index, $ATTRHASH, $BODY);
+    [control_set indexother_named_attributes]
+
+ Parameters   Description                               Default
+ index                                                  DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
+B<Tag expansion example:>
+
+   [control_set index]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->control_set(  { index => VALUE_index
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->control_set(index, $attribute_hash_reference, $body);
+
 Description
 
 Bulk-sets scratchpad variables on the scratchpad page specified by
 'index'. Note that, unlike [control], this does not copy values from
 scratch.
 
+I<index>
+
 =head2 counter
 
 Summary
@@ -2683,7 +2923,36 @@
 Attribute aliases
 
             name ==> file
+    [counter file]
+
+ Parameters   Description                               Default
+ file                                                   DEFAULT_VALUE
+ name         Alias for file                            DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [counter file]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->counter(  { file => VALUE_file
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->counter(file, $attribute_hash_reference, $body);
+
 Description
 
 Manipulates a persistent counter, by default incrementing it and
@@ -2716,6 +2985,8 @@
 Shows the value of the counter without incrementing or decrementing
 it.
 
+I<file>
+
 =head2 currency
 
 Summary
@@ -2747,7 +3018,38 @@
  OR
 
     $Tag->currency($convert, $noformat, $BODY);
+    [currency convert noformat]
+
+ Parameters   Description                               Default
+ convert                                                DEFAULT_VALUE
+ noformat                                               DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [currency convert noformat]
+---
+   TAGRESULT
 
+B<ASP-like Perl call:>
+
+   $Tag->currency(  { convert => VALUE_convert
+                       noformat => VALUE_noformat
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->currency(convert,noformat, $attribute_hash_reference, $body);
+
 Description
 
 When passed a value of a single number, formats it according to the
@@ -2769,6 +3071,10 @@
 
 will cause the number 8.982,04 to be displayed.
 
+I<convert>
+
+I<noformat>
+
 =head2 data
 
 Summary
@@ -2810,30 +3116,70 @@
             database ==> table
             name ==> field
             row ==> key
+    [data table field keyother_named_attributes]
+
+ Parameters   Description                               Default
+ base         Alias for table                           DEFAULT_VALUE
+ code         Alias for key                             DEFAULT_VALUE
+ col          Alias for field                           DEFAULT_VALUE
+ column       Alias for field                           DEFAULT_VALUE
+ database     Alias for table                           DEFAULT_VALUE
+ field                                                  DEFAULT_VALUE
+ hash                                                   DEFAULT_VALUE
+ key                                                    DEFAULT_VALUE
+ name         Alias for field                           DEFAULT_VALUE
+ row          Alias for key                             DEFAULT_VALUE
+ table                                                  DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [data table field key]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->data(  { field => VALUE_field
+                   key => VALUE_key
+                   table => VALUE_table
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->data(table,field,key, $attribute_hash_reference, $body);
+
 Description
 
 Syntax:             [data table=db_table column=column_name key=key
 filter="uc|lc|name|namecase|no_white|etc."* append=1* value="value to
 set to"* increment=1*                         ]
 
-Returns the value of the field in a database table, or (DEPRECATED)
-from the session namespace. If the optional B<value> is supplied,
-the entry will be changed to that value. If the option increment* is
-present, the field will be atomically incremented with the value in
-B<value>. Use negative numbers in value to decrement. The append
-attribute causes the value to be appended; and finally, the filter
-attribute is a set of Interchange filters that are applied to the data
-1) after it is read; or 2)before it is placed in the table.
+Returns the value of the field in a database table, or from the
+session namespace. If the optional B<value> is supplied, the entry
+will be changed to that value. If the option increment* is present,
+the field will be atomically incremented with the value in B<value>.
+Use negative numbers in value to decrement. The append attribute
+causes the value to be appended; and finally, the filter attribute
+is a set of Interchange filters that are applied to the data 1) after
+it is read; or 2)before it is placed in the table.
 
 If a DBM-based database is to be modified, it must be flagged writable
 on the page calling the write tag. Use [tag flag write]products[/tag]
 to mark the products database writable, for example. B<This must be
 done before ANY access to that table.>
 
-Deprecated Behavior: (replace with session tag). In addition, the
-[data ...] tag can access a number of elements in the Interchange
-session database:
+In addition, the [data ...] tag can access a number of elements in
+the Interchange session database:
 
     accesses           Accesses within the last 30 seconds
     arg                The argument passed in a [page ...] or [area ...] tag
@@ -2853,11 +3199,44 @@
     user               The REMOTE_USER string
     username           User name logged in as (UserDB feature)
 
-NOTE: Databases will hide session values, so don't name a database
+Note: Databases will hide session values, so don't name a database
 "session". or you won't be able to use the [data ...] tag to read
 them. Case is sensitive, so in a pinch you could call the database
 "Session", but it would be better not to use that name at all.
 
+I<field>
+
+The name of the field whose value you want to fetch. Required unless
+returning the entire row in combination with the hash option.
+
+I<hash>
+
+The hash option causes the data tag to return its results (the entire
+row, if you omit the field parameter) as a reference to a hash with
+column names as keys into the values of the row.
+
+An example:
+
+        $row_hash = $Tag->data({
+                table => 'products',
+                key   => 'os28004',
+                hash  => 1,
+        });
+
+You could then access desired values this way:
+
+        $out = 'Price: ' . $row_hash->{price};
+
+I<key>
+
+The key that identifies the row containing the value(s) you want to
+fetch. Required.
+
+I<table>
+
+The name of the Interchange-defined table you want to fetch data from.
+Required.
+
 =head2 default
 
 Summary
@@ -2888,7 +3267,38 @@
  OR
 
     $Tag->default($name, $default, $ATTRHASH);
+    [default name defaultother_named_attributes]
+
+ Parameters   Description                               Default
+ default                                                DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [default name default]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->default(  { default => VALUE_default
+                      name => VALUE_name
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->default(name,default, $attribute_hash_reference, $body);
+
 Description
 
 Returns the value of the user form variable variable if it is
@@ -2896,6 +3306,10 @@
 if there is no default supplied. Got that? This tag is DEPRECATED
 anyway.
 
+I<default>
+
+I<name>
+
 =head2 description
 
 Summary
@@ -2924,6 +3338,36 @@
  OR
 
     $Tag->description($code, $base);
+    [description code base]
+
+ Parameters   Description                               Default
+ base                                                   DEFAULT_VALUE
+ code                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [description code base]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->description(  { base => VALUE_base
+                          code => VALUE_code
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->description(code,base, $attribute_hash_reference, $body);
 
 Description
 
@@ -2939,6 +3383,10 @@
 a different database field; for example desc_en for English,
 desc_fr for French, etc.
 
+I<base>
+
+I<code>
+
 =head2 discount
 
 Summary
@@ -2969,7 +3417,36 @@
  OR
 
     $Tag->discount($code, $BODY);
+    [discount code]
+
+ Parameters   Description                               Default
+ code                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
+B<Tag expansion example:>
+
+   [discount code]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->discount(  { code => VALUE_code
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->discount(code, $attribute_hash_reference, $body);
+
 Description
 
 Product discounts can be set upon display of any page. The discounts
@@ -3041,6 +3518,8 @@
                                             [/calc][/currency]
     [/item-list]
 
+I<code>
+
 =head2 dump
 
 Dumps client connection information, cart contents, query value,
@@ -3069,70 +3548,76 @@
  OR
 
     $Tag->dump($);
-
-Description
-
-Dumps client connection information, cart contents, query value,
-contents of environment, session, and CGI with Data::Dumper to the
-page. This is useful for debugging.
+    [dump ]
 
-=head2 ecml
+ Attributes                        Default
+ interpolate (reparse)             No
 
-Uses ECML (Electronic Commerce Markup Language) module to map
-Interchange forms/userdb to ECML checkout
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-Summary
+B<Tag expansion example:>
 
-Parameters: B<name function>
+   [dump ]
+---
+   TAGRESULT
 
-=over 4
+B<ASP-like Perl call:>
 
-=item *
+   $Tag->dump(  {
+}, $body  );
 
-function (default = 'widget')
+or similarly with positional parameters,
 
-Place form boxes on page:
+    $Tag->dump(, $attribute_hash_reference, $body);
 
-=back
+Description
 
-         [ecml name]
-         [ecml address]
+Dumps client connection information, cart contents, query value,
+contents of environment, session, and CGI with Data::Dumper to the
+page. This is useful for debugging.
 
-Magic database entry from country database:
+=head2 ecml
 
-        [ecml country]
+Uses ECML (Electronic Commerce Markup Language) module to map
+Interchange forms/userdb to ECML checkout
 
-Map values back to Interchange variables for saving in UserDB:
+Summary
 
-        <INPUT TYPE=hidden NAME=mv_click CHECKED VALUE="ECML_map">
-        [set ECML_map]
-        [ecml function=mapback]
-        [/set]
+    [ecml name functionother_named_attributes]
 
-Positional parameters in same order.
+ Parameters   Description                               Default
+ function     ecml function (default = 'widget')        DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
 
-B<The attribute hash reference is passed> to the subroutine after the
-parameters as the last argument. B<This may mean that there are
-parameters not shown here.>
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
 
-Must pass named parameter interpolate=1 to cause interpolation.
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-Invalidates cache: B<no>
+B<Tag expansion example:>
 
-Called Routine:
+   [ecml name function]
+---
+   TAGRESULT
 
 B<ASP-like Perl call:>
 
-    $Tag->ecml(
-        {
-         name => VALUE,
-         function => VALUE,
-        }
-    )
+   $Tag->ecml(  { function => VALUE_function
+                   name => VALUE_name
+}, $body  );
 
- OR
+or similarly with positional parameters,
 
-    $Tag->ecml($name, $function, $ATTRHASH);
+    $Tag->ecml(name,function, $attribute_hash_reference, $body);
 
 Description
 
@@ -3209,6 +3694,12 @@
 and map the results back. If you have fname and lname, then it
 will not.
 
+I<function>
+
+ecml function (default = 'widget')
+
+I<name>
+
 =head2 either
 
 The [either]this[or]that[/either] implements a check for the first
@@ -3250,7 +3741,33 @@
  OR
 
     $Tag->either($BODY);
+    [either ]
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [either ]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->either(  {
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->either(, $attribute_hash_reference, $body);
+
 Description
 
 B<NO Description>
@@ -3284,7 +3801,36 @@
  OR
 
     $Tag->error($name, $ATTRHASH);
+    [error nameother_named_attributes]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
+B<Tag expansion example:>
+
+   [error name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->error(  { name => VALUE_name
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->error(name, $attribute_hash_reference, $body);
+
 Description
 
     [error var options]
@@ -3370,7 +3916,7 @@
 std_label=<label string for error message>
 
 used with 'required' to display a standardized error format. The HTML
-formating can bet set via the global variable MV_ERROR_STD_LABEL with
+formatting can be set via the global variable MV_ERROR_STD_LABEL with
 the default being:
 
         <FONT COLOR=RED>label_str<SMALL><I>(%s)</I></SMALL></FONT>
@@ -3386,55 +3932,86 @@
 specify your own label string, it will insert HTML anywhere you have
 {REQUIRED: HTML}, but only when the field is required.
 
+I<name>
+
 =head2 export
 
 Exports a database to a delimited text file (see also import).
 
 Summary
 
-Parameters: B<table>
+    [export tableother_named_attributes]
 
-Positional parameters in same order.
+ Parameters   Description                               Default
+ base         Alias for table                           DEFAULT_VALUE
+ database     Alias for table                           DEFAULT_VALUE
+ delete       If 'verify' attribute also set, deletes column specified by 'field' attribute rather than adding a column.DEFAULT_VALUE
+ field        The column to add (or delete if delete and verify are true)DEFAULT_VALUE
+ file         Filename to export to. Note that the NoAbsolute directive and other conditions may affect actual location of the output file.DEFAULT_VALUE
+ sort         Output sorted rows (usage: sort="sort_field:sort_option") (see search/form variable 'mv_sort_option' for sort options)DEFAULT_VALUE
+ table        The table to export                       DEFAULT_VALUE
+ type         Specifies the [line, record] delimiter types. Either NOTES or one of the following:  my %Delimiter = (       2 => ["\n", "\n\n"],       3 => ["\n%%\n", "\n%%%\n"],       4 => ["CSV","\n"],       5 => ['|', "\n"],       6 => ["\t", "\n"],       7 => ["\t", "\n"],       8 => ["\t", "\n"],       LINE => ["\n", "\n\n"],       '%%%' => ["\n%%\n", "\n%%%\n"],       '%%' => ["\n%%\n", "\n%%%\n"],       CSV => ["CSV","\n"],       PIPE => ['|', "\n"],       TAB => ["\t", "\n"],       );If using NOTESnotes_separator (defaults to "\f")notes_field (defaults to "notes_field")DEFAULT_VALUE
+ verify       must be true when deleting a column       DEFAULT_VALUE
 
-=over 4
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
 
-=item *
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-table
+B<Tag expansion example:>
 
-=over 8
+   [export table]
+---
+   TAGRESULT
 
-=item *
+B<ASP-like Perl call:>
 
-The table to export
+   $Tag->export(  { table => VALUE_table
+}, $body  );
 
-=back
+or similarly with positional parameters,
 
-=item *
+    $Tag->export(table, $attribute_hash_reference, $body);
 
-file
+Description
 
-=item *
+Exports 'table' to a delimited text file. See also import tag which
+imports files into databases.
+
+I<delete>
+
+If 'verify' attribute also set, deletes column specified by 'field'
+attribute rather than adding a column.
+
+I<field>
+
+The column to add (or delete if delete and verify are true)
+
+I<file>
 
 Filename to export to. Note that the NoAbsolute directive and other
 conditions may affect actual location of the output file.
 
-=item *
+I<sort>
 
-type
+Output sorted rows (S<usage:> sort="I<sort_field>:I<sort_option>")
+(see search/form variable 'mv_sort_option' for sort options)
 
-=over 8
+I<table>
 
-=item *
+The table to export
+
+I<type>
 
 Specifies the [line, record] delimiter types. Either NOTES or one of
 the following:
 
   my %Delimiter = (
-
-=back
-
-=back
         2 => ["\n", "\n\n"],
         3 => ["\n%%\n", "\n%%%\n"],
         4 => ["CSV","\n"],
@@ -3452,19 +4029,16 @@
 
 =over 4
 
-=over 8
-
 =item *
 
 If using NOTES
 
-=over 12
+=over 8
 
 =item *
 
 notes_separator (defaults to "\f")
 
-
 =item *
 
 notes_field (defaults to "notes_field")
@@ -3472,91 +4046,11 @@
 =back
 
 =back
-
-=item *
-
-field
-
-=over 8
-
-=item *
-
-The column to add (or delete if delete and verify are true)
-
-=back
-
-=item *
-
-delete
-
-=over 8
-
-=item *
-
-If 'verify' attribute also set, deletes column specified by 'field'
-attribute rather than adding a column.
-
-=back
-
-=item *
 
-verify
+I<verify>
 
-=over 8
-
-=item *
-
 must be true when deleting a column
 
-=back
-
-=item *
-
-sort
-
-=over 8
-
-=item *
-
-Output sorted rows (S<usage:> sort="I<sort_field>:I<sort_option>")
-(see search/form variable 'mv_sort_option' for sort options)
-
-=back
-
-=back
-
-B<The attribute hash reference is passed> to the subroutine after the
-parameters as the last argument. B<This may mean that there are
-parameters not shown here.>
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-Invalidates cache: B<YES>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->export(
-        {
-         table => VALUE,
-        }
-    )
-
- OR
-
-    $Tag->export($table, $ATTRHASH);
-
-Attribute aliases
-
-            base ==> table
-            database ==> table
-
-Description
-
-Exports 'table' to a delimited text file. See also import tag which
-imports files into databases.
-
 =head2 field
 
 Summary
@@ -3593,7 +4087,42 @@
             field ==> name
             key ==> code
             row ==> code
+    [field name code]
+
+ Parameters   Description                               Default
+ code                                                   DEFAULT_VALUE
+ col          Alias for name                            DEFAULT_VALUE
+ column       Alias for name                            DEFAULT_VALUE
+ field        Alias for name                            DEFAULT_VALUE
+ key          Alias for code                            DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
+ row          Alias for code                            DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [field name code]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->field(  { code => VALUE_code
+                    name => VALUE_name
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->field(name,code, $attribute_hash_reference, $body);
+
 Description
 
 HTML example: <PARAM MV=field MV.COL=column MV.ROW=key>
@@ -3608,6 +4137,10 @@
 default, [field column key] is the same as [data products column
 key].
 
+I<code>
+
+I<name>
+
 =head2 file
 
 Summary
@@ -3636,7 +4169,37 @@
  OR
 
     $Tag->file($name, $type);
+    [file name type]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+ type                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [file name type]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
 
+   $Tag->file(  { name => VALUE_name
+                   type => VALUE_type
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->file(name,type, $attribute_hash_reference, $body);
+
 Description
 
 Inserts the contents of the named file. The file should normally be
@@ -3647,6 +4210,10 @@
 The optional type parameter will do an appropriate ASCII
 translation on the file before it is sent.
 
+I<name>
+
+I<type>
+
 =head2 filter
 
 Summary
@@ -3677,7 +4244,36 @@
  OR
 
     $Tag->filter($op, $BODY);
+    [filter op]
+
+ Parameters   Description                               Default
+ op                                                     DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [filter op]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->filter(  { op => VALUE_op
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->filter(op, $attribute_hash_reference, $body);
+
 Description
 
 Applies any of Interchange's standard filters to an arbitrary value,
@@ -3937,6 +4533,8 @@
 name=foo filter="lookup.products.price.extra"] will send ('bar',
 'foo', 'products', 'price', 'extra').
 
+I<op>
+
 =head2 flag
 
 Controls Interchange flags. For example, flags affect database access
@@ -3945,209 +4543,121 @@
 
 Summary
 
-Parameters: B<type>
+    [flag type]
 
-type may be one of the following
+ Parameters   Description                               Default
+ build        Forces build of static Interchange page specified by the name attributeDEFAULT_VALUE
+ checkhtml                                              DEFAULT_VALUE
+ commit       Attempts to commit transactions           DEFAULT_VALUE
+ flag         Alias for type                            DEFAULT_VALUE
+ name         Alias for type                            DEFAULT_VALUE
+ read         Flags the table read-only                 DEFAULT_VALUE
+ rollback     Attempts to rollback transactions         DEFAULT_VALUE
+ show         Normally, the [flag] tag returns nothing to the page. Setting 'show=1' causes the tag to return status, if any.DEFAULT_VALUE
+ table        Alias for tables                          DEFAULT_VALUE
+ tables       The name of the table to flag'table' is an aliasDEFAULT_VALUE
+ transactions Reopens the database in transactions mode if Safe.pm is not active (e.g., in a global subroutine, usertag or [perl global=1] tag). The limitation exists because it is not possible to reopen a database within Safe.pm.DEFAULT_VALUE
+ type                                                   DEFAULT_VALUE
+ value        The boolean value of the flag             DEFAULT_VALUE
+ write        Flags the table writeable by default (or read-only if you also set the value=0 attribute)DEFAULT_VALUE
 
-=over 4
+ Attributes                        Default
+ interpolate (reparse)             No
 
-=item *
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-read
+B<Tag expansion example:>
 
-=over 8
+   [flag type]
+---
+   TAGRESULT
 
-=item *
+B<ASP-like Perl call:>
 
-Flags the table read-only
+   $Tag->flag(  { type => VALUE_type
+}, $body  );
 
-=back
+or similarly with positional parameters,
 
-=item *
+    $Tag->flag(type, $attribute_hash_reference, $body);
 
-write
+Description
 
-=over 8
-
-=item *
-
-Flags the table writeable by default (or read-only if you also set the
-value=0 attribute)
-
-=back
+The flag tag controls database access and transactions.
 
-=item *
+If a DBM-based database is to be modified, it must be flagged writable
+on the page calling the write tag.
 
-transactions
+For example, you can call
 
-=over 8
+  [flag type=write value=1 table=products]
 
-=item *
+to mark the products DBM database writable. B<This must be done
+before ANY access to that table.>
 
-Reopens the database in transactions mode if I<Safe.pm> is not active
-(e.g., in a global subroutine, usertag or [perl global=1] tag). The
-limitation exists because it is not possible to reopen a database
-within I<Safe.pm>.
+Note that SQL databases are always writable if allowed by the SQL
+database itself, and in-memory databases will never be written.
 
-=back
+Using [flag build] forces static build of a page, even if it
+contains dynamic elements.
 
-=item *
+I<build>
 
-commit
+Forces build of static Interchange page specified by the name
+attribute
 
-=over 8
+I<checkhtml>
 
-=item *
+I<commit>
 
 Attempts to commit transactions
 
-=back
-
-=item *
-
-rollback
+I<read>
 
-=over 8
+Flags the table read-only
 
-=item *
+I<rollback>
 
 Attempts to rollback transactions
-
-=back
-
-=item *
-
-build
-
-=over 8
-
-=item *
 
-Forces build of static Interchange page specified by the name
-attribute
-
-=back
+I<show>
 
-=item *
-
-checkhtml
+Normally, the [flag] tag returns nothing to the page. Setting
+'show=1' causes the tag to return status, if any.
 
-=back
+I<tables>
 
-Attributes
+The name of the table to flag
 
 =over 4
 
 =item *
 
-'flag' and 'name'
-
-=over 8
-
-=item *
-
-Aliases for 'type' (except for 'type=build')
-
-=back
-
-=item *
-
-tables
-
-=over 8
-
-=item *
-
-The name of the table to flag
-
-=item *
-
 'table' is an alias
 
 =back
 
-=item *
+I<transactions>
 
-value
+Reopens the database in transactions mode if I<Safe.pm> is not active
+(e.g., in a global subroutine, usertag or [perl global=1] tag). The
+limitation exists because it is not possible to reopen a database
+within I<Safe.pm>.
 
-=over 8
+I<type>
 
-=item *
+I<value>
 
 The boolean value of the flag
-
-=back
-
-=item *
-
-name
-
-=over 8
-
-=item *
-
-Name of page to build or alias for 'type'
-
-=back
-
-=item *
-
-show
-
-=over 8
-
-=item *
-
-Normally, the [flag] tag returns nothing to the page. Setting
-'show=1' causes the tag to return status, if any.
-
-=back
-
-=back
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-Invalidates cache: B<YES>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->flag(
-        {
-         type => VALUE,
-        }
-    )
-
- OR
 
-    $Tag->flag($type, $ATTRHASH);
+I<write>
 
-Attribute aliases
-
-            flag ==> type
-            name ==> type
-           table ==> tables
-
-Description
-
-The flag tag controls database access and transactions.
-
-If a DBM-based database is to be modified, it must be flagged writable
-on the page calling the write tag.
-
-For example, you can call
-
-  [flag type=write value=1 table=products]
-
-to mark the products DBM database writable. B<This must be done
-before ANY access to that table.>
-
-Note that SQL databases are always writable if allowed by the SQL
-database itself, and in-memory databases will never be written.
-
-Using [flag build] forces static build of a page, even if it
-contains dynamic elements.
+Flags the table writeable by default (or read-only if you also set the
+value=0 attribute)
 
 =head2 fly_list
 
@@ -4180,7 +4690,38 @@
  OR
 
     $Tag->fly_list($code, $base, $BODY);
+    [fly_list code base]
+
+ Parameters   Description                               Default
+ base                                                   DEFAULT_VALUE
+ code                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [fly_list code base]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->fly_list(  { base => VALUE_base
+                       code => VALUE_code
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->fly_list(code,base, $attribute_hash_reference, $body);
+
 Description
 
 Syntax: [fly-list prefix=tag_prefix* code=code*]
@@ -4208,6 +4749,10 @@
 then it will be [fly-code]; prefix=foo would cause [foo-code],
 etc.
 
+I<base>
+
+I<code>
+
 =head2 fly_tax
 
 Summary
@@ -4235,12 +4780,42 @@
  OR
 
     $Tag->fly_tax($area);
+    [fly_tax area]
+
+ Parameters   Description                               Default
+ area                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [fly_tax area]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->fly_tax(  { area => VALUE_area
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->fly_tax(area, $attribute_hash_reference, $body);
+
 Description
 
 Builds a tax rate from taxarea, taxrate, taxshipping,
 variable values, and the SalesTax directive value.
 
+I<area>
+
 =head2 goto
 
 Skips page content between [goto I<name>] and [label I<name>].
@@ -4342,12 +4917,47 @@
             modes ==> mode
             name ==> mode
             tables ==> table
+    [handling modeother_named_attributes]
+
+ Parameters   Description                               Default
+ carts        Alias for cart                            DEFAULT_VALUE
+ mode                                                   DEFAULT_VALUE
+ modes        Alias for mode                            DEFAULT_VALUE
+ name         Alias for mode                            DEFAULT_VALUE
+ tables       Alias for table                           DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
 
+   [handling mode]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->handling(  { mode => VALUE_mode
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->handling(mode, $attribute_hash_reference, $body);
+
 Description
 
 Calculates and inserts handling costs. Accepts the same noformat and
 convert arguments as the shipping tag.
 
+I<mode>
+
 =head2 harness
 
 Test harness block. Similar to try/catch. Interprets the body text and
@@ -4358,215 +4968,140 @@
 
 Summary
 
-  [harness expected="good" name=my_test_number_1]
-    [good]The Expected Return Value[/good]
-    [not]Some Specifically Bad Return Value[/not]
-    Tags and code to test here
-  [/harness]
+    [harness other_named_attributes]
 
-No parameters.
+ Parameters   Description                               Default
+ expected     Tagname for delimiting your expected return value (default "OK")DEFAULT_VALUE
+ name         This will appear in your output message (useful for distinguishing harness tags from one another) (default "testnnn")DEFAULT_VALUE
 
-=over 4
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
 
-=item *
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
-expected (default "OK")
+B<Tag expansion example:>
 
-=over 8
+   [harness ]
+---
+   TAGRESULT
 
-=item *
+B<ASP-like Perl call:>
 
-Tagname for delimiting your expected return value
+   $Tag->harness(  {
+}, $body  );
 
-=back
+or similarly with positional parameters,
 
-=item *
+    $Tag->harness(, $attribute_hash_reference, $body);
 
-name (default "testI<nnn>")
+Description
 
-=over 8
+Test harness block. Similar to try/catch. Interprets the body text and
+checks the return value against expected and explicitly bad cases.
 
-=item *
+Returns DIED, OK, or NOT OK message along with the harness name and
+your result if not the expected value.
 
-This will appear in your output message (useful for distinguishing
-harness tags from one another)
+I<expected>
 
-=back
+Tagname for delimiting your expected return value (default "OK")
 
-=back
+I<name>
 
-B<The attribute hash reference is passed> after the parameters but
-before the container text argument. B<This may mean that there are
-parameters not shown here.>
+This will appear in your output message (useful for distinguishing
+harness tags from one another) (default "testI<nnn>")
 
-Must pass named parameter interpolate=1 to cause interpolation.
+=head2 href
 
-This is a container tag, i.e. [harness] FOO [/harness]. Nesting: NO
+Alias for [I<area>] tag.
 
-Invalidates cache: B<no>
+=head2 html_table
 
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->harness(
-        {
-        },
-        BODY
-    )
-
- OR
+Builds an HTML table
 
-    $Tag->harness($ATTRHASH, $BODY);
+Summary
 
-Description
+    [html_table other_named_attributes]
 
-Test harness block. Similar to try/catch. Interprets the body text and
-checks the return value against expected and explicitly bad cases.
+ Parameters   Description                               Default
+ columns      Whitespace-delimited list of columns      DEFAULT_VALUE
+ delimiter    Line delimiter to use if tag body is delimited text rather than an array reference (default "\t")DEFAULT_VALUE
+ fc           HTML attributes for <TD> in the first cellDEFAULT_VALUE
+ fr           HTML attributes for <TR> in the first row DEFAULT_VALUE
+ record_delim Record delimiter to use if tag body is delimited text rather than an array reference (default "\n")DEFAULT_VALUE
+ td           HTML attributes for <TD>                  DEFAULT_VALUE
+ th           HTML attributes for <TH>                  DEFAULT_VALUE
+ tr           HTML attributes for <TR>                  DEFAULT_VALUE
 
-Returns DIED, OK, or NOT OK message along with the harness name and
-your result if not the expected value.
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
 
-=head2 href
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
-Alias for [I<area>] tag.
+B<Tag expansion example:>
 
-=head2 html_table
+   [html_table ]
+---
+   TAGRESULT
 
-Builds an HTML table
+B<ASP-like Perl call:>
 
-Summary
+   $Tag->html_table(  {
+}, $body  );
 
-=over 4
+or similarly with positional parameters,
 
-=item *
+    $Tag->html_table(, $attribute_hash_reference, $body);
 
-columns
+Description
 
-=over 8
+Builds an HTML table
 
-=item *
+I<columns>
 
 Whitespace-delimited list of columns
 
-=back
-
-=item *
-
-delimiter (default "\t")
-
-=over 8
-
-=item *
+I<delimiter>
 
 Line delimiter to use if tag body is delimited text rather than an
-array reference
+array reference (default "\t")
 
-=back
+I<fc>
 
-=item *
+HTML attributes for <TD> in the first cell
 
-record_delim (default "\n")
+I<fr>
 
-=over 8
+HTML attributes for <TR> in the first row
 
-=item *
+I<record_delim>
 
 Record delimiter to use if tag body is delimited text rather than an
-array reference
-
-=back
-
-=item *
-
-tr
-
-=over 8
-
-=item *
+array reference (default "\n")
 
-HTML attributes for <TR>
-
-=back
-
-=item *
-
-td
-
-=over 8
-
-=item *
+I<td>
 
 HTML attributes for <TD>
-
-=back
-
-=item *
-
-th
 
-=over 8
-
-=item *
+I<th>
 
 HTML attributes for <TH>
-
-=back
-
-=item *
-
-fc
-
-=over 8
-
-=item *
-
-HTML attributes for <TD> in the first cell
-
-=back
-
-=item *
-
-fr
-
-=over 8
-
-=item *
-
-HTML attributes for <TR> in the first row
-
-=back
-
-=back
-
-B<The attribute hash reference is passed> after the parameters but
-before the container text argument. B<This may mean that there are
-parameters not shown here.>
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-This is a container tag, i.e. [html_table] FOO [/html_table]. Nesting:
-NO
-
-Invalidates cache: B<no>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->html_table(
-        {
-        },
-        BODY
-    )
 
- OR
-
-    $Tag->html_table($ATTRHASH, $BODY);
-
-Description
+I<tr>
 
-Builds an HTML table
+HTML attributes for <TR>
 
 =head2 if
 
@@ -4599,7 +5134,46 @@
             comp ==> compare
             condition ==> compare
             operator ==> op
+    [if type term op compare]
+
+ Parameters   Description                               Default
+ base         Alias for type                            DEFAULT_VALUE
+ comp         Alias for compare                         DEFAULT_VALUE
+ compare                                                DEFAULT_VALUE
+ condition    Alias for compare                         DEFAULT_VALUE
+ op                                                     DEFAULT_VALUE
+ operator     Alias for op                              DEFAULT_VALUE
+ term                                                   DEFAULT_VALUE
+ type                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [if type term op compare]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->if(  { compare => VALUE_compare
+                 op => VALUE_op
+                 term => VALUE_term
+                 type => VALUE_type
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->if(type,term,op,compare, $attribute_hash_reference, $body);
+
 Description
 
 Named call example: [if type="type" term="field" op="op"
@@ -4914,6 +5488,14 @@
 the result of the test. If arguments are added to [if explicit args],
 those will be passed as arguments are in the [I<per>l] construct.
 
+I<compare>
+
+I<op>
+
+I<term>
+
+I<type>
+
 =head2 import
 
 Summary
@@ -4952,7 +5534,41 @@
 
             base ==> table
             database ==> table
+    [import table typeother_named_attributes]
+
+ Parameters   Description                               Default
+ base         Alias for table                           DEFAULT_VALUE
+ database     Alias for table                           DEFAULT_VALUE
+ table                                                  DEFAULT_VALUE
+ type                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [import table type]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->import(  { table => VALUE_table
+                     type => VALUE_type
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->import(table,type, $attribute_hash_reference, $body);
+
 Description
 
 Named attributes:
@@ -4995,6 +5611,10 @@
 records. If using NOTES mode, you must use a separator, which by
 default is a form-feed character (^L).
 
+I<table>
+
+I<type>
+
 =head2 include
 
 Summary
@@ -5015,138 +5635,145 @@
 
 Not applicable.
 
+    [include file locale]
+
+ Parameters   Description                               Default
+ file                                                   DEFAULT_VALUE
+ locale                                                 DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [include file locale]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->include(  { file => VALUE_file
+                      locale => VALUE_locale
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->include(file,locale, $attribute_hash_reference, $body);
+
 Description
 
 Same as [file name] except interpolates for all Interchange tags
 and variables. Does NOT do locale translations.
 
+I<file>
+
+I<locale>
+
 =head2 index
 
 Creates an index for the specified table.
 
 Summary
 
-Parameters: B<table>
+    [index tableother_named_attributes]
 
-Positional parameters in same order.
+ Parameters   Description                               Default
+ base         Alias for table                           DEFAULT_VALUE
+ basefile     Database filename. Exports the table to this filename if old or missing before indexing. See also the export tag for additional relevent attributes such as delimiter type, etc.DEFAULT_VALUE
+ col          alias for fields                          DEFAULT_VALUE
+ columns      alias for fields                          DEFAULT_VALUE
+ database     Alias for table                           DEFAULT_VALUE
+ export_only  Just do the export if necessary (not the index).DEFAULT_VALUE
+ extension    Index file extension (default "idx")      DEFAULT_VALUE
+ fields       field(s) to index                         DEFAULT_VALUE
+ fn           alias for fields                          DEFAULT_VALUE
+ show_status  Return '1' to the page if successful      DEFAULT_VALUE
+ spec         The index specification                   DEFAULT_VALUE
+ table                                                  DEFAULT_VALUE
 
-=over 4
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
 
-=item *
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-extension (default "idx")
+B<Tag expansion example:>
 
-=over 8
+   [index table]
+---
+   TAGRESULT
 
-=item *
+B<ASP-like Perl call:>
 
-Index file extension
+   $Tag->index(  { table => VALUE_table
+}, $body  );
 
-=back
+or similarly with positional parameters,
 
-=item *
+    $Tag->index(table, $attribute_hash_reference, $body);
 
-basefile
+Description
 
-=over 8
+Creates an index for the specified table.
 
-=item *
+I<basefile>
 
 Database filename. Exports the table to this filename if old or
 missing before indexing. See also the export tag for additional
 relevent attributes such as delimiter type, etc.
 
-=back
+I<col>
 
-=item *
+alias for fields
 
-export_only
+I<columns>
 
-=over 8
+alias for fields
 
-=item *
+I<export_only>
 
 Just do the export if necessary (not the index).
 
-=back
+I<extension>
 
-=item *
+Index file extension (default "idx")
 
-spec
+I<fields>
 
-=over 8
+field(s) to index
 
-=item *
+I<fn>
 
-The index specification
+alias for fields
 
-=back
+I<show_status>
 
-=item *
+Return '1' to the page if successful
 
-fn or fields or col or columns
+I<spec>
 
-=over 8
+The index specification
 
-=item *
+I<table>
 
-field(s) to index
+=head2 item_list
 
-=back
+Summary
 
-=item *
+Parameters: B<name>
 
-show_status
+ONLY THE B<> PARAMETERS ARE POSITIONAL.
 
-=over 8
-
-=item *
-
-Return '1' to the page if successful
-
-=back
-
-=back
-
-B<The attribute hash reference is passed> to the subroutine after the
-parameters as the last argument. B<This may mean that there are
-parameters not shown here.>
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-Invalidates cache: B<YES>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->index(
-        {
-         table => VALUE,
-        }
-    )
-
- OR
-
-    $Tag->index($table, $ATTRHASH);
-
-Attribute aliases
-
-            base ==> table
-            database ==> table
-
-Description
-
-Creates an index for the specified table.
-
-=head2 item_list
-
-Summary
-
-Parameters: B<name>
-
-ONLY THE B<> PARAMETERS ARE POSITIONAL.
-
 B<The attribute hash reference is passed> after the parameters but
 before the container text argument. B<This may mean that there are
 parameters not shown here.>
@@ -5181,7 +5808,38 @@
 Attribute aliases
 
             cart ==> name
+    [item_list nameother_named_attributes]
+
+ Parameters   Description                               Default
+ cart         Alias for name                            DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [item_list name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
 
+   $Tag->item_list(  { name => VALUE_name
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->item_list(name, $attribute_hash_reference, $body);
+
 Description
 
 Within any page, the [item_list cart*] element shows a list of all the
@@ -5350,6 +6008,8 @@
 Evaluates to the name to give an input box in which the customer can
 enter the quantity to order.
 
+I<name>
+
 =head2 label
 
 The page label for goto. See [goto] tag for description.  Note that
@@ -5361,151 +6021,142 @@
      content to skip
    [label name=label_name]
 
-=head2 log
+Summary
 
-Log contained text to specified file.
+NO SUMMARY SECTION
 
-Summary
+    [label ]
 
-Parameters: B<file>
+ Attributes                        Default
+ interpolate (reparse)             No
 
-=over 4
+ Other_Charactreristics            
+ Invalidates cache                 No
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-=item *
+B<Tag expansion example:>
 
-file
+   [label ]
+---
+   TAGRESULT
 
-=over 8
+B<ASP-like Perl call:>
 
-=item *
+   $Tag->label(  {
+}, $body  );
 
-name of file to log to. 'file=">I<filename>"' also sets 'create'
-attribute.
+or similarly with positional parameters,
 
-=back
+    $Tag->label(, $attribute_hash_reference, $body);
 
-=item *
+Description
 
-create
+NO DESCRIPTION SECTION
 
-=over 8
+=head2 log
 
-=item *
+Log contained text to specified file.
 
-Set create=1 to create the file if not present
+Summary
 
-=back
+    [log fileother_named_attributes]
 
-=item *
+ Parameters   Description                               Default
+ arg          Alias for file                            DEFAULT_VALUE
+ create       Set create=1 to create the file if not presentDEFAULT_VALUE
+ delim        Line delimiter                            DEFAULT_VALUE
+ file         name of file to log to. 'file=">filename"' also sets 'create' attribute.DEFAULT_VALUE
+ hide         Suppress status otherwise returned by tag to the page.DEFAULT_VALUE
+ process      Processing (if any) to apply to the content while loggingnostrip (don't strip leading/trailing whitespace and convert "\r\n" to "\n"DEFAULT_VALUE
+ record_delim Record delimiter                          DEFAULT_VALUE
+ type         Log typetext (ordinary text file)quot (delimited entries)error (add Interchange error formatting and time/location stamps)DEFAULT_VALUE
 
-process
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
 
-=over 8
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
-=item *
+B<Tag expansion example:>
 
-Processing (if any) to apply to the content while logging
+   [log file]
+---
+   TAGRESULT
 
-=over 12
+B<ASP-like Perl call:>
 
-=item *
+   $Tag->log(  { file => VALUE_file
+}, $body  );
 
-nostrip (don't strip leading/trailing whitespace and convert "\r\n" to
-"\n"
+or similarly with positional parameters,
 
-=back
+    $Tag->log(file, $attribute_hash_reference, $body);
 
-=back
+Description
 
-=item *
+Log contained text to specified file.
 
-delim and record_delim
+I<create>
 
-=over 8
+Set create=1 to create the file if not present
 
-=item *
+I<delim>
 
-Line and record delimiters, respectively
+Line delimiter
 
-=back
+I<file>
 
-=item *
+name of file to log to. 'file=">I<filename>"' also sets 'create'
+attribute.
 
-type
+I<hide>
 
-=over 8
+Suppress status otherwise returned by tag to the page.
 
-=item *
+I<process>
 
-Log type
+Processing (if any) to apply to the content while logging
 
-=over 12
+=over 4
 
 =item *
 
-text (ordinary text file)
+nostrip (don't strip leading/trailing whitespace and convert "\r\n" to
+"\n"
 
+=back
 
-=item *
+I<record_delim>
 
-quot (delimited entries)
+Record delimiter
 
+I<type>
 
-=item *
+Log type
 
-error (add Interchange error formatting and time/location stamps)
+=over 4
 
-=back
+=item *
 
-=back
+text (ordinary text file)
 
 =item *
 
-hide
-
-=over 8
+quot (delimited entries)
 
 =item *
-
-Suppress status otherwise returned by tag to the page.
 
-=back
+error (add Interchange error formatting and time/location stamps)
 
 =back
 
-B<The attribute hash reference is passed> after the parameters but
-before the container text argument. B<This may mean that there are
-parameters not shown here.>
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-This is a container tag, i.e. [log] FOO [/log]. Nesting: NO
-
-Invalidates cache: B<no>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->log(
-        {
-         file => VALUE,
-        },
-        BODY
-    )
-
- OR
-
-    $Tag->log($file, $ATTRHASH, $BODY);
-
-Attribute aliases
-
-            arg ==> file
-
-Description
-
-Log contained text to specified file.
-
 =head2 loop
 
 Summary
@@ -5548,7 +6199,39 @@
 
             arg ==> list
             args ==> list
+    [loop listother_named_attributes]
+
+ Parameters   Description                               Default
+ arg          Alias for list                            DEFAULT_VALUE
+ args         Alias for list                            DEFAULT_VALUE
+ list                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [loop list]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->loop(  { list => VALUE_list
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->loop(list, $attribute_hash_reference, $body);
+
 Description
 
 HTML example:
@@ -5660,7 +6343,7 @@
 
 See [if-PREFIX-param].
 
-[if-loop-pos N] IF [else] ELSE [/else][/if-loop-param]
+[if-loop-pos N] IF [else] ELSE [/else][/if-loop-pos]
 
 Only works if you have multiple return fields from a search (or from a
 passed list with the lr=1 parameter).
@@ -5759,6 +6442,8 @@
 file) of the current item, with currency formatting. If the optional
 "noformat" is set, then currency formatting will not be applied.
 
+I<list>
+
 =head2 mail
 
 Mail contained text to recipient specified by 'to' using the program
@@ -5766,105 +6451,70 @@
 
 Summary
 
-Parameters: B<to>
+    [mail toother_named_attributes]
 
-Positional parameters in same order.
+ Parameters   Description                               Default
+ extra        Additional headers (these will also be added to 'raw' messages)DEFAULT_VALUE
+ hide         Suppress tag return value. This would otherwise be the 'success' attribute setting.DEFAULT_VALUE
+ raw          Send it raw without creating headers and checking content, recipient, subject, etc.DEFAULT_VALUE
+ show         The tag will return the final message with headers in the pageDEFAULT_VALUE
+ success      Tag return value if successful (default is 1).DEFAULT_VALUE
+ to                                                     DEFAULT_VALUE
 
-=over 4
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
 
-=item *
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
-raw
+B<Tag expansion example:>
 
-=over 8
+   [mail to]
+---
+   TAGRESULT
 
-=item *
+B<ASP-like Perl call:>
 
-Send it raw without creating headers and checking content, recipient,
-subject, etc.
+   $Tag->mail(  { to => VALUE_to
+}, $body  );
 
-=back
+or similarly with positional parameters,
 
-=item *
+    $Tag->mail(to, $attribute_hash_reference, $body);
 
-extra
+Description
 
-=over 8
+Mail contained text to recipient specified by 'to' using the program
+specified with the SendMailProgram catalog directive.
 
-=item *
+I<extra>
 
 Additional headers (these will also be added to 'raw' messages)
 
-=back
+I<hide>
 
-=item *
+Suppress tag return value. This would otherwise be the 'success'
+attribute setting.
 
-success
+I<raw>
 
-=over 8
+Send it raw without creating headers and checking content, recipient,
+subject, etc.
 
-=item *
+I<show>
 
-Tag return value if successful (default is 1).
+The tag will return the final message with headers in the page
 
-=back
-
-=item *
-
-hide
-
-=over 8
-
-=item *
-
-Suppress tag return value. This would otherwise be the 'success'
-attribute setting.
-
-=back
-
-=item *
-
-show
-
-=over 8
-
-=item *
-
-The tag will return the final message with headers in the page
-
-=back
-
-=back
-
-B<The attribute hash reference is passed> after the parameters but
-before the container text argument. B<This may mean that there are
-parameters not shown here.>
-
-Must pass named parameter interpolate=1 to cause interpolation.
+I<success>
 
-This is a container tag, i.e. [mail] FOO [/mail]. Nesting: NO
-
-Invalidates cache: B<YES>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->mail(
-        {
-         to => VALUE,
-        },
-        BODY
-    )
-
- OR
-
-    $Tag->mail($to, $ATTRHASH, $BODY);
-
-Description
+Tag return value if successful (default is 1).
 
-Mail contained text to recipient specified by 'to' using the program
-specified with the SendMailProgram catalog directive.
+I<to>
 
 =head2 mvasp
 
@@ -5975,84 +6625,79 @@
 
 Summary
 
-Parameters: B<name>
+    [nitems name]
 
-=over 4
+ Parameters   Description                               Default
+ compare      Regular expression the specified qualifier attribute's value must match to be counted. This replaces the truth value comparison.Default: None (uses truth value of the specified qualifier attribute)DEFAULT_VALUE
+ name         Cart nameDefault: current cart            DEFAULT_VALUE
+ qualifier    An item attribute that must be true in order to count the item.Default: NoneDEFAULT_VALUE
 
-=item *
+ Attributes                        Default
+ interpolate (reparse)             No
 
-name
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-=over 8
+B<Tag expansion example:>
 
-=item *
+   [nitems name]
+---
+   TAGRESULT
 
-Cart name
+B<ASP-like Perl call:>
 
-=item *
+   $Tag->nitems(  { name => VALUE_name
+}, $body  );
 
-S<Default:> current cart
+or similarly with positional parameters,
 
-=back
+    $Tag->nitems(name, $attribute_hash_reference, $body);
 
-=item *
+Description
 
-qualifier
+Expands into the total number of items ordered so far. Takes an
+optional cart name as a parameter.
 
-=over 8
+I<compare>
 
-=item *
+Regular expression the specified qualifier attribute's value must
+match to be counted. This replaces the truth value comparison.
 
-An item attribute that must be true in order to count the item.
+=over 4
 
 =item *
 
-S<Default:> None
+S<Default:> None (uses truth value of the specified qualifier
+attribute)
 
 =back
-
-=item *
-
-compare
 
-=over 8
+I<name>
 
-=item *
+Cart name
 
-Regular expression the specified qualifier attribute's value must
-match to be counted. This replaces the truth value comparison.
+=over 4
 
 =item *
-
-S<Default:> None (uses truth value of the specified qualifier
-attribute)
 
-=back
+S<Default:> current cart
 
 =back
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-Invalidates cache: B<YES>
-
-Called Routine:
 
-B<ASP-like Perl call:>
+I<qualifier>
 
-    $Tag->nitems(
-        {
-         name => VALUE,
-        }
-    )
+An item attribute that must be true in order to count the item.
 
- OR
+=over 4
 
-    $Tag->nitems($name, $ATTRHASH);
+=item *
 
-Description
+S<Default:> None
 
-Expands into the total number of items ordered so far. Takes an
-optional cart name as a parameter.
+=back
 
 =head2 options
 
@@ -6082,127 +6727,85 @@
 
 Summary
 
-Parameters: B<code>
+    [options code]
 
-=over 4
+ Parameters   Description                               Default
+ bold         Boldfaces the labels if the 'label' option is set.Default: FalseDEFAULT_VALUE
+ code         Product key (usually sku).No default      DEFAULT_VALUE
+ joiner       The joiner for the widgets.Default: <BR>  DEFAULT_VALUE
+ label        Shows labels for the options with the widgets.The following example (using another item from the 'tools' data) illustrates the price and label attributes:===   [options code=os28011 label=1 price=1]---   Handle<BR>     <input type=hidden name=mv_item_option value="handle">       <SELECT NAME="mv_order_handle">       <OPTION VALUE="W">Wood handle       <OPTION VALUE="E">Ebony handle ($20.00)</SELECT><BR>   Blade material<BR>     <input type=hidden name=mv_item_option value="blade">       <SELECT NAME="mv_order_blade">       <OPTION VALUE="P">Plastic blade ($-1.22)       <OPTION VALUE="S" SELECTED>Steel blade       <OPTION VALUE="T">Titanium blade ($100.00)</SELECT>===(again, the output has been reformatted to fit the page).Default: FalseDEFAULT_VALUE
+ price        Boolean. If set and the options have prices, the HTML widget(s) will show the prices. This is like the price attribute of the accessories tag.Note that the price_data setting comes from the 'price' column of the options table.Technical note-- If your options table has different mappings, you can control this with $::Variable->{MV_OPTION_TABLE_MAP}False
+ table        Table to use for option attributes.Default: 'options'DEFAULT_VALUE
+ td           Results as table rows. For example, compare the following example from the 'tools' sample data set with the earlier example:===   [options code=os28005 td=1]---   <td><input type=hidden name=mv_item_option value="logo">      <SELECT NAME="mv_order_logo">      <OPTION VALUE="c">Construct Something      <OPTION VALUE="y" SELECTED>Your Logo</SELECT></td>   <td><input type=hidden name=mv_item_option value="color">      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BLK" >&nbsp;Black      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BEIGE" >&nbsp;Beige      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="WHITE" >&nbsp;White</td>   <td><input type=hidden name=mv_item_option value="bristle">      <SELECT NAME="mv_order_bristle">      <OPTION VALUE="synthetic">Synthetic      <OPTION VALUE="camel">Camel Hair</SELECT></td>===(Note that the output was reformatted to fit this page)DEFAULT_VALUE
 
-=item *
+ Attributes                        Default
+ interpolate (reparse)             No
 
-code
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-=over 8
+B<Tag expansion example:>
 
-=item *
+   [options code]
+---
+   TAGRESULT
 
-Product key (usually sku).
+B<ASP-like Perl call:>
 
-=item *
+   $Tag->options(  { code => VALUE_code
+}, $body  );
 
-No default
+or similarly with positional parameters,
 
-=back
+    $Tag->options(code, $attribute_hash_reference, $body);
 
-=item *
+Description
 
-table
+NO DESCRIPTION SECTION
 
-=over 8
+I<bold>
 
-=item *
+Boldfaces the labels if the 'label' option is set.
 
-Table to use for option attributes.
+=over 4
 
 =item *
 
-S<Default:> 'options'
+S<Default:> False
 
 =back
 
-=item *
+I<code>
 
-td
+Product key (usually sku).
 
-=over 8
+=over 4
 
 =item *
-
-Results as table rows. For example, compare the following example from
-the 'tools' sample data set with the earlier example:
 
-Z<>===
+No default
 
 =back
 
-=back
-   [options code=os28005 td=1]
----
-   <td><input type=hidden name=mv_item_option value="logo">
-      <SELECT NAME="mv_order_logo">
-      <OPTION VALUE="c">Construct Something
-      <OPTION VALUE="y" SELECTED>Your Logo</SELECT></td>
-   <td><input type=hidden name=mv_item_option value="color">
-      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BLK" >&nbsp;Black
-      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BEIGE" >&nbsp;Beige
-      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="WHITE" >&nbsp;White</td>
-   <td><input type=hidden name=mv_item_option value="bristle">
-      <SELECT NAME="mv_order_bristle">
-      <OPTION VALUE="synthetic">Synthetic
-      <OPTION VALUE="camel">Camel Hair</SELECT></td>
-Z<>===
+I<joiner>
 
-(Note that the output was reformatted to fit this page)
+The joiner for the widgets.
 
 =over 4
 
 =item *
-
-price
-
-=over 8
-
-=item *
-
-S<Default:> False
-
-=item *
-
-Boolean. If set and the options have prices, the HTML widget(s) will
-show the prices. This is like the price attribute of the
-accessories tag.
-
-=over 12
-
-=item
 
-Note that the price_data setting comes from the 'price' column of
-the options table.
-
-
-Technical note-- If your options table has different mappings, you can
-control this with $::Variable->{MV_OPTION_TABLE_MAP}
-
-=back
+S<Default:> <BR>
 
 =back
-
-=item *
-
-label
 
-=over 8
-
-=item *
+I<label>
 
 Shows labels for the options with the widgets.
 
-=item *
-
-S<Default:> False
-
-=back
-
-=back
-
 The following example (using another item from the 'tools' data)
 illustrates the price and label S<attributes:>
 
@@ -6228,55 +6831,71 @@
 
 =item *
 
-bold
+S<Default:> False
 
-=over 8
+=back
 
-=item *
+I<price>
 
-Boldfaces the labels if the 'label' option is set.
+Boolean. If set and the options have prices, the HTML widget(s) will
+show the prices. This is like the price attribute of the
+accessories tag.
 
-=item *
+=over 4
 
-S<Default:> False
+=item
 
-=back
+Note that the price_data setting comes from the 'price' column of
+the options table.
 
-=item *
+Technical note-- If your options table has different mappings, you can
+control this with $::Variable->{MV_OPTION_TABLE_MAP}
 
-joiner
+=back
 
-=over 8
+=over 4
 
 =item *
 
-The joiner for the widgets.
+S<Default:> False
 
-=item *
+=back
 
-S<Default:> <BR>
+I<table>
 
-=back
+Table to use for option attributes.
 
-=back
+=over 4
 
-Must pass named parameter interpolate=1 to cause interpolation.
+=item *
 
-Invalidates cache: B<no>
+S<Default:> 'options'
 
-Called Routine:
+=back
 
-B<ASP-like Perl call:>
+I<td>
 
-    $Tag->options(
-        {
-         code => VALUE,
-        }
-    )
+Results as table rows. For example, compare the following example from
+the 'tools' sample data set with the earlier example:
 
- OR
+ ===
+   [options code=os28005 td=1]
+---
+   <td><input type=hidden name=mv_item_option value="logo">
+      <SELECT NAME="mv_order_logo">
+      <OPTION VALUE="c">Construct Something
+      <OPTION VALUE="y" SELECTED>Your Logo</SELECT></td>
+   <td><input type=hidden name=mv_item_option value="color">
+      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BLK" >&nbsp;Black
+      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BEIGE" >&nbsp;Beige
+      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="WHITE" >&nbsp;White</td>
+   <td><input type=hidden name=mv_item_option value="bristle">
+      <SELECT NAME="mv_order_bristle">
+      <OPTION VALUE="synthetic">Synthetic
+      <OPTION VALUE="camel">Camel Hair</SELECT></td>
+Z<>===
 
-    $Tag->options($code, $ATTRHASH);
+(Note that the output was reformatted to fit this page)
 
 =head2 or
 
@@ -6316,11 +6935,56 @@
             base ==> type
             comp ==> compare
             operator ==> op
+    [or type term op compare]
+
+ Parameters   Description                               Default
+ base         Alias for type                            DEFAULT_VALUE
+ comp         Alias for compare                         DEFAULT_VALUE
+ compare                                                DEFAULT_VALUE
+ op                                                     DEFAULT_VALUE
+ operator     Alias for op                              DEFAULT_VALUE
+ term                                                   DEFAULT_VALUE
+ type                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [or type term op compare]
+---
+   TAGRESULT
 
+B<ASP-like Perl call:>
+
+   $Tag->or(  { compare => VALUE_compare
+                 op => VALUE_op
+                 term => VALUE_term
+                 type => VALUE_type
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->or(type,term,op,compare, $attribute_hash_reference, $body);
+
 Description
 
 B<NO Description>
 
+I<compare>
+
+I<op>
+
+I<term>
+
+I<type>
+
 =head2 order
 
 Expands into a hypertext link which will include the specified item in
@@ -7031,7 +7695,37 @@
 Attribute aliases
 
             base ==> mv_ib
+    [price codeother_named_attributes]
+
+ Parameters   Description                               Default
+ base         Alias for mv_ib                           DEFAULT_VALUE
+ code                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
 
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [price code]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->price(  { code => VALUE_code
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->price(code, $attribute_hash_reference, $body);
+
 Description
 
 Arguments:
@@ -7129,6 +7823,8 @@
 
 See I<Product Discounts>.
 
+I<code>
+
 =head2 process
 
 This is a shortcut for the 'process' action, expanding to your catalog
@@ -7706,6 +8402,35 @@
  OR
 
     $Tag->row($width, $BODY);
+    [row width]
+
+ Parameters   Description                               Default
+ width                                                  DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [row width]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->row(  { width => VALUE_width
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->row(width, $attribute_hash_reference, $body);
 
 Description
 
@@ -7745,6 +8470,8 @@
 
 Terminates the column field.
 
+I<width>
+
 =head2 salestax
 
 Summary
@@ -7777,7 +8504,38 @@
 Attribute aliases
 
             cart ==> name
+    [salestax name noformat]
+
+ Parameters   Description                               Default
+ cart         Alias for name                            DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
+ noformat                                               DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [salestax name noformat]
+---
+   TAGRESULT
 
+B<ASP-like Perl call:>
+
+   $Tag->salestax(  { name => VALUE_name
+                       noformat => VALUE_noformat
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->salestax(name,noformat, $attribute_hash_reference, $body);
+
 Description
 
 Expands into the sales tax on the subtotal of all the items ordered so
@@ -7786,6 +8544,10 @@
 0. If the noformat tag is present and non-zero, the raw number with no
 currency formatting will be given.
 
+I<name>
+
+I<noformat>
+
 =head2 scratch
 
 Summary
@@ -7813,12 +8575,42 @@
  OR
 
     $Tag->scratch($name);
+    [scratch name]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
 
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [scratch name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->scratch(  { name => VALUE_name
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->scratch(name, $attribute_hash_reference, $body);
+
 Description
 
 Returns the contents of a scratch variable to the page. (A scratch
 variable is set with a [set] value [/set] container pair.)
 
+I<name>
+
 =head2 scratchd
 
 Deletes the named scratch variable and returns its value before the
@@ -7908,11 +8700,46 @@
             args ==> arg
             params ==> arg
             search ==> arg
+    [search_region argother_named_attributes]
+
+ Parameters   Description                               Default
+ arg                                                    DEFAULT_VALUE
+ args         Alias for arg                             DEFAULT_VALUE
+ params       Alias for arg                             DEFAULT_VALUE
+ search       Alias for arg                             DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
 
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [search_region arg]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->search_region(  { arg => VALUE_arg
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->search_region(arg, $attribute_hash_reference, $body);
+
 Description
 
 B<NO Description>
 
+I<arg>
+
 =head2 selected
 
 Summary
@@ -7943,7 +8770,38 @@
  OR
 
     $Tag->selected($name, $value, $ATTRHASH);
+    [selected name valueother_named_attributes]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+ value                                                  DEFAULT_VALUE
 
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [selected name value]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->selected(  { name => VALUE_name
+                       value => VALUE_value
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->selected(name,value, $attribute_hash_reference, $body);
+
 Description
 
 You can provide a "memory" for drop-down menus, radio buttons, and
@@ -7975,6 +8833,10 @@
 want to use the volatile CGI space (i.e. [cgi foo]) use the option
 cgi=1.
 
+I<name>
+
+I<value>
+
 =head2 set
 
 Summary
@@ -8005,7 +8867,36 @@
  OR
 
     $Tag->set($name, $BODY);
+    [set name]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [set name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->set(  { name => VALUE_name
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->set(name, $attribute_hash_reference, $body);
+
 Description
 
 Sets a scratch variable to I<value>.
@@ -8033,6 +8924,8 @@
 Any of these profile values can be set in the OrderProfile files as
 well.
 
+I<name>
+
 =head2 set_cookie
 
 Sets browser cookie(s) with the specified attributes.
@@ -8166,101 +9059,82 @@
  OR
 
     $Tag->seti($name, $BODY);
+    [seti name]
 
-Description
-
-Equivalent to the [set] tag, except that it I<interpolates> by
-default.
-
-=head2 setlocale
-
-Sets locale and/or currency for the current page. Can be made
-persistent for the user with the 'persist' option. Resets default
-locale if called without arguments.  See also I<Setting the Locale> in
-the template documentation.
-
-Summary
-
-B<Parameters:> B<locale currency>
-
-=over 4
-
-=item *
-
-locale
-
-=over 8
-
-=item *
-
-The locale to use.
-
-=item *
-
-S<Default:> [scratch mv_locale] (see also 'persist' attribute)
-
-=back
-
-=item *
-
-currency
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
 
-=over 8
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
 
-=item *
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
-The currency format to use.
+B<Tag expansion example:>
 
-=item *
+   [seti name]
+---
+   TAGRESULT
 
-S<Default:> [scratch mv_currency] (see also 'persist' attribute)
+B<ASP-like Perl call:>
 
-=back
+   $Tag->seti(  { name => VALUE_name
+}, $body  );
 
-=back
+or similarly with positional parameters,
 
-Positional parameters in same order.
+    $Tag->seti(name, $attribute_hash_reference, $body);
 
-B<Named Attrbutes>
+Description
 
-=over 4
+Equivalent to the [set] tag, except that it I<interpolates> by
+default.
 
-=item *
+I<name>
 
-persist
+=head2 setlocale
 
-=over 8
+Sets locale and/or currency for the current page. Can be made
+persistent for the user with the 'persist' option. Resets default
+locale if called without arguments.  See also I<Setting the Locale> in
+the template documentation.
 
-=item *
+Summary
 
-Setting 'persist=1' also sets the scratch variables, B<mv_locale>
-and B<mv_currency> to specified locale and currency. This makes the
-locale settings persistent for the user's session. Otherwise
-(persist=0), the setlocale tag affects the remainder of the
-current page only.
+    [setlocale ]
 
-=back
+ Parameters   Description                               Default
+ currency     The currency format to use.Default: [scratch mv_currency] (see also 'persist' attribute)DEFAULT_VALUE
+ locale       The locale to use.Default: [scratch mv_locale] (see also 'persist' attribute)DEFAULT_VALUE
+ persist      Setting 'persist=1' also sets the scratch variables, mv_locale and mv_currency to specified locale and currency. This makes the locale settings persistent for the user's session. Otherwise (persist=0), the setlocale tag affects the remainder of the current page only.DEFAULT_VALUE
 
-=back
+ Attributes                        Default
+ interpolate (reparse)             No
 
-Must pass named parameter interpolate=1 to cause interpolation.
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-Invalidates cache: B<no>
+B<Tag expansion example:>
 
-Called Routine:
+   [setlocale ]
+---
+   TAGRESULT
 
 B<ASP-like Perl call:>
 
-    $Tag->setlocale(
-        {
-         locale => VALUE,
-         currency => VALUE,
-        }
-    )
+   $Tag->setlocale(  {
+}, $body  );
 
- OR
+or similarly with positional parameters,
 
-    $Tag->setlocale($locale, $currency, $ATTRHASH);
+    $Tag->setlocale(, $attribute_hash_reference, $body);
 
 Description
 
@@ -8291,222 +9165,153 @@
     [comment] Return to the user's default locale [/comment]
     [setlocale]
 
-=head2 shipping
-
-Returns the cost of shipping the items in the cart via the shipping
-mode set with the B<mode> parameter. See also the I<Shipping> section
-of the Database documentation.
-
-Summary
+I<currency>
 
-Parameters: B<mode>
+The currency format to use.
 
 =over 4
 
 =item *
-
-mode
-
-=over 8
-
-=item *
 
-S<Aliases:> B<name>, B<modes>
-
-=item *
-
-Whitespace, null or comma delimited list of modes for which to
-calculate shipping cost.  See also mv_shipmode.
-
-=item *
-
-S<Default:> [value mv_handling] if B<handling=1> or [value
-mv_shipmode] or 'default'
-
-=back
-
-=item *
-
-table
-
-=over 8
-
-=item *
-
-S<Alias:> B<tables>
-
-=item *
-
-Whitespace-delimited list of tables containing shipping data required
-for perl or query calculations (I<e.g.>, in the 'PERL' field of your
-shipping database - see I<Shipping>). You must specify the tables to
-get past the Perl 'I<Safe.pm>' proctection. For example, you will get
-'I<Safe>' errors if you refer to an SQL table without specifying it
-here.
-
-=item *
-
-S<Default:> None
+S<Default:> [scratch mv_currency] (see also 'persist' attribute)
 
 =back
-
-=item *
-
-cart
 
-=over 8
-
-=item *
-
-S<Alias:> B<carts>
+I<locale>
 
-=item *
+The locale to use.
 
-Comma-delimited list of names of carts to calculate shipping cost for.
+=over 4
 
 =item *
 
-S<Default:> current cart
+S<Default:> [scratch mv_locale] (see also 'persist' attribute)
 
 =back
-
-=item *
-
-convert
-
-=over 8
-
-=item *
-
-Applies the conversion (if any) set with the PriceDivide catalog
-configuration directive.
 
-=item *
+I<persist>
 
-S<Default:> True
-
-=back
+Setting 'persist=1' also sets the scratch variables, B<mv_locale>
+and B<mv_currency> to specified locale and currency. This makes the
+locale settings persistent for the user's session. Otherwise
+(persist=0), the setlocale tag affects the remainder of the
+current page only.
 
-=item *
+=head2 shipping
 
-noformat
+Returns the cost of shipping the items in the cart via the shipping
+mode set with the B<mode> parameter. See also the I<Shipping> section
+of the Database documentation.
 
-=over 8
+Summary
 
-=item *
+    [shipping mode]
 
-Returns result as a number rather than a string formatted for the
-current locale's currency.
+ Parameters   Description                               Default
+ add          Adds the argument to add as data for a shipping.asc file (in $Vend::Cfg->{ScratchDir}/) and sets it.DEFAULT_VALUE
+ cart         Alias: carts Comma-delimited list of names of carts to calculate shipping cost for.Default: current cartDEFAULT_VALUE
+ carts        Alias for cart                            DEFAULT_VALUE
+ convert      Applies the conversion (if any) set with the PriceDivide catalog configuration directive.Default: TrueDEFAULT_VALUE
+ default      Resets shipping mode to default of [value mv_shipmode]DEFAULT_VALUE
+ file         Filename to read shipping from (default is usual shipping database, e.g., shipping.asc)DEFAULT_VALUE
+ format       Format for results with label attribute.Default: '<OPTION VALUE="%M"%S>%D (%F)'For example,    [shipping mode="FLAT"             label=1            format="My Format Desc %D Price %F"]DEFAULT_VALUE
+ handling     Boolean-- use [value mv_handling] rather than [value mv_shipping] as first default for mode. Note that this attribute matters only if you do not specify the mode in the tag.Note that this is set by the [handling tag (which calls the shipping tag internally).  You should probably use the handling tag rather than setting this directly.Default: FalseDEFAULT_VALUE
+ hide         Suppresses output                         DEFAULT_VALUE
+ label        By default, returns HTML <OPTION ...> widget for shipping mode(s), including description and cost. You can override the widget with the format attribute.  Note that label overrides noformat.Here is an example from the foundation checkout.html page:   [shipping     label=1     mode=|E<lbracket>{{CMD[jump="#data"]data}} table=country key='[default country US]' col=shipmodes]|   ]DEFAULT_VALUE
+ mode         Aliases: name, modes Whitespace, null or comma delimited list of modes for which to calculate shipping cost.  See also mv_shipmode.Default: [value mv_handling] if handling=1 or [value mv_shipmode] or 'default'DEFAULT_VALUE
+ modes        Alias for mode                            DEFAULT_VALUE
+ name         Alias for mode                            DEFAULT_VALUE
+ noformat     Returns result as a number rather than a string formatted for the current locale's currency.Default: TrueDEFAULT_VALUE
+ reset_messageBoolean. Blanks the session's current shipping message (i.e., $Session->{ship_message}).DEFAULT_VALUE
+ reset_modes  Clears list of modes in $Vend::Cfg->{Shipping_line}Default: FalseDEFAULT_VALUE
+ table        Alias: tables Whitespace-delimited list of tables containing shipping data required for perl or query calculations (e.g., in the 'PERL' field of your shipping database - see Shipping). You must specify the tables to get past the Perl 'Safe.pm' proctection. For example, you will get 'Safe' errors if you refer to an SQL table without specifying it here.Default: NoneDEFAULT_VALUE
+ tables       Alias for table                           DEFAULT_VALUE
 
-=item *
+ Attributes                        Default
+ interpolate (reparse)             No
 
-S<Default:> True
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-=back
+B<Tag expansion example:>
 
-=item *
+   [shipping mode]
+---
+   TAGRESULT
 
-handling
+B<ASP-like Perl call:>
 
-=over 8
+   $Tag->shipping(  { mode => VALUE_mode
+}, $body  );
 
-=item *
+or similarly with positional parameters,
 
-Boolean-- use [value mv_handling] rather than [value mv_shipping] as
-first default for B<mode>. Note that this attribute matters only if
-you do not specify the B<mode> in the tag.
+    $Tag->shipping(mode, $attribute_hash_reference, $body);
 
-=item *
+Description
 
-Note that this is set by the [handling tag (which calls the
-shipping tag internally).  You should probably use the handling tag
-rather than setting this directly.
+This tag calculates the shipping cost for items in the current cart
+via the specified shipping mode (usually set in the mv_shipmode
+variable).  See the I<Shipping> section of the Database documentation
+for detail.
 
-=item *
+Rounding
 
-S<Default:> False
+Note that the tag rounds the calculated shipping cost to a
+locale-specific number of fractional digits (e.g., to the nearest
+penny, or 2 digits after the decimal point in the USA).
 
-=back
+I<add>
 
-=item *
+Adds the argument to B<add> as data for a shipping.asc file (in
+$Vend::Cfg->{ScratchDir}/) and sets it.
 
-reset_modes
+I<cart>
 
-=over 8
+=over 4
 
 =item *
 
-Clears list of modes in $Vend::Cfg->{Shipping_line}
+S<Alias:> B<carts> Comma-delimited list of names of carts to calculate
+shipping cost for.
 
 =item *
 
-S<Default:> False
+S<Default:> current cart
 
 =back
 
-=item *
+I<convert>
 
-add
+Applies the conversion (if any) set with the PriceDivide catalog
+configuration directive.
 
-=over 8
+=over 4
 
 =item *
 
-Adds the argument to B<add> as data for a shipping.asc file (in
-$Vend::Cfg->{ScratchDir}/) and sets it.
+S<Default:> True
 
 =back
-
-=item *
 
-file
+I<default>
 
-=over 8
+Resets shipping mode to default of [value mv_shipmode]
 
-=item *
+I<file>
 
 Filename to read shipping from (default is usual shipping database,
 e.g., shipping.asc)
-
-=back
 
-=item *
-
-label
-
-=over 8
-
-=item *
-
-By default, returns HTML <OPTION ...> widget for shipping mode(s),
-including description and cost. You can override the widget with the
-B<format> attribute.  Note that B<label> overrides B<noformat>.
-
-=item *
-
-Here is an example from the foundation checkout.html page:
-
-   [shipping
-
-=back
-
-=back
-     label=1
-     mode=|[data table=country key='[default country US]' col=shipmodes]|
-   ]
-
-=over 4
-
-=item *
-
-format
-
-=over 8
-
-=item *
+I<format>
 
 Format for results with B<label> attribute.
 
+=over 4
+
 =item *
 
 S<Default:> '<OPTION VALUE="%M"%S>%D (%F)'
@@ -8515,103 +9320,119 @@
 
 For example,
 
-=over 12
+    [shipping mode="FLAT"
 
-=item
+=back
+             label=1
+            format="My Format Desc %D Price %F"]
 
-[shipping mode="FLAT"
+I<handling>
 
-=over 16
+Boolean-- use [value mv_handling] rather than [value mv_shipping] as
+first default for B<mode>. Note that this attribute matters only if
+you do not specify the B<mode> in the tag.
 
-=item
+=over 4
+
+=item *
 
-label=1
+Note that this is set by the [handling tag (which calls the
+shipping tag internally).  You should probably use the handling tag
+rather than setting this directly.
 
+=item *
 
-format="My Format Desc %D Price %F"]
+S<Default:> False
 
 =back
 
-=back
+I<hide>
 
-=back
+Suppresses output
 
-=item *
+I<label>
 
-default
+By default, returns HTML <OPTION ...> widget for shipping mode(s),
+including description and cost. You can override the widget with the
+B<format> attribute.  Note that B<label> overrides B<noformat>.
 
-=over 8
+=over 4
 
 =item *
 
-Resets shipping mode to default of [value mv_shipmode]
+Here is an example from the foundation checkout.html page:
+
+   [shipping
 
 =back
+     label=1
+     mode=|E<lbracket>{{CMD[jump="#data"]data}} table=country key='[default country US]' col=shipmodes]|
+   ]
 
-=item *
+I<mode>
 
-hide
+=over 4
 
-=over 8
+=item *
+
+S<Aliases:> B<name>, B<modes> Whitespace, null or comma delimited list
+of modes for which to calculate shipping cost.  See also mv_shipmode.
 
 =item *
 
-Suppresses output
+S<Default:> [value mv_handling] if B<handling=1> or [value
+mv_shipmode] or 'default'
 
 =back
 
-=item *
+I<noformat>
 
-reset_message
+Returns result as a number rather than a string formatted for the
+current locale's currency.
 
-=over 8
+=over 4
 
 =item *
 
-Boolean. Blanks the session's current shipping message (i.e.,
-$Session->{ship_message}).
+S<Default:> True
 
 =back
 
-=back
+I<reset_message>
 
-Must pass named parameter interpolate=1 to cause interpolation.
+Boolean. Blanks the session's current shipping message (i.e.,
+$Session->{ship_message}).
 
-Invalidates cache: B<YES>
+I<reset_modes>
 
-Called Routine:
+Clears list of modes in $Vend::Cfg->{Shipping_line}
 
-B<ASP-like Perl call:>
+=over 4
 
-    $Tag->shipping(
-        {
-         mode => VALUE,
-        }
-    )
+=item *
 
- OR
+S<Default:> False
 
-    $Tag->shipping($mode, $ATTRHASH);
+=back
 
-Attribute aliases
+I<table>
 
-            carts ==> cart
-            modes ==> mode
-            name ==> mode
-            tables ==> table
+=over 4
 
-Description
+=item *
 
-This tag calculates the shipping cost for items in the current cart
-via the specified shipping mode (usually set in the mv_shipmode
-variable).  See the I<Shipping> section of the Database documentation
-for detail.
+S<Alias:> B<tables> Whitespace-delimited list of tables containing
+shipping data required for perl or query calculations (I<e.g.>, in the
+'PERL' field of your shipping database - see I<Shipping>). You must
+specify the tables to get past the Perl 'I<Safe.pm>' proctection. For
+example, you will get 'I<Safe>' errors if you refer to an SQL table
+without specifying it here.
 
-Rounding
+=item *
 
-Note that the tag rounds the calculated shipping cost to a
-locale-specific number of fractional digits (e.g., to the nearest
-penny, or 2 digits after the decimal point in the USA).
+S<Default:> None
+
+=back
 
 =head2 shipping_desc
 
@@ -8679,11 +9500,50 @@
  OR
 
     $Tag->soap($call, $uri, $proxy, $ATTRHASH);
+    [soap call uri proxyother_named_attributes]
+
+ Parameters   Description                               Default
+ call                                                   DEFAULT_VALUE
+ proxy                                                  DEFAULT_VALUE
+ uri                                                    DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [soap call uri proxy]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
 
+   $Tag->soap(  { call => VALUE_call
+                   proxy => VALUE_proxy
+                   uri => VALUE_uri
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->soap(call,uri,proxy, $attribute_hash_reference, $body);
+
 Description
 
 B<NO Description>
 
+I<call>
+
+I<proxy>
+
+I<uri>
+
 =head2 strip
 
 Strips leading and trailing whitespace from the contained body text.
@@ -8742,6 +9602,37 @@
 Attribute aliases
 
             cart ==> name
+    [subtotal name noformat]
+
+ Parameters   Description                               Default
+ cart         Alias for name                            DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
+ noformat                                               DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [subtotal name noformat]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->subtotal(  { name => VALUE_name
+                       noformat => VALUE_noformat
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->subtotal(name,noformat, $attribute_hash_reference, $body);
 
 Description
 
@@ -8756,6 +9647,10 @@
 present and non-zero, the raw number with no currency formatting will
 be given.
 
+I<name>
+
+I<noformat>
+
 =head2 tag
 
 Summary
@@ -8793,7 +9688,40 @@
 Attribute aliases
 
             description ==> arg
+    [tag op argother_named_attributes]
+
+ Parameters   Description                               Default
+ arg                                                    DEFAULT_VALUE
+ description  Alias for arg                             DEFAULT_VALUE
+ op                                                     DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
 
+B<Tag expansion example:>
+
+   [tag op arg]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->tag(  { arg => VALUE_arg
+                  op => VALUE_op
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->tag(op,arg, $attribute_hash_reference, $body);
+
 Description
 
 Performs any of a number of operations, based on the presence of
@@ -8908,6 +9836,10 @@
 
     [tag touch products][/tag]
 
+I<arg>
+
+I<op>
+
 =head2 time
 
 Summary
@@ -8940,6 +9872,36 @@
  OR
 
     $Tag->time($locale, $ATTRHASH, $BODY);
+    [time localeother_named_attributes]
+
+ Parameters   Description                               Default
+ locale                                                 DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [time locale]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->time(  { locale => VALUE_locale
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->time(locale, $attribute_hash_reference, $body);
 
 Description
 
@@ -9041,6 +10003,8 @@
 
 Strips leading zeroes from numbers.
 
+I<locale>
+
 =head2 timed_build
 
 Summary
@@ -9074,7 +10038,37 @@
  OR
 
     $Tag->timed_build($file, $ATTRHASH, $BODY);
+    [timed_build fileother_named_attributes]
+
+ Parameters   Description                               Default
+ file                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [timed_build file]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->timed_build(  { file => VALUE_file
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->timed_build(file, $attribute_hash_reference, $body);
+
 Description
 
 Allows you to build CPU-intensive regions of ITL tags on a timed
@@ -9161,6 +10155,8 @@
 static and the next time a link is made for that page the static
 version will be presented.
 
+I<file>
+
 =head2 tmp
 
 Summary
@@ -9191,6 +10187,35 @@
  OR
 
     $Tag->tmp($name, $BODY);
+    [tmp name]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [tmp name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->tmp(  { name => VALUE_name
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->tmp(name, $attribute_hash_reference, $body);
 
 Description
 
@@ -9205,6 +10230,8 @@
 order profiles or mv_click actions. If you want to avoid that, use
 a profile stored via the catalog.cfg directive OrderProfile.
 
+I<name>
+
 =head2 total_cost
 
 Summary
@@ -9216,33 +10243,68 @@
 Pass attribute hash as last to subroutine: B<no>
 
 Must pass named parameter interpolate=1 to cause interpolation.
+
+Invalidates cache: B<YES>
+
+Called Routine:
+
+B<ASP-like Perl call:>
+
+    $Tag->total_cost(
+        {
+         name => VALUE,
+         noformat => VALUE,
+        }
+    )
+
+ OR
+
+    $Tag->total_cost($name, $noformat);
+
+Attribute aliases
+
+            cart ==> name
+    [total_cost name noformat]
+
+ Parameters   Description                               Default
+ cart         Alias for name                            DEFAULT_VALUE
+ name                                                   DEFAULT_VALUE
+ noformat                                               DEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
 
-Invalidates cache: B<YES>
+B<Tag expansion example:>
 
-Called Routine:
+   [total_cost name noformat]
+---
+   TAGRESULT
 
 B<ASP-like Perl call:>
-
-    $Tag->total_cost(
-        {
-         name => VALUE,
-         noformat => VALUE,
-        }
-    )
-
- OR
 
-    $Tag->total_cost($name, $noformat);
+   $Tag->total_cost(  { name => VALUE_name
+                         noformat => VALUE_noformat
+}, $body  );
 
-Attribute aliases
+or similarly with positional parameters,
 
-            cart ==> name
+    $Tag->total_cost(name,noformat, $attribute_hash_reference, $body);
 
 Description
 
 Expands into the total cost of all the items in the current shopping
 cart, including sales tax (if any).
 
+I<name>
+
+I<noformat>
+
 =head2 tree
 
 Summary
@@ -9282,7 +10344,44 @@
 Attribute aliases
 
             sub ==> subordinate
+    [tree table master subordinate startother_named_attributes]
+
+ Parameters   Description                               Default
+ master                                                 DEFAULT_VALUE
+ start                                                  DEFAULT_VALUE
+ sub          Alias for subordinate                     DEFAULT_VALUE
+ subordinate                                            DEFAULT_VALUE
+ table                                                  DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate                       No
+ reparse                           Yes
+
+ Other_Charactreristics            
+ Invalidates cache                 no
+ Container tag                     Yes
+ Has Subtags                       No
+ Nests                             No
+
+B<Tag expansion example:>
+
+   [tree table master subordinate start]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->tree(  { master => VALUE_master
+                   start => VALUE_start
+                   subordinate => VALUE_subordinate
+                   table => VALUE_table
+}, $body  );
+
+or similarly with positional parameters,
 
+    $Tag->tree(table,master,subordinate,start, $attribute_hash_reference, $body);
+
 Description
 
 Provides iterative list capability for binary trees. It produces
@@ -9329,7 +10428,7 @@
 A multiple of level times the spacing option. Useful for setting width
 of spacer images.
 
-The above sample data would produce:
+The above sample data placed in a table named "tree" would produce:
 
     a           mv_level=0, mv_increment=1, mv_children=4
         b       mv_level=1, mv_increment=1, mv_children=0
@@ -9349,10 +10448,11 @@
 
         <table>
     [tree   start=99
-            master=parent_fld
-            subordinate=child_fld
+            table=tree
+            master=parent
+            subordinate=child
             autodetect=1
-                        spacing=4
+            spacing=4
             full=1]
         <tr>
         <td>
@@ -9361,7 +10461,7 @@
                         return '&nbsp' x [item-param mv_spacing];
                 [/item-calc]
         [/if-item-param]
-        [item-param child_fld]
+        [item-param child]
         </td>
         <td>
                 mv_level=[item-param mv_level],
@@ -9500,6 +10600,14 @@
 in force. For example, you can set a "SELECTED" value on an option
 list with option=1, set the tag prefix with prefix, etc.
 
+I<master>
+
+I<start>
+
+I<subordinate>
+
+I<table>
+
 =head2 try
 
 Allows you to trap errors. Interchange processes the body text of the
@@ -9643,21 +10751,70 @@
 
 Summary
 
-Parameters: B<function>
+    [update function]
+
+ Parameters   Description                               Default
+ function     cartUpates current or named cart (see name attribute)processUpdates an order or a search pagevaluesUpdates user-entered fieldsdataUpdates database, using current mv_ CGI form variables, for example:mv_data_table Table to updatemv_data_key Key into tablemv_data_fields Fields to update (space or null delimited)mv_data_function One of the following:deleteupdateinsertdeleteetc.DEFAULT_VALUE
+ name         Cart name to update (if 'function=cart')Default: current cartDEFAULT_VALUE
+
+ Attributes                        Default
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [update function]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
 
+   $Tag->update(  { function => VALUE_function
+}, $body  );
+
+or similarly with positional parameters,
+
+    $Tag->update(function, $attribute_hash_reference, $body);
+
+Description
+
+Forces an update of the specified interchange function. Function may
+be one of the S<following:>
+
 =over 4
 
 =item *
 
-function
+B<cart> (updates current or named cart)
 
-=over 8
+=item *
+
+B<process> (updates order or search)
+
+=item *
 
+B<values> (updates user-entered fields)
+
+=item *
+
+B<data> (updates database, using current B<mv_> CGI form variables)
+
+=back
+
+I<function>
+
+=over 4
+
 =item *
 
 cart
 
-=over 12
+=over 8
 
 =item *
 
@@ -9669,7 +10826,7 @@
 
 process
 
-=over 12
+=over 8
 
 =item *
 
@@ -9681,7 +10838,7 @@
 
 values
 
-=over 12
+=over 8
 
 =item *
 
@@ -9693,14 +10850,14 @@
 
 data
 
-=over 12
+=over 8
 
 =item *
 
 Updates database, using current B<mv_> CGI form variables, for
 S<example:>
 
-=over 16
+=over 12
 
 =item *
 
@@ -9721,7 +10878,7 @@
 
 B<mv_data_function> One of the S<following:>
 
-=over 20
+=over 16
 
 =item *
 
@@ -9754,65 +10911,16 @@
 =back
 
 =back
-
-=item *
 
-name
-
-=over 8
-
-=item *
+I<name>
 
 Cart name to update (if 'function=cart')
 
-=item *
-
-S<Default:> current cart
-
-=back
-
-=back
-
-Must pass named parameter interpolate=1 to cause interpolation.
-
-Invalidates cache: B<YES>
-
-Called Routine:
-
-B<ASP-like Perl call:>
-
-    $Tag->update(
-        {
-         function => VALUE,
-        }
-    )
-
- OR
-
-    $Tag->update($function, $ATTRHASH);
-
-Description
-
-Forces an update of the specified interchange function. Function may
-be one of the S<following:>
-
 =over 4
 
 =item *
-
-B<cart> (updates current or named cart)
-
-=item *
-
-B<process> (updates order or search)
-
-=item *
-
-B<values> (updates user-entered fields)
-
-=item *
 
-B<data> (updates database, using current B<mv_> CGI form variables)
+S<Default:> current cart
 
 =back
 
@@ -9850,7 +10958,38 @@
 
             name ==> nickname
             table ==> db
+    [userdb functionother_named_attributes]
+
+ Parameters   Description                               Default
+ function                                               DEFAULT_VALUE
+ name         Alias for nickname                        DEFAULT_VALUE
+ table        Alias for db                              DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [userdb function]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->userdb(  { function => VALUE_function
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->userdb(function, $attribute_hash_reference, $body);
+
 Description
 
 Interchange provides a [userdb ...] tag to access the UserDB
@@ -9912,6 +11051,8 @@
     file_acl     Set field for file access control storage (file_acl)
     db_acl       Set field for database access control storage (db_acl)
 
+I<function>
+
 =head2 value
 
 Returns the the current value of the named form input field.
@@ -10049,7 +11190,36 @@
  OR
 
     $Tag->value_extended($name, $ATTRHASH);
+    [value_extended nameother_named_attributes]
+
+ Parameters   Description                               Default
+ name                                                   DEFAULT_VALUE
+
+ Attributes                        Default
+ ATT1                              none
+ interpolate (reparse)             No
+
+ Other_Charactreristics            
+ Invalidates cache                 YES
+ Container tag                     No
+ Has Subtags                       No
+ Nests                             Yes
+
+B<Tag expansion example:>
+
+   [value_extended name]
+---
+   TAGRESULT
+
+B<ASP-like Perl call:>
+
+   $Tag->value_extended(  { name => VALUE_name
+}, $body  );
 
+or similarly with positional parameters,
+
+    $Tag->value_extended(name, $attribute_hash_reference, $body);
+
 Description
 
 Named call example:
@@ -10133,6 +11303,8 @@
 The value that will be returned if a test is false or a file write
 fails. Defaults to the empty string.
 
+I<name>
+
 =head1 User-defined Tags
 
 To define a tag that is catalog-specific, place I<UserTag> directives
@@ -11709,115 +12881,6 @@
 Only used in I<dbdump> mode (dbdump=1). Will skip empty fields if this
 attribute is set true.
 
-Tag Entry Format
-
-=head2 dummy
-
-Alias: B<pedagogy>, B<dummy_alias>
-
-B<Note: >[B<dummy> ...], [B<pedagogy> ...] and [B<dummy-alias> ...]
-are equivalent. If the tag has an endtag, you must not mix aliases
-between the tag and its endtag (i.e., [dummy] ... [/pedagogy] would
-not work).
-
-
-
-A short description of the tag goes here. This example (B<dummy>) is
-not an actual tag.
-
-Summary
-
-    [dummy first second][/dummy]
-    [dummy first=first_args second=second_args other_named_attributes][/dummy]
-
-B<Positional parameters: >The first line shows the usage with
-positional parameters (given in order). The second line shows usage
-with named parameters.
-
-
-
- Parameters   Description                               Default
- first        The first positional parameterSpecial arguments'special_value' - any special arguments to the parameter that cause the tag to behave differently are listed here and described in detail in the Description section below.'pig_latin' - For this dummy tag, let's suppose that an argument of 'pig_latin' rewrites the body text in pig latin.default value if the parameter is not given
- second       Another example parameter                 none
- alias1       alias for first - some parameters have aliases - [dummy alias1="X"] is equivalent to [dummy first="X"]Same default as first, of course
-
- Attributes                        Default
- more                              none
- still-more                        none (requires more)
- other                             none
- interpolate (body)                Yes
- reparse                           No
-
- Other_Characteristics             
- Invalidates cache                 No
- Macro                             No
- Has end tag                       [/dummy]
-
-B<Tag expansion example:>
-
-   [dummy first=pig_latin second="Capitalize"]\
-   Body text acted on by the tag goes here.[/dummy]
-------------------------------------------------------
-   OdyBay ExtTaY ActedAy OnAy YBay EThay AgTay OesGay \
-   EreHay.
-
-B<Reading the tag expansion example: >
-
-=over 4
-
-=item
-
-B<format:> The tag is listed first. A blank line separates it from the
-expanded return value.
-
-B<long lines:> When this document must break a line from an example
-because it is too wide for the page, a trailing backslash indicates
-the continuation. Note that such a trailing backslash is *not* part of
-the actual tag syntax or expansion.
-
-=back
-
-
-
-B<ASP-like Perl call:>
-
-    $Tag->dummy(  { first  => 'goober',
-                    second => 'foobar',
-                    more   => $snafu, },  $body_text  );
-
-
-or similarly,
-
-    $Tag->dummy($first, $second, $attribute_hash_reference, $body_text);
-
-Description
-
-More detailed tag description
-
-first
-
-Section describing the first parameter
-
-I<special_value>
-
-Description of treatment of the special argument. For example, giving
-the I<page> tag an B<href> of 'scan' causes it to link to a search
-specification rather than a page.
-
-I<more>
-
-more is a named attribute that applies to this tag.
-
-I<still-more>
-
-still-more is a named attribute that applies to this tag only when
-the more attribute has been given. It would be an error to use the
-still-more attribute without specifying a value for more
-
-I<other>
-
-'other' is another named attribute that applies to this tag.
-
 Template Parsing Order
 
 Standard Parsing
@@ -12302,10 +13365,7 @@
  mv_begin_string     bs     S      Pattern must match beginning of field
  mv_case             cs     S      Turns on case sensitivity
  mv_cartname                O      Sets the shopping cart name
- mv_cache_params            S      Determines caching of searches
- mv_change_frame            A      Any form, changes frame target of form output
  mv_check                   A      Any form, sets multiple user variables after update
- mv_checkout                O      Sets the checkout page
  mv_click                   A      Any form, sets multiple form variables before update
  mv_click                   XA     Default mv_click routine, click is mv_click_arg
  mv_click name              XA     Routine for a click name, sends click as arg
@@ -12313,7 +13373,6 @@
  mv_coordinate       co     S      Enables field/spec matching coordination
  mv_column_op        op     S      Operation for coordinated search
  mv_credit_card*            O      Discussed in order security (some are read-only)
- mv_delay_page       dp     S      Delay search until after inital page display
  mv_dict_end         de     S      Upper bound for binary search
  mv_dict_fold        df     S      Non-case sensitive binary search
  mv_dict_limit       di     S      Sets upper bound based on character position
@@ -12401,7 +13460,6 @@
  di    mv_dict_limit
  dl    mv_dict_look
  do    mv_dict_order
- dp    mv_delay_page
  dr    mv_record_delim
  em    mv_exact_match
  er    mv_spelling_errors
@@ -12447,4 +13505,9 @@
  to    mv_sort_option
  un    mv_unique
  va    mv_value
+
+ ________________________________________
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
 



2.2.2.1   +6 -5      interchange/pod/ictemplates.pod


rev 2.2.2.1, prev_rev 2.2
Index: ictemplates.pod
===================================================================
RCS file: /var/cvs/interchange/pod/ictemplates.pod,v
retrieving revision 2.2
retrieving revision 2.2.2.1
diff -u -u -r2.2 -r2.2.2.1
--- ictemplates.pod	2001/08/06 23:25:36	2.2
+++ ictemplates.pod	2001/11/21 22:17:02	2.2.2.1
@@ -154,7 +154,7 @@
 
        [loop list="code        field    field2  field3
        k1    A1    A2    A3
-       k2      B1      B2      B3"]
+       k2    B1    B2    B3"]
        [loop-increment][loop-code]
        [/loop]
 
@@ -2838,10 +2838,7 @@
 mv_begin_string      bs  S   Pattern must match beginning of field
 mv_case              cs  S   Turns on case sensitivity
 mv_cartname              O   Sets the shopping cart name
-mv_cache_params          S   Determines caching of searches
-mv_change_frame          A   Any form, changes frame target of form output
 mv_check                 A   Any form, sets multiple user variables after update
-mv_checkout              O   Sets the checkout page
 mv_click                 A   Any form, sets multiple form variables before update
 mv_click                 XA  Default mv_click routine, click is mv_click_arg
 mv_click <name>          XA  Routine for a click <name>, sends click as arg
@@ -2849,7 +2846,6 @@
 mv_coordinate        co  S   Enables field/spec matching coordination
 mv_column_op         op  S   Operation for coordinated search
 mv_credit_card*          O   Discussed in order security (some are read-only)
-mv_delay_page        dp  S   Delay search until after inital page display
 mv_dict_end          de  S   Upper bound for binary search
 mv_dict_fold         df  S   Non-case sensitive binary search
 mv_dict_limit        di  S   Sets upper bound based on character position
@@ -3998,4 +3994,9 @@
 Important note: This information is only read during catalog
 configuration. It is not reasonable to access a database for
 translation or currency conversion in the normal course of events.
+
+ ________________________________________
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
 



2.0.2.1   +14 -1     interchange/pod/icupgrade.pod


rev 2.0.2.1, prev_rev 2.0
Index: icupgrade.pod
===================================================================
RCS file: /var/cvs/interchange/pod/icupgrade.pod,v
retrieving revision 2.0
retrieving revision 2.0.2.1
diff -u -u -r2.0 -r2.0.2.1
--- icupgrade.pod	2001/07/18 02:23:25	2.0
+++ icupgrade.pod	2001/11/21 22:17:02	2.0.2.1
@@ -782,7 +782,9 @@
 comparison of the data fields in the checkout page should be
 performed, adding any custom fields as needed. Custom error checking
 in etc/order.profiles may have to be re-worked, or can be added into
-checkout.html using the in-page order profile capability.
+checkout.html using the in-page order profile capability. (Note that
+etc/order.profiles is called etc/profiles.order in newly-built
+Interchange catalogs.)
 
 Remember to update receipt.html and report/report.html with any custom
 fields, as well.
@@ -1205,6 +1207,17 @@
 In January 2001, Red Hat acquired Akopia and created its new
 E-Business Solutions Division. Interchange development is going
 forward and the user community continues to grow.
+
+=back
+
+ ________________________________________
+
+=over 4
+
+=item
+
+Copyright 2001 Red Hat, Inc. Freely redistributable under terms of the
+GNU General Public License.
 
 =back
 



No                   revision



No                   revision



1.1.2.1   +1576 -0   interchange/pod/Attic/ic_ecommerce.pod


rev 1.1.2.1, prev_rev 1.1



1.1.2.1   +1454 -0   interchange/pod/Attic/ic_howto_cvs.pod


rev 1.1.2.1, prev_rev 1.1



1.1.2.1   +1839 -0   interchange/pod/Attic/icfaq.pod


rev 1.1.2.1, prev_rev 1.1