The [data ...] and [field ...] tags access elements of MiniVend databases. They are the form used outside of the iterating lists, and can be effectively used to do lookups when the table, column/field or key/row is conditional based on a previous operation.
The following are equivalent for attribute names:
table ---> base col ---> field --> column key ---> code --> row
The [field ...] tag is special in that it looks in any of the tables
defined as ProductFiles, in that order, for the data, returning the first non-empty value. In most
catalogs, where ProductFiles is not defined (i.e. the demo), [field title 00-0011]
is equivalent to
[data products title 00-0011]
.
FAQ: Why doesn't [field col=foo key=bar] display something from my table ``category''?
It won't if:
-- "category" is not in the directive ProductFiles -- You have multiple ProductFiles and an earlier one has an entry for that key
[data base="database" field="field" key="key"
value="value" op="increment]
Returns the value of the field in any of the arbitrary databases, or from
the variable namespaces. If the option
increment=1
is present, the field will be atomically incremented with the value in value.
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.
In addition, the [data ...] tag can access a number of elements in the MiniVend session database:
accesses Accesses within the last 30 seconds arg The argument passed in a [page ...] or [area ...] tag browser The user browser string host MiniVend's idea of the host (modified by DomainTail) last_error The last error from the error logging last_url The current MiniVend path_info logged_in Whether the user is logged in via UserDB pageCount Number of unique URLs generated prev_url The previous path_info referer HTTP_REFERER string ship_message The last error messages from shipping source Source of original entry to MiniVend time Time (seconds since Jan 1, 1970) of last access user The REMOTE_USER string username User name logged in as (UserDB)
Databases will hide variables, so don't name a database ``session'', ``scratch'', or any of the other reserved names 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.
[field code="code" name="fieldname"]
Expands into the value of the field name for the product identified by code as found by searching the products database. It will return the first entry
found in the series of Product Files. the products database. If you want to constrain it to a particular
database, use the [data base name code]
tag.