Index  Up  <<  >>  


DATA and FIELD

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 table column key]
named attributes: [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 name code]
named attributes: [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.


Index  Up  <<  >>