TAG -- the catch all

### Index Up << >>

## TAG -- the catch all

Many MiniVend functions can be controlled or specified with `[tag ...][/tag]` pairs.

Named syntax:

        [tag op=operation arg="arg1 arg2 ..."]other[/tag]

[tag arg* arg*]text[/tag]
  Performs any of a number of operations, based on the presence of `arg`. The arguments that may be given are:

each database
  Returns a loop-list with every key in database evaluated as the `[loop-code]`. This will return the key and field name for every record in the products database:

          [tag each products][loop-code]  [loop-field name]<BR>[/tag]

export database file* type*
  Exports a complete MiniVend database to its text source file (or any specified file). The integer `n`, if specified, will select export in one of the enumerated MiniVend export formats. The following tag will export the products database to products.txt (or whatever you have defined its source file as), in the format specified by the Database directive:

          [tag export products][/tag]

  Same thing, except to the file products/new_products.txt:

          [tag export products products/newproducts.txt][/tag]

  Same thing, except the export is done with a PIPE delimiter:

          [tag export products products/newproducts.txt 5][/tag]

  The file is relative to the catalog directory, and only may be an absolute path name if NoAbsolute is set to `No`.

flag arg
  Sets a MiniVend condition.

  The following enables writes on the products and `sizes` databases held in MiniVend internal DBM format:

          [tag flag write]products sizes[/tag]

  SQL databases are always writable if allowed by the SQL database itself -- in-memory databases will never be written.

  The `[tag flag build][/tag]` combination forces static build of a page, even if dynamic elements are contained. Similarly, the `[tag flag cache][/tag]` forces search or page caching (not usually wise).

log dir/file
  Logs a message to a file, fully interpolated for MiniVend tags. The following tag will send every item code and description in the user's shopping cart to the file logs/transactions.txt:

          [tag log logs/transactions.txt]
          [item_list][item-code]  [item-description]
          [/item_list][/tag]

  The file is relative to the catalog directory, and only may be an absolute path name if NoAbsolute is set to `No`.

mime description_string
  Returns a MIME-encapsulated message with the boundary as employed in the other mime tags, and the `description_string` used as the Content-Description. For example

         [tag mime My Plain Text]Your message here.[/tag]

  will return

        Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
        Content-ID: [sequential, lead as in mime boundary]
        Content-Description: My Plain Text

        Your message here.

  `When used in concert with [tag mime boundary]<CODE></CODE>, [tag mime header]`, and `[tag mime id]`, allows MIME attachments to be included -- typically with PGP-encrypted credit card numbers. See the demo page ord/report.html for an example.

mime boundary
  Returns a MIME message boundary with unique string keyed on session ID, page count, and time.

mime header
  Returns a MIME message header with the proper boundary for that session ID, page count, and time.

mime id
  Returns a MIME message id with the proper boundary for that session ID, page count, and time.

time
  Formats the current time according to POSIX strftime arguments. The following is the string for Wednesday, September 1, 1999.

          [tag op=time]%A, %B %d, %Y[/tag]

  Options =item touch

  Touches a database to allow use of the `tag_data()` routine in user-defined subroutines. If this is not done, the routine will error out if the database has not previously been accessed on the page.

          [tag touch products][/tag]

### Index Up << >>