SYNOPSISuserdb $function, %options
DESCRIPTIONThe Interchange user database saves information for users, including shipping, billing, and preference information. It allows the user to return to a previous session without the requirement for a ``cookie'' or other persistent session information.
It is object-oriented and called via the [userdb] usertag, which calls the userdb subroutine.
It restores and manipulates the form values normally stored in the user session values --- the ones set in forms and read through the "[value variable]" tags. A special function allows saving of shopping cart contents.
The preference, billing, and shipping information is keyed so that different sets of information may be saved, providing and ``address_book'' function that can save more than one shipping and/or billing address. The set to restore is selected by the form values "s_nickname", "b_nickname", and "p_nickname".
$obj->login(); # Form values are # mv_username, mv_password
$obj->new_account(); # Form values are # mv_username, mv_password, mv_verify
$obj->change_pass(); # Form values are # mv_username, mv_password_old, mv_password, mv_verify(new)
Get, set user information:
$obj->get_values(); $obj->set_values(); $obj->clear_values();
Save, restore filed user information:
$obj->get_shipping(); $obj->set_shipping(); $obj->get_billing(); $obj->set_billing(); $obj->get_preferences(); $obj->set_preferences(); $obj->get_cart(); $obj->set_cart();
Shipping Address BookThe shipping address book saves information relevant to shipping the order. In its simplest form, this can be the only address book needed. By default these form values are included:
s_nickname name address city state zip country phone_day mv_shipmode
The values are saved with the $obj->set_shipping() method and restored with $obj->get_shipping. A list of the keys available is kept in the form value "address_book", suitable for iteration in an HTML select box or in a set of links.
Accounts BookThe accounts book saves information relevant to billing the order. By default these form values are included:
b_nickname b_name b_address b_city b_state b_zip b_country b_phone mv_credit_card_type mv_credit_card_exp_month mv_credit_card_exp_year mv_credit_card_reference
The values are saved with the $obj->set_billing() method and restored with $obj->get_billing. A list of the keys available is kept in the form value "accounts", suitable for iteration in an HTML select box or in a set of links.
PreferencesPreferences are miscellaneous session information. They include by default the fields "email", "fax", "phone_night", and "fax_order". The field "p_nickname" acts as a key to select the preference set.
LocationsThere are several database locations that have special purposes. These fields are not saved as user values.
- USERNAME default: username
The username or key field of the database table.
- BILLING default: accounts
Billing address hash field.
- SHIPPING default: address_book
Shipping address hash field.
- PREFERENCES default: preferences
Miscellaneous information hash field.
- FEEDBACK default: feedback
Customer feedback hash field.
- PRICING default: price_level
Customer pricing level marker.
- CARTS default: carts
Saved carts hash field.
- PASSWORD default: password
Customer password info. If "crypt" is set, may be encrypted.
- LAST default: mod_time
Last login time
- EXPIRATION default: expiration
Expiration of account.
- OUTBOARD_KEY default: (none)
Key information for linking to another table of address or other info.
- GROUPS default: groups
Groups they should be logged into.
- SUPER default: super
Whether they are a superuser (admin).
- ACL default: acl
- FILE_ACL default: file_acl
- DB_ACL default: db_acl
Location of access control information.
- CREATED_DATE_ISO default: (none)
- CREATED_DATE_UNIX default: (none)
- UPDATED_DATE_ISO default: (none)
- UPDATED_DATE_UNIX default: (none)
- MERGED_USER default: (none)
The user id of another account this was merged into. If present, and data (should be a valid user id) is present in the field, the user will be logged as that username.