MiniVend Akopia Services

[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date ][Minivend by thread ]

Problem report



#### Description of problem




#### Perl version
Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration:
  Platform:
    osname=linux, osvers=2.0.36, archname=i586-linux
    uname='linux einstein 2.0.36 #2 mon jan 18 10:26:09 met 1999 i686 unknown '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O2 -pipe', gccversion=egcs-2.91.60 19981201 (egcs-1.1.1 release)
    cppflags='-Dbool=char -DHAS_BOOL -I/usr/local/include'
    ccflags ='-Dbool=char -DHAS_BOOL -I/usr/local/include'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt
    libc=, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Built under linux
  Compiled at Jan 20 1999 04:07:45
  @INC:
    /usr/lib/perl5/5.00502/i586-linux
    /usr/lib/perl5/5.00502
    /usr/lib/perl5/site_perl/5.005/i586-linux
    /usr/lib/perl5/site_perl/5.005
    .

#### OS version
Linux 7of9 2.0.36 #2 Mon May 10 14:09:55 MEST 1999 i686 unknown

#### Main server config
Catalog       flycat /home/mhuelsmann/catalogs/flycat /flycat.cgi /flycat
Catalog       simple /home/mhuelsmann/minivend /simple.cgi /simple
Variable   MV_NO_CRYPT   1
AdminUser  minivend:nevairbe
AllowGlobal _mv_admin
GlobalSub sub test_global_sub { return 'Test of global subroutine OK.' }
HouseKeeping 5
MaxServers 5
PIDcheck  300
TcpMap  7786 -
TolerateGet  Yes
Variable TEST_VARIABLE Test of global variable OK.
UserTag loc hasEndTag   1
UserTag loc Interpolate 1
UserTag loc Order locale
UserTag loc Routine <<EOF
sub {
    my ($locale, $message) = @_;
    return $message unless $Vend::Cfg->{Locale};
    my $ref;
    if($locale) {
        return $message
            unless defined $Vend::Cfg->{Locale_repository}{$locale};
        $ref = $Vend::Cfg->{Locale_repository}{$locale}
    }
    else {
        $ref = $Vend::Cfg->{Locale};
    }
    return defined $ref->{$message} ? $ref->{$message} : $message;
EOF
UserTag var Interpolate 1
UserTag var PosNumber 2
UserTag var Order name global
UserTag var Routine <<EOF
sub {
    $_[1] and return $Global::Variable->{shift @_};
    return $Vend::Cfg->{Variable}{shift @_};
EOF
UserTag summary Order amount name currency format total reset hide
UserTag summary PosNumber 6
UserTag summary Routine <<EOF
use vars qw/%summary_hash/;
sub {
    my ($amount, $name, $currency, $format, $total, $reset, $hide) = @_;
	unless ($name) {
		$name = 'ONLY0000';
		%summary_hash = () if Vend::Util::is_yes($reset);
	else {
		$summary_hash{$name} = 0 if Vend::Util::is_yes($reset);
	$summary_hash{$name} += $amount if length $amount;
	$amount = $summary_hash{$name} if Vend::Util::is_yes($total);
	return '' if defined $hide && Vend::Util::is_yes($hide);
	return sprintf $format, $amount if $format;
    return Vend::Util::currency($amount) if $currency;
    return $amount;
EOF
UserTag  db-date  Order table format
UserTag  db-date  PosNumber 2
UserTag  db-date  Routine <<EOF
sub {
    my ($format, $db) = @_;
    $format = '%A %d %b %Y';
	$db = 'products' unless $db;
    my $mtime = (stat($Vend::Cfg->{Database}{'file'}))[9];
    return POSIX::strftime($format, localtime($mtime));
EOF
UserTag  db-count  Order table
UserTag  db-count  PosNumber 1
UserTag  db-count  Routine <<EOF
sub {
    my ($db) = @_;
    $db = 'products' unless $db;
    my $ref = Vend::Data::database_exists_ref($db)
        or return "Bad table $db";
    $ref = $ref->ref();
    my $count;
    while ($ref->each_record()) {
        $count++;
    }
    return $count;
EOF
UserTag bar-button Order page current
UserTag bar-button PosNumber 2
UserTag bar-button HasEndTag 1
UserTag bar-button Routine   <<EOR
sub {
	use strict;
	my ($page, $current, $html) = @_;
	$current = $Global::Variable->{MV_PAGE}
		if ! $current;
	$html =~ s:\[selected\]([\000-\377]*)\[/selected]::i;
	my $alt = $1;
	return $html if $page ne $current;
	return $alt;
EOR

#### Catalog config differences
1,1533c1,1536
< # Define the site-specific information
< #
< Variable    SERVER_NAME     __MVC_SERVERNAME__
< Variable    CGI_URL         __MVC_CGIURL__
< Variable    SECURE_SERVER   http://__MVC_SERVERNAME__
< Variable    ORDERS_TO       __MVC_MAILORDERTO__
< Variable    IMAGE_DIR       __MVC_IMAGEURL__
< Variable    DOCROOT         __MVC_DOCUMENTROOT__
< Variable    SAMPLEHTML      __MVC_SAMPLEHTML__
< Variable    SAMPLEURL       __MVC_SAMPLEURL__
< 
< Variable    COMPANY         __MVC_COMPANY__
< Variable    ADDRESS         __MVC_ADDRESS__
< Variable    CITY            __MVC_CITY__
< Variable    PHONE           __MVC_PHONE__
< Variable    TOLLFREE        __MVC_TOLLFREE__
< Variable    FAX             __MVC_FAX__
< Variable    LOGO            __MVC_LOGO__
< Variable    SMLOGO          __MVC_SMLOGO__
< Variable    HEADERBG        __MVC_HEADERBG__
< Variable    TABLEFG         __MVC_TABLEFG__
< Variable    HEADERTEXT      __MVC_HEADERTEXT__
< Variable    BARBG           __MVC_BARBG__
< Variable    BARTEXT         __MVC_BARTEXT__
< Variable    BGIMAGE         __MVC_BGIMAGE__
< Variable    BGCOLOR         __MVC_BGCOLOR__
< Variable    ENCRYPTOR       __MVC_ENCRYPTOR__
< Variable    TAXAREA         __MVC_TAXAREA__
< Variable    TAXRATE         __MVC_TAXRATE__
< Variable    TAXSHIPPING     __MVC_TAXSHIPPING__
< 
< ## END SITE CONFIGURATION
< 
< # Used to enable order query security
< Variable      MV_USERDB_ACL_TABLE  userdb
< Variable      MV_USERDB_ACL_COLUMN acl
< 
< ## Whether to NOT encrypt passwords
< Variable      MV_NO_CRYPT      __MVC_NOCRYPT__
< 
< ## Set some menubars and headers
< ConfigDir pages
< Variable      LEFTSIDE   <leftside
< Variable      RIGHTSIDE  <rightside
< Variable      NO_RIGHT   <no_right
< Variable      MENUBAR    <menubar
< Variable      MENUBOTTOM <menubottom
< Variable      LOGOBAR    <logobar
< Variable      COPYRIGHT  <copyright
< ConfigDir config
< 
< ## Set these to enable CyberCash
< 
< # These are usually all you need for CyberCash 3
< # Edit to suit
< #
< #Variable     CYBER_CONFIGFILE    /home/you/mck-kit/yourid75/mck-cgi/merchant_conf
< #Variable     CYBER_VERSION       3.2
< 
< # Use these instead for CyberCash 2
< # Edit to suit
< #
< #Variable     CYBER_PORT          8000
< #Variable     CYBER_HOST          localhost
< #Variable     CYBER_SECRET        test-secret-fdc
< #Variable     CYBER_MODE          mauthonly
< #Variable     CYBER_CURRENCY      usd
< #Variable     CYBER_PRECISION     2
< 
< ########################## TURN ON PARSING
< # Allow substitution of site-specific information
< ########################## 
< 
< ParseVariables  Yes
< 
< ###
< ###   These first three required for the catalog to run at all
< ###
< 
< ########### MailOrderTo
< ##
< ## Default: UNDEFINED
< #
< # This MUST be defined, or the catalog will not load.
< # The address to mail orders to.
< #
< MailOrderTo             __ORDERS_TO__
< 
< 
< ########### VendURL
< ##
< ## Default: UNDEFINED
< #
< # The URL that calls the main MiniVend dispatch program. Must
< # be defined.  This will be suggested as the name to move the
< # compiled dispatch program to. It should look something like:
< #
< #         http://YOUR_SERVER_NAME/cgi-bin/vlink
< #
< VendURL                 http://__SERVER_NAME____CGI_URL__
< 
< 
< ########### SecureURL
< ##
< ## Default: blank
< #
< # If you are using an SSL or Secure HTTP server, this is the URL
< # which will be used for processing orders securely.  For SSL, it
< # is usually the same URL as normal, except that it uses
< # 'https' instead of 'http'. Add the 'https' if you have a
< # secure server.
< #
< SecureURL               __SECURE_SERVER____CGI_URL__
< 
< ###
< ###   The following few directives should be defined
< ###   first in the file, as some other directives in the
< ###   configuration depend on their value.
< ###
< ###   The defaults work for most installations.
< ###
< 
< 
< ########### PageDir
< ##
< ## Default: pages
< #
< # The subdirectory of VendRoot where the actual MiniVend pages
< # reside.
< #
< # PageDir
< 
< 
< ########### ProductDir
< ##
< ## Default: products
< #
< # The location of the product database files.
< #
< # ProductDir
< 
< 
< ########### DataDir
< ##
< ## Default: products
< #
< # The location of the extra database files.
< #
< # DataDir
< 
< 
< ###
< ###   The remaining directives can be defined in any
< ###   order, providing the ones above have been set first
< ###
< 
< 
< ########### Database
< ##
< ## Default: products products.asc 1
< #
< # Definition of an arbitrary database, in the form
< # "Database database file type", where "file" is the name of an
< # ASCII file in the same format as the products database.  The
< # file is relative to VendRoot, and is put in DataDir if no
< # path is provided.  Records can be accessed with the
< # [data database field key] tag.
< #
< 
< Database            products     products.asc      TAB
< Database            products     INDEX             category
< Database            pricing      pricing.asc       TAB
< Database            transactions transactions.txt  TAB
< Database            userdb       userdb.asc        TAB
< Database            country      country.asc       TAB
< Database            locale       locale.asc        TAB
< Database            Ground       Ground.csv        CSV
< Database            2ndDayAir    2ndDayAir.csv     CSV
< Database            NextDayAir   NextDayAir.csv    CSV
< 
< # Here are some sample product database definitions for various SQL 
< # database types. These might even work for you if the SQL package
< # in question has an existing data source with that name -- these
< # may be the defaults in the distributed packages.
< #
< # For mSQL to work you would do:  msqladmin create minivend
< #
< # For mysql to work you would do: mysqladmin create minivend
< #
< #Database            products products.asc dbi:mysql:minivend:localhost:3333
< #Database            products products.asc dbi:mSQL:minivend:localhost:1114
< #Database            products products.asc dbi:ODBC:TCP/IP localhost 1313
< #Database            products products.asc dbi:Solid:TCP/IP localhost 1313
< 
< ### Needed for Oracle, Solid and some others
< #Database            products ChopBlanks   1
< 
< ### Needed for Oracle and some others
< #Database            products UPPERCASE    1
< 
< # Change some data type definitions
< #Database            products COLUMN_DEF   code=char(20), nontaxable=char(4)
< #Database            products COLUMN_DEF   price=char(20)
< #Database            products COLUMN_DEF   title=char(64)
< 
< # Set some other parameters
< #Database            products DELIMITER    TAB
< #Database            products LongReadLen  128
< 
< # Not needed unless your database requires a login
< #Database            products USER   you
< #Database            products PASS   XXXXXX
< 
< # More database settings are discussed in the documentation.
< 
< 
< ########### ActionMap
< ##
< ## Default: blank
< #
< # Allows setting of button actions for particular names.  The
< # predefined names are listed in the documentation, and would be
< # overwritten if re-defined.
< #
< # Can be set as many times as necessary. Not case sensitive.
< #
< ActionMap            refresh change
< ActionMap            refresh validate
< ActionMap            cancel erase
< ActionMap            submit next
< ActionMap            control color
< 
< 
< ########### AdminDatabase
< ##
< ## Default: blank
< #
< # When set to one or more MiniVend database identifiers, any pages using data
< # items from the specified database(s) will not be allowed for display unless
< # the user the catalog operator -- i.e. is authenticated by one of Password ,
< # MasterHost , or RemoteUser . The special page 'violation' will be displayed
< # if another user attempts to access a page containing elements from the
< # database(s).   
< #
< # AdminDatabase   inventory
< 
< 
< ########### AdminPage 
< ##
< ## Default: blank
< #
< # When set to one or more MiniVend page names, pages with that name will not be
< # allowed for display unless the user the catalog operator -- i.e. is
< # authenticated by one of Password , MasterHost , or RemoteUser . The special
< # page 'violation' will be displayed if another user attempts to access the
< # page(s). 
< #
< # AdminPage       config/menu
< 
< 
< ########### AlwaysSecure
< ##
< ## Default: blank
< #
< # Determines whether checkout page operations should always be
< # secure.  Set it to the name of pages that should always be secure,
< # separated by spaces and/or tabs.
< #
< AlwaysSecure         ord/checkout
< 
< 
< ########### AsciiBackend
< ##
< ## Default: blank
< #
< # A file name to log order fields in (set by BackendOrder).
< # Unless preceded by a leading '/', will be placed relative to VendRoot.
< # If the first character is a '|', it is the name of a program to send the
< # fields to.
< #
< # AsciiBackend         etc/backend.asc
< 
< 
< ########### AsciiTrack
< ##
< ## Default: blank
< #
< # A file name to log formatted orders in. Unless preceded by a leading '/',
< # will be placed relative to VendRoot.
< #
< AsciiTrack           etc/tracking.asc
< 
< 
< ########### BackendOrder
< ##
< ## Default: blank
< #
< # Controls the fields that are prepended to the item codes and quantities
< # for the backend ordering capability.  These are the values from the
< # user form in 'order.html'.  You can access any value in that
< # hash. If blank, no backend ordering is in force.
< #
< #
< # BackendOrder name,company,address,city,state,zip,country,account,mv_shipmode
< 
< 
< ########### ButtonBars
< ##
< ## Default: blank
< #
< # Button bars 0 to 15, specified with a Vend-style filename, i.e. no
< # .html suffix, (even though the file will have one), relative
< # to the MiniVend page directory. Called by the [buttonbar n] tag,
< # numbers start from 0.
< #
< ButtonBars           buttonbar
< 
< 
< ########### CheckoutFrame
< ##
< ## Default: blank
< #
< # The frame name where the checkout page will go, if frames are
< # enabled.
< #
< # CheckoutFrame
< 
< 
< ########### CheckoutPage
< ##
< ## Default: order
< #
< # The name of the default page to send the user to when the [finish-order]
< # tag is used.
< #
< CheckoutPage         ord/basket
< 
< 
< ########### ClearCache
< ##
< ## Default: No
< #
< # The name of the default page to send the user to when the [finish-order]
< # tag is used.
< #
< # A yes/no directive. When set to yes, each time the catalog is reconfigured or
< # the MiniVend server is restarted the page and search caches will be cleared.
< #
< ClearCache  Yes
< 
< 
< ########### CollectData
< ##
< ## Default: blank
< #
< # The points at which to log various data items collected by MiniVend,
< # such as failed or successful searches.  This allows you to find out what
< # your customers are searching for and NOT finding -- perhaps you want to
< # add it, or change your product description to match.
< #
< # The choices to enter are:
< #
< #   matched    Search strings that match
< #   nomatch    Search strings that fail to match
< #   page       Pages that are accessed
< #   nopage     Pages that are not found
< #   order      Various data about ordered items
< #
< # Enter as a space or comma-separated list, i.e.
< #
< # CollectData    matched,nomatch,page
< 
< 
< ########### CommonAdjust
< ##
< ## Default: blank
< #
< # Part of the price adjustment scheme -- see the documentation.
< #
< CommonAdjust   pricing:q2,q5,q10,q25,q100, ;products:price, ==color:pricing, ==size:pricing
< 
< 
< ########### ConfigDir
< ##
< ## Default: config
< #
< # The default directory where directive values will be read from when using the
< # <file notation. The name is relative to the catalog directory unless preceded
< # by a /.
< #
< # ConfigDir      variables
< 
< 
< ########### CookieDomain
< ##
< ## Default: blank
< #
< #  Allows you to set a domain so that two servers can handle traffic.  It must
< #  have at least two periods or browsers will ignore it. 
< #
< #  CookieDomain   __SERVER_NAME__
< 
< 
< ########### CookieLogin
< ##
< ## Default: No
< #
< #  Allows users to save their username/password (for Vend::UserDB)
< #  in a cookie. Expireation set by SaveExpire, renewed every time
< #  they log in.
< #
< CookieLogin  Yes
< 
< 
< ########### Cookies
< ##
< ## Default: Yes
< #
< # Determines whether we will send (and read back) a cookie to
< # get the session ID for links that go outside the catalog.
< #
< # Cookies No
< 
< 
< ########### CreditCardAuto
< ##
< ## Default: No
< #
< # Enter 'Yes' if you wish to enable MiniVend's encrypted credit card
< # handling. This whatever is in EncryptProgram (preferably PGP) to encrypt
< # credit card information according to a standard scheme.  See the
< # documentation for more information.
< #
< #
< CreditCardAuto      Yes
< 
< 
< ########### CustomShipping
< ##
< ## Default: blank
< #
< # The default database column which is the key to the custom shipping
< # calculation. If left blank, no custom shipping calculation is done.
< #
< CustomShipping       Yes
< 
< 
< ########### CyberCash
< ##
< ## Default: No
< # 
< # Enables CyberCash processing. Mutually exclusive with
< # CreditCardAuto.
< #
< # CyberCash          Yes
< 
< 
< ########### DefaultShipping
< ##
< ## Default: default
< #
< # Sets the initial shipping mode.
< #
< DefaultShipping      0
< 
< 
< ########### Delimiter
< ##
< ## Default: TAB
< #
< # One of TAB, PIPE, CSV, or your own custom delimiter. (It is not
< # suggested that you use a custom delimiter). TAB means a tab-delimited
< # database by default, PIPE a pipe-delimited one, and CSV a quote-comma
< # format. TAB is STRONGLY recommended, as it makes search definitions
< # much easier.
< #
< # Delimiter
< 
< 
< ########### DescriptionField
< ##
< ## Default: description
< #
< # The field that will be accessed with the [item-description] element.
< #
< # DescriptionField  short_desc
< 
< 
< ########### DisplayErrors
< ##
< ## Default: No
< #
< # If the administrator has enabled DisplayErrors globally, then setting this to
< # "Yes" will display the error returned from MiniVend in case something is wrong
< # with embedded Perl programs, tags, or (horrors!) MiniVend itself.  Usually you
< # will only want to use this during development or debugging.
< #
< # DisplayErrors     Yes
< 
< 
< ########### DynamicData
< ##
< ## Default: blank
< #
< # When set to one or more MiniVend database identifiers, any pages using data
< # items from the specified database(s) will not be cached or built statically.
< #
< # DynamicData         inventory
< 
< 
< ########### EncryptProgram
< ##
< ## Default: blank
< #
< # The fully-qualified path name of a program which will encrypt
< # a credit card number for storage in the session database. The parameters
< # %p and %f are substituted with the password and temporary file name
< # to use, respectively.
< #
< #  !!!!PLEASE EDIT THIS!!!!
< #
< # The cat program is used for demonstration purposes -- you should
< # use PGP instead.
< #
< #       EncryptProgram  /usr/local/bin/pgp -feat __ORDERS_TO__ 2>/dev/null
< #
< EncryptProgram  __ENCRYPTOR__
< 
< 
< ########### ExtraSecure
< ##
< ## Default: No
< #
< # Disallows access to pages which are marked with AlwaysSecure unless the
< # browser is in HTTPS mode. A yes/no directive -- default is 'No'.
< #
< # ExtraSecure  Yes 
< 
< 
< ########### FieldDelimiter
< ##
< ## Default: 
< #
< # In conjunction with RecordDelimiter, allows custom database formats to be
< # defined. See the documentation for use of this advanced feature.
< 
< 
< ########### FinishOrder
< ##
< ## Default: Finish Incomplete Order
< #
< # The value that will be used as the anchor text for the
< # [finish-order] tag. Can be text or an image -- any legal
< # HTML. This is deprecated -- we suggest [if items][page ord/basket]...[/if]
< # instead.
< #
< # FinishOrder          <IMG SRC="contents.gif">
< #
< 
< ########### FormIgnore
< ##
< ## Default: blank
< #
< # Set to the name(s) of variables that should not be carried in the user
< # session values. Must match exactly and are case sensitive.
< #
< # FormIgnore    mv_searchtype
<  
< 
< ########### FractionalItems
< ##
< ## Default: no
< #
< # Whether items in the shopping cart should be allowed to be
< # fractional, i.e. 2.5 or 1.25.
< #
< # FractionalItems
< 
< 
< ########### FrameFlyPage
< ##
< ## Default: blank
< #
< # The MiniVend-style page name (i.e. no .html extension, relative to
< # PageDir) which contains the special on-the-fly page for when frames are in
< # use. If not set (the default), the standard flypage will be used.
< #
< # FrameFlyPage      frame_flypage
< 
< 
< ########### FrameLinkDir
< ##
< ## Default: blank
< #
< # The relative directory where on-the-fly pages will be sent during static page
< # builds -- it is relative to StaticDir. Default is 'framefly'.
< #
< # FrameLinkDir      fr_fly
< 
< 
< ########### FrameOrderPage
< ##
< ## Default: blank
< #
< # The special page to use instead of 'order.html' for the order
< # page.  This allows you to put the item-list in a separate window/frame
< # from the name/address/account information.
< #
< # FrameOrderPage
< 
< 
< ########### FrameSearchPage
< ##
< ## Default: blank
< #
< # The special page to use instead of 'search.html' for the search
< # page.  This allows you to define separate windows for frame and
< # non-frame browsers.
< #
< # FrameSearchPage
< 
< 
< ########### FramesDefault
< ##
< ## Default: no
< # 
< # Whether the first access by a user will place them in frames mode.
< # 
< # FramesDefault
< 
< 
< ########### Glimpse
< ##
< ## Default: glimpse
< #
< # Controls the location of the external glimpse search engine,
< # and whether Glimpse will be used.  Set to the path of your
< # Glimpse program.  If you want special options, see the
< # documentaton on the search engine.
< #
< # Glimpse  /usr/local/bin/glimpse
< 
< 
< ########### Help
< ##
< ## Default: blank
< #
< # Files with help/macro items, specified with a Vend-style filename,
< # i.e. no .html suffix, (even though the file will have one),
< # relative to the MiniVend page directory. Help items are
< # keyed by name.  Called by the [help item] tag.
< #
< Help                    hintfile
< 
< 
< ########### ImageAlias
< ##
< ## Default: blank
< #
< # Aliases for images, ala Apache/NCSA ScriptAlias and Alias directives. 
< # Relocates images based in a particular directory to another for MiniVend use
< # -- operates *after* ImageDir. Useful for editing MiniVend pages with an HTML
< # editor.
< #
< # ImageAlias  /images/  /thiscatalog/images/
< 
< 
< ########### ImageDir
< ##
< ## Default: blank
< #
< # Where the images are, relative to HTTP server DocumentRoot.
< # This allows images to be referenced in a relative fashion
< # and translated by MiniVend.  Useful for multi-catalog setups
< # using common pages.  MUST HAVE A TRAILING SLASH.
< #
< ImageDir                __IMAGE_DIR__/
< 
< 
< ########### ImageDirInternal
< ##
< ## Default: blank
< #
< # Where the images are, relative to HTTP server DocumentRoot.
< # This allows images to be referenced in a relative fashion
< # and translated by MiniVend.  Useful for multi-catalog setups
< # using common pages.  MUST HAVE A TRAILING SLASH.
< #
< ImageDirInternal        http://__SERVER_NAME____IMAGE_DIR__/
< 
< 
< ########### ImageDirSecure
< ##
< ## Default: blank
< #
< # Where the images are for secure pages only.
< # MUST HAVE A TRAILING SLASH.
< #
< # ImageDirSecure        __SECURE_SERVER____IMAGE_DIR__/
< 
< 
< ########### Locale
< ##
< ## Default: none (U.S.)
< #
< # Sets the special locale array. See the documentation. The below
< # definition will cause monetary value of 3,400.00 in U.S. notation
< # to be displayed as 3.400,00. To remove the decimal places, make
< # frac_digits '0'.
< # 
< # Locale en_US mon_decimal_point .
< # Locale en_US mon_thousands_sep ,
< # Locale en_US frac_digits 2
< # Locale en_US currency_symbol $
< # Locale en_US p_cs_precedes 1
< 
< ########### LocaleDatabase
< ##
< ## Default: none
< #
< # Sets a database that will be used as the basis for the Locale
< # settings. The columns are the locales, the rows the keys.
< #
< LocaleDatabase  locale
< 
< 
< ########### LogFile
< ##
< ## Default: etc/log
< #
< # The file where global data collected (set by CollectData) is logged.
< #
< # LogFile
< 
< 
< ########### MasterHost
< ##
< ## Default: blank
< #
< # The IP address that can reconfigure this server (if the reconfigure
< # program is served that way). Default is blank, disabling remote
< # check of IP address.
< #
< # MasterHost
< 
< 
< ########### MixMatch
< ##
< ## Default: No
< #
< # Sets whether quantity price breaks will be on TOTAL quantity or
< # per-item quantity. Default is no mix and match, pricing is on
< # a per-item basis.
< #
< # MixMatch
< 
< 
< ########### Mv_Background
< ##
< ## Default: blank
< #
< # Background patterns, 1 through 15.  Start with a BEGIN,
< # then define up to 15 backgrounds for the 15 schemes.
< #
< Mv_Background BEGIN __BGIMAGE__
< 
< ########################## Turn off parsing
< 
< ########### Mv_BgColor
< ##
< ## Default: blank
< #
< # Background colors, 1 through 15.  Start with a BEGIN tag,
< # then define up to 15 colors for the 15 schemes.  Enter
< # 'none' for the default.
< #
< Mv_BgColor           BEGIN __BGCOLOR__
< 
< ParseVariables  No
< 
< 
< ########### Mv_LinkColor
< ##
< ## Default: blank
< #
< # Link colors, 1 through 15.  Start with a BEGIN tag, then
< # define up to 15 colors for the 15 schemes.  Enter 'none' for
< # the default.
< #
< Mv_LinkColor         BEGIN none white black ltgreen
< 
< 
< ########### Mv_TextColor
< ##
< ## Default: blank
< #
< # Text colors, 1 through 15.  Start with a BEGIN tag, then
< # define up to 15 colors for the 15 schemes.  Enter 'none' for
< # the default.
< #
< Mv_TextColor         BEGIN none ltgreen blue none
< 
< 
< ########### Mv_VlinkColor
< ##
< ## Default: blank
< #
< # Visited link colors, 1 through 15.  Start with a BEGIN tag, then
< # define up to 15 colors for the 15 schemes.  Enter 'none' for
< # the default.
< #
< Mv_VlinkColor        BEGIN none orange purple ltgreen
< 
< 
< ########### Mv_AlinkColor
< ##
< ## Default: blank
< #
< # ALINK colors, 1 through 15.  Start with a BEGIN tag, then
< # define up to 15 colors for the 15 schemes.  Enter 'none' for
< # the default.
< #
< Mv_AlinkColor        BEGIN none brown brown brown
< 
< ########### NewEscape
< ##
< ## Default: No
< #
< # A yes/no directive. When set to Yes, it disallows the old-style
< # period escaping of one-click search spec strings, and allows
< # HTTP-style escaping of passed arguments (the [page name arg]
< # tag, among others). 
< #
< NewEscape  Yes
< 
< 
< ########### NewReport
< ##
< ## Default: Yes
< #
< # When set to No, it allows the old-style $variable interpolation on
< # MiniVend order reports.  The default prevents clashes with embedded Perl
< # code.
< #
< # NewReport  No
< 
< 
< ########### NewTags
< ##
< ## Default: No
< #
< # When set to Yes, it defaults all pages to using the new
< # page syntax. This can be counteracted with an [old] tag at the
< #
< NewTags    Yes
< 
< 
< ########### NoCache
< ##
< ## Default: blank
< # 
< # The names of MiniVend pages that are not to be cached (if I<Page Cache> is
< # being used) or built statically (if I<STATIC PAGE BUILDING> is in use).  If
< # the name is a directory, then no pages in that directory (or any below it) be
< # cached or built statically.
< #
< NoCache    ord special results new_account flypage
< 
< 
< ########### NoImport
< ##
< ## Default: blank
< #
< # When set to one or more MiniVend database identifiers, those database(s) will
< # never be subject to import. Useful for mSQL or DBI databases, or databases
< # that will *never* change.
< #
< # NoImport   inventory
<  
< 
< ########### NonTaxableField
< ##
< ## Default: blank
< #
< # The name of the field in the products database that is set (to 1 or yes)
< # if an item is not to be taxed. Will log an error and tax it anyway
< # if the field doesn't exist in the database.
< #
< # NonTaxableField
< 
< 
< ########### OfflineDir
< ##
< ## Default: offline
< #
< # The location of the offline database files for use with the MiniVend offline
< # database build command. Set to "offline" as the default, and is relative to
< # VendRoot if there is no leading slash.
< #
< # OfflineDir    /usr/data/minivend/offline
< 
< 
< ########### OldShipping
< ##
< ## Default: No
< #
< # Defines compatibility with older MiniVend shipping files -- they will break
< # if using formulas where 'x' is used as the substituted-for string for the
< # accumulated total.
< #
< # OldShipping  Yes
<  
< 
< ########### OrderCounter
< ##
< ## Default: blank
< #
< # The name of the file (relative to VendRoot if no leading /) that
< # maintains the order number.
< #
< OrderCounter    etc/order.number
< 
< 
< ########### OrderFrame
< ##
< ## Default: _top
< #
< # The frame name where the order page will go, if frames are
< # enabled.
< #
< # OrderFrame
< 
< 
< ########### OrderLineLimit
< ##
< ## Default: 0 (unlimited)
< # 
< # The number of items that the user is allowed to place in the shopping cart --
< # a robot defense.  See the docs.
< # 
< # OrderLineLimit   50
< 
< 
< ########### OrderProfile
< ##
< ## Default: blank
< #
< # An unlimited number of order profiles, specified relative to the
< # MiniVend page directory. Called by the mv_order_profile selector on an order
< # form, numbers start from 0.
< #
< # The order profiles themselves are a set of parameters defining the order
< # checking and lookup parameters, and can be conditional based on the
< # MiniVend [if ...][/if] tagging.  The [value ..], [data ..], and
< # [field ..] tags can be used.
< #
< OrderProfile    etc/order.profiles
< 
< 
< ########### OrderReport
< ##
< ## Default: etc/report
< # 
< # The location of the simple order report file. 
< #
< # OrderReport  pages/ord/report.html
< 
< 
< ########### PageCache
< ##
< ## Default: No
< #
< # When set to Yes, it will enable the cacheing of pages if the client
< # browser has cookie capability.
< #
< # PageCache  yes
< 
< 
< ########### PageSelectField
< ##
< ## Default: blank
< #
< # Sets a products database column which can be used to select the on-the-fly
< # template page. This allows multiple on-the-fly pages to be defined. If the
< # field is empty (no spaces, either!) then the default flypage will be used.
< #
< # PageSelectField    display_page
< 
< 
< ########### Password
< ##
< ## Default: blank
< #
< # The encrypted password that, when entered and sent as RECONFIGURE_MINIVEND by
< # the reconfigure program, will be checked against the user entry to enable
< # reconfiguration.
< #
< # If you use MiniVend's htpasswd.pl (from 2.03 or higher) it will write the
< # catalog configuration file if given 'catalog.cfg' as the file name. The demo
< # starts with an encrypted blank password, allowing you to just hit enter.
< #
< Password                __MVC_SUPASSWD__
< 
< 
< ########### PriceBreaks
< ##
< ## Default: blank
< #
< # The quantities where price breaks should be placed.  Used to set up the
< # pricing.asc entries to match actual pricing. Unlimited number of breaks --
< # only enter the lowest quantity it applies to.
< #
< # If present, there must be a valid I<pricing> database.
< #
< # This directive should normally be disabled unless you are using quantity
< # pricing (as in this demo).  This feature is somewhat deprecated
< # by CommonAdjust.
< #
< # PriceBreaks          2 5 10 25 100
< 
< 
< ########### PriceAdjustment
< ##
< ## Default: blank
< #
< # A MiniVend item attribute (see UseModifier) which contains a value upon which
< # a price adjustment to the item may be made. This feature is somewhat deprecated
< # by CommonAdjust.
< #
< # PriceAdjustment size
< 
< 
< ########### PriceCommas
< ##
< ## Default: yes
< #
< # Whether commas will be inserted in prices displayed by MiniVend.
< #
< # PriceCommas
< 
< 
< ########### PriceDivide
< ##
< ## Default: 1
< #
< # The number the price should be divided by to get the price in units (dollars
< # or such).
< #
< # PriceDivide 100
< 
< 
< ########### PriceField
< ##
< ## Default: price
< #
< # The field in the product database that will be accessed with the [item-price]
< # element.
< # 
< # If set to a non-existent field enables the CommonAdjust scheme
< # for all products.
< #
< PriceField   no_price
< 
< 
< ########### Random
< ##
< ## Default: blank
< #
< # Random messages 0 to 15, specified with a Vend-style filename, i.e. no .html
< # suffix, (even though the file will have one), relative to the MiniVend page
< # directory. Called by the [random] tag.
< #
< Random               rand1 rand2 rand3 rand4 rand5
< 
< 
< ########### ReadPermission
< ##
< ## Default: user
< #
< # Controls the permissions of the session database, and error.log file.  This
< # only takes effect if the program is creating a new file.
< #
< ReadPermission  group
< 
< 
< ########### ReceiptPage
< ##
< ## Default: blank
< #
< # The page to be displayed as a receipt after the user has submitted an order.
< # Replaces the standard 'confirmation' page.
< #
< ReceiptPage          ../etc/receipt
< 
< 
< ########### RecordDelimiter
< ##
< ## Default: blank
< #
< # In conjunction with FieldDelimiter, allows custom database formats to be
< # defined. See the documentation for use of this advanced feature.
< 
< 
< ########### RemoteUser
< ##
< ## Default: blank
< #
< # The value of the HTTP environment variable REMOTE_USER that will enable
< # reconfiguration.
< #
< # You need to enable HTTP basic authentication for this to work.
< #
< RemoteUser   __MVC_SUPERUSER__
< 
< 
< ########### ReportIgnore
< ##
< ## Default: blank
< #
< # Fields to ignore for the purposes of mailing an order. A COMMA-SEPARATED
< # list. Fields beginning with 'mv_' are ignored automatically.  This only makes
< # a difference if NewReport is set to No.
< #
< # ReportIgnore
< 
< 
< ########### RequiredFields
< ##
< ## Default: blank
< #
< # Fields that the user MUST fill at least something in before
< # their order can be processed. A COMMA-SEPARATED list.
< #
< RequiredFields       name
< 
< 
< ########### RetireDBM
< ##
< ## Default: blank
< #
< # Name of a dbm file which holds retired session IDs.
< #
< # USE it!
< RetireDBM retired_id
< 
< 
< 
< ########### RobotLimit
< ##
< ## Default: 0 (unlimited)
< #
< # Defines the number of consecutive pages a user session may access without a
< # 30 second pause.  If the limit is exceeded, then the command defined in the
< # Global directive LockoutCommand will be executed.
< #
< RobotLimit       50
< 
< 
< ########### Rotate
< ##
< ## Default: blank
< #
< # Rotating messages 0 to 15, specified with a Vend-style filename, i.e. no
< # .html suffix, (even though the file will have one), relative to the MiniVend
< # page directory. Called by the [rotate] tag.  IF YOU CHANGE THEM, THEY WON'T
< # TAKE EFFECT UNTIL A RESTART.
< #
< Rotate  rotate1 rotate2 rotate3 rotate4
< 
< 
< ########### SalesTax
< ##
< ## Default: blank
< #
< # The FIELD NAMES which are the keys to the sales tax calculation. This is
< # defined in ProductDir/salestax.asc, and is most commonly zipcode and/or
< # state, one of the fields on the order report. If left blank, no sales tax
< # calculation is done.  If an entry for that field name is not found, it uses
< # the field 'default', which must be defined in the file.  The default can be
< # 0.
< #
< SalesTax         state
< 
< 
< ########### SaveExpire
< ##
< ## Default: 30 days
< # The length of time that saved sessions will persist before being expired. See
< # SessionExpire for the format.
< #
< # SaveExpire    8 weeks
< 
< 
< ########### ScratchDir
< ##
< ## Default: etc
< #
< # The directory where scratch files will be written, notably cached searches.
< #
< ScratchDir  tmp
< 
< 
< ########### SearchCache
< ##
< ## Default: No
< #
< # Determines whether cacheable searches will be cached. It requires the
< # presence of the directory 'SearchCache' in the ConfDir directory (default
< # would be etc/SearchCache).
< #
< # SearchCache  Yes
< 
< 
< ########### SearchFrame
< ##
< ## Default: blank
< #
< # The frame name where search results will go, if frames are enabled.
< #
< # SearchFrame
< 
< 
< ########### SearchProfile
< ##
< ## Default: blank
< #
< # An unlimited number of search profiles, specified relative to the MiniVend
< # page directory. Called by the mv_profile selector on a search form, numbers
< # start from 0.
< #
< # The search profiles themselves are a set of variables defining the search
< # parameters, and can be conditional based on the MiniVend [if ...][/if]
< # tagging.
< #
< SearchProfile        etc/search.profiles
< 
< 
< ########### SendMailProgram
< ##
< ## Default: /usr/lib/sendmail
< #
< # The location of the sendmail binary, needed for mailing orders.  Must be
< # found at startup.
< #
< # SendMailProgram
< 
< 
< ########### SeparateItems
< ##
< ## Default: No
< #
< # Changes the default when ordering an item via MiniVend to allowing multiple
< # lines on the order form for each item. 
< #
< # SeparateItems Yes
< 
< 
< ########### SessionDatabase
< ##
< ## Default: session
< #
< # The base name of the session database. You don't normally need to
< # set this.
< #
< # SessionDatabase
< 
< 
< ########### SessionExpire
< ##
< ## Default: 1 day
< #
< # The time after which user sessions will expire.
< #
< # SessionExpire
< 
< 
< ########### Shipping
< ##
< ## Default: 0
< #
< # A flat shipping charge that will be added to any order. A
< # zero value disables it.
< #
< # Shipping
< 
< 
< ########### SpecialPage
< ##
< ## Default: blank
< #
< # Sets a special page to other than its default value.
< #
< SpecialPage          badsearch      special/badsearch
< SpecialPage          canceled       special/canceled
< SpecialPage          catalog        index
< SpecialPage          checkout       ord/checkout
< SpecialPage          confirmation   special/confirmation
< SpecialPage          failed         special/failed
< SpecialPage          interact       special/interact
< SpecialPage          missing        special/missing
< SpecialPage          needfield      special/needfield
< SpecialPage          nomatch        special/nomatch
< SpecialPage          noproduct      special/noproduct
< SpecialPage          notfound       special/notfound
< SpecialPage          order          ord/basket
< SpecialPage          search         results
< SpecialPage          order_security special/order_security
< SpecialPage          violation      special/violation
< 
< 
< ########### Static 
< ##
< ## Default: No
< #
< # A yes/no directive. Enables static page building and display features.
< #
< Static   No
< 
< 
< ########### StaticAll
< ##
< ## Default: No
< # A yes/no directive.  Tells MiniVend to try and build all pages in the catalog
< # statically when called with the static page build option.
< #
< StaticAll   Yes
< 
< ########### StaticDepth
< ##
< ## Default: 1
< # 
< # The number of levels of static search building that will be done if a search
< # results page contains a search. Set to 0 to disable re-scanning of search
< # results pages.
< #
< # StaticDepth 2
< 
< ########### StaticDir
< ##
< ## Default: static
< #
< # The absolute path of the directory which should be used as the root for
< # static pages. The user ID executing MiniVend must have write permission on
< # the directory (and all files within) if this is to work.
< #
< StaticDir   __CATDOCROOT__/pages
< 
< ########### StaticFly
< ##
< ## Default: No
< #
< # A yes/no directive. If set to Yes, static builds will attempt to generate
< # a page for every part number in the database using the on-the-fly page build
< # capability.
< #
< StaticFly   Yes
< 
< 
< ########### StaticPage
< ##
< ## Default: blank
< #
< # Tells MiniVend to build the named page (or pages, whitespace separated) when
< # employing the static page-building capability of MiniVend. Not necessary if
< # using StaticAll.
< #
< # StaticPage   info/about_us  info/terms_and_conditions
< 
< 
< ########### StaticPath
< ##
< ## Default: blank
< #
< # The path (relative to HTTP document root) which should be used in references
< # built by and referred to by the page-building capability of MiniVend.
< #
< StaticPath __CATDOCURL__/pages
< 
< 
< ########### StaticPattern
< ##
< ## Default: blank
< #
< # A perl regular expression which is used to qualify pages that are to be built
< # statically. The default is blank, which means all pages qualify.
< #
< # StaticPattern  ^info|^help
< 
< 
< ########### Sub
< ##
< ## Default: blank
< #
< # Defines a catalog subroutine for use by the [perl sub] subname arg [/perl]>
< # construct.
< #
< # You may define as many as desired.
< #
< # Sub
< 
< 
< ########### TaxShipping
< ##
< ## Default: blank
< #
< # A comma or space separated list of states or jurisdictions that
< # tax shipping cost, i.e. UT.
< #
< #
< TaxShipping          __TAXSHIPPING__ ,
< 
< 
< ########### UpsZoneFile
< ##
< ## Default: blank
< #
< # The file containing the UPS zone information,  specified relative to the
< # MiniVend page directory.
< #
< UpsZoneFile   products/ups_zone.asc
< 
< 
< ########### UseCode
< ##
< ## Default: yes
< #
< # Determines whether the product code will be used as the base for the
< # [item-link] file name.
< #
< # UseCode
< 
< 
< ########### UseModifier
< ##
< ## Default: no
< #
< # Whether modifier information will be tabulated and forwarded (like size
< # or color information).
< #
< #
< UseModifier size color
< 
< 
< ########### UserTag
< ##
< ## Default: none
< #
< # Define a MiniVend tag fully as powerful as the built-in ones.
< #
< #
< UserTag quick-table HasEndTag
< UserTag quick_table Interpolate
< UserTag quick-table Order  border
< UserTag quick_table Routine <<EOF
< sub {
<     my ($border,$input) = @_;
<     $border = " BORDER=$border" if $border;
<     my $out = "<TABLE ALIGN=LEFT$border>";
<     my @rows = split /\n+/, $input;
<     my ($left, $right);
<     for(@rows) {
<         $out .= '<TR><TD ALIGN=RIGHT VALIGN=TOP>';
<         ($left, $right) = split /\s*:\s*/, $_, 2;
<         $out .= '<B>' unless $left =~ /</;
<         $out .= $left;
<         $out .= '</B>' unless $left =~ /</;
<         $out .= '</TD><TD VALIGN=TOP>';
<         $out .= $right;
<         $out .= '</TD></TR>';
<         $out .= "\n";
< 	}
<     $out .= '</TABLE>';
< }
< EOF
< 
< # This UserTag sets a default font face, size, color
< # or more in a table without having to type it in every
< # time.
< # 
< # Usage:
< # [table-font face="arial, helvetica" size="-1"]
< # <TABLE><TR><TD>Test.</TD></TR></TABLE>
< #    Will do multiple tables.
< # <TABLE><TR><TD>Test.</TD></TR></TABLE>
< # [/table-font]
< #
< UserTag table-font Order face
< UserTag table-font PosNumber 1
< UserTag table-font addAttr 1
< UserTag table-font hasEndTag
< UserTag table-font Routine <<EOR
< sub {
< 	my ($face, $opt, $table) = @_;
< 
< 	my @parms;
< 	push(@parms, qq{FACE="$face"})
< 		if $face;
< 	for(qw/size color/) {
< 		push(@parms, qq{\U$_\E="} . $opt->{$_} . '"')
< 			if $opt->{$_};
< 	}
< 	push(@parms, $opt->{extra})
< 		if $opt->{extra};
< 	my $front = "<FONT " . join(" ", @parms) . '>';
< 	$table =~ s:(<T[HD][^>]*>):$1$front:ig;
< 	$table =~ s:(</T[HD]\s*>):</FONT>$1:ig;
< 	return $table;
< }
< EOR
< 
< 
< ########### Variable
< ##
< ## Default: none
< #
< # Variable values that can be accessed on MiniVend pages with __VARIABLE__
< # notation.
< #
< 
< 
< ########### WritePermission
< ##
< ## Default: user
< #
< # Controls the permissions of the session database, and
< # error.log file.  This only takes effect if the program is
< # creating a new file.
< #
< # Though it is highly discouraged, if you can't run vlink SUID
< # you can set this to 'world' and have MiniVend work.
< #
< WritePermission group
< 
---
> # Define the site-specific information
> #
> Variable    SERVER_NAME     webshop
> Variable    CGI_URL         /simple.cgi
> Variable    SECURE_SERVER   http://webshop
> Variable    ORDERS_TO       mhuelsmann
> Variable    IMAGE_DIR       /simple/images
> Variable    DOCROOT         /usr/local/httpd/htdocs/mhuelsmann
> Variable    SAMPLEHTML      /usr/local/httpd/htdocs/mhuelsmann/simple
> Variable    SAMPLEURL       http://webshop/simple
> 
> Variable    COMPANY         The Art Store
> Variable    ADDRESS         123 Any St.
> Variable    CITY            Anytown, USA 00000
> Variable    PHONE           (555) 555-5555
> Variable    TOLLFREE        (888) 555-5555
> Variable    FAX             (555) 555-5556
> Variable    LOGO            artstore.gif
> Variable    SMLOGO          artsmall.gif
> Variable    HEADERBG        BGCOLOR=#00F0F0
> Variable    TABLEFG         BGCOLOR=#EEEEEE
> Variable    HEADERTEXT      #000000
> Variable    BARBG           #00F0F0
> Variable    BARTEXT         #FF0000
> Variable    BGIMAGE         blue_pap.gif
> Variable    BGCOLOR         #FFFFFF
> Variable    ENCRYPTOR       none
> Variable    TAXAREA         16,16
> Variable    TAXRATE         oh=16,IL=16
> Variable    TAXSHIPPING     OH=16
> 
> ## END SITE CONFIGURATION
> 
> # Used to enable order query security
> Variable      MV_USERDB_ACL_TABLE  userdb
> Variable      MV_USERDB_ACL_COLUMN acl
> 
> ## Whether to NOT encrypt passwords
> Variable      MV_NO_CRYPT      
> 
> ## Set some menubars and headers
> ConfigDir pages
> Variable      LEFTSIDE   <leftside
> Variable      RIGHTSIDE  <rightside
> Variable      NO_RIGHT   <no_right
> Variable      MENUBAR    <menubar
> Variable      MENUBOTTOM <menubottom
> Variable      LOGOBAR    <logobar
> Variable      COPYRIGHT  <copyright
> ConfigDir config
> 
> ## Set these to enable CyberCash
> 
> # These are usually all you need for CyberCash 3
> # Edit to suit
> #
> #Variable     CYBER_CONFIGFILE    /home/you/mck-kit/yourid75/mck-cgi/merchant_conf
> #Variable     CYBER_VERSION       3.2
> 
> # Use these instead for CyberCash 2
> # Edit to suit
> #
> #Variable     CYBER_PORT          8000
> #Variable     CYBER_HOST          localhost
> #Variable     CYBER_SECRET        test-secret-fdc
> #Variable     CYBER_MODE          mauthonly
> #Variable     CYBER_CURRENCY      usd
> #Variable     CYBER_PRECISION     2
> 
> ########################## TURN ON PARSING
> # Allow substitution of site-specific information
> ########################## 
> 
> ParseVariables  Yes
> 
> ###
> ###   These first three required for the catalog to run at all
> ###
> 
> ########### MailOrderTo
> ##
> ## Default: UNDEFINED
> #
> # This MUST be defined, or the catalog will not load.
> # The address to mail orders to.
> #
> MailOrderTo             __ORDERS_TO__
> 
> 
> ########### VendURL
> ##
> ## Default: UNDEFINED
> #
> # The URL that calls the main MiniVend dispatch program. Must
> # be defined.  This will be suggested as the name to move the
> # compiled dispatch program to. It should look something like:
> #
> #         http://YOUR_SERVER_NAME/cgi-bin/vlink
> #
> VendURL                 http://__SERVER_NAME____CGI_URL__
> 
> 
> ########### SecureURL
> ##
> ## Default: blank
> #
> # If you are using an SSL or Secure HTTP server, this is the URL
> # which will be used for processing orders securely.  For SSL, it
> # is usually the same URL as normal, except that it uses
> # 'https' instead of 'http'. Add the 'https' if you have a
> # secure server.
> #
> SecureURL               __SECURE_SERVER____CGI_URL__
> 
> ###
> ###   The following few directives should be defined
> ###   first in the file, as some other directives in the
> ###   configuration depend on their value.
> ###
> ###   The defaults work for most installations.
> ###
> 
> 
> ########### PageDir
> ##
> ## Default: pages
> #
> # The subdirectory of VendRoot where the actual MiniVend pages
> # reside.
> #
> # PageDir
> 
> 
> ########### ProductDir
> ##
> ## Default: products
> #
> # The location of the product database files.
> #
> # ProductDir
> 
> 
> ########### DataDir
> ##
> ## Default: products
> #
> # The location of the extra database files.
> #
> # DataDir
> 
> 
> ###
> ###   The remaining directives can be defined in any
> ###   order, providing the ones above have been set first
> ###
> 
> 
> ########### Database
> ##
> ## Default: products products.asc 1
> #
> # Definition of an arbitrary database, in the form
> # "Database database file type", where "file" is the name of an
> # ASCII file in the same format as the products database.  The
> # file is relative to VendRoot, and is put in DataDir if no
> # path is provided.  Records can be accessed with the
> # [data database field key] tag.
> #
> 
> #Database            products     products.asc      TAB
> Database            products      c2000.csv        CSV
> #Database            products     INDEX             category
> Database            products      INDEX            description
> Database            pricing      pricing.asc       TAB
> Database            transactions transactions.txt  TAB
> Database            userdb       userdb.asc        TAB
> Database            country      country.asc       TAB
> Database            locale       locale.asc        TAB
> Database            Ground       Ground.csv        CSV
> Database            2ndDayAir    2ndDayAir.csv     CSV
> Database            NextDayAir   NextDayAir.csv    CSV
> 
> # Here are some sample product database definitions for various SQL 
> # database types. These might even work for you if the SQL package
> # in question has an existing data source with that name -- these
> # may be the defaults in the distributed packages.
> #
> # For mSQL to work you would do:  msqladmin create minivend
> #
> # For mysql to work you would do: mysqladmin create minivend
> #
> #Database            products products.asc dbi:mysql:minivend:localhost:3333
> #Database            products products.asc dbi:mSQL:minivend:localhost:1114
> #Database            products products.asc dbi:ODBC:TCP/IP localhost 1313
> #Database            products products.asc dbi:Solid:TCP/IP localhost 1313
> 
> ### Needed for Oracle, Solid and some others
> #Database            products ChopBlanks   1
> 
> ### Needed for Oracle and some others
> #Database            products UPPERCASE    1
> 
> # Change some data type definitions
> #Database            products COLUMN_DEF   code=char(20), nontaxable=char(4)
> #Database            products COLUMN_DEF   price=char(20)
> #Database            products COLUMN_DEF   title=char(64)
> 
> # Set some other parameters
> #Database            products DELIMITER    TAB
> #Database            products LongReadLen  128
> Database             products DELIMITER    ;
> 
> # Not needed unless your database requires a login
> #Database            products USER   you
> #Database            products PASS   XXXXXX
> 
> # More database settings are discussed in the documentation.
> 
> 
> ########### ActionMap
> ##
> ## Default: blank
> #
> # Allows setting of button actions for particular names.  The
> # predefined names are listed in the documentation, and would be
> # overwritten if re-defined.
> #
> # Can be set as many times as necessary. Not case sensitive.
> #
> ActionMap            refresh change
> ActionMap            refresh validate
> ActionMap            cancel erase
> ActionMap            submit next
> ActionMap            control color
> 
> 
> ########### AdminDatabase
> ##
> ## Default: blank
> #
> # When set to one or more MiniVend database identifiers, any pages using data
> # items from the specified database(s) will not be allowed for display unless
> # the user the catalog operator -- i.e. is authenticated by one of Password ,
> # MasterHost , or RemoteUser . The special page 'violation' will be displayed
> # if another user attempts to access a page containing elements from the
> # database(s).   
> #
> # AdminDatabase   inventory
> 
> 
> ########### AdminPage 
> ##
> ## Default: blank
> #
> # When set to one or more MiniVend page names, pages with that name will not be
> # allowed for display unless the user the catalog operator -- i.e. is
> # authenticated by one of Password , MasterHost , or RemoteUser . The special
> # page 'violation' will be displayed if another user attempts to access the
> # page(s). 
> #
> # AdminPage       config/menu
> 
> 
> ########### AlwaysSecure
> ##
> ## Default: blank
> #
> # Determines whether checkout page operations should always be
> # secure.  Set it to the name of pages that should always be secure,
> # separated by spaces and/or tabs.
> #
> AlwaysSecure         ord/checkout
> 
> 
> ########### AsciiBackend
> ##
> ## Default: blank
> #
> # A file name to log order fields in (set by BackendOrder).
> # Unless preceded by a leading '/', will be placed relative to VendRoot.
> # If the first character is a '|', it is the name of a program to send the
> # fields to.
> #
> # AsciiBackend         etc/backend.asc
> 
> 
> ########### AsciiTrack
> ##
> ## Default: blank
> #
> # A file name to log formatted orders in. Unless preceded by a leading '/',
> # will be placed relative to VendRoot.
> #
> AsciiTrack           etc/tracking.asc
> 
> 
> ########### BackendOrder
> ##
> ## Default: blank
> #
> # Controls the fields that are prepended to the item codes and quantities
> # for the backend ordering capability.  These are the values from the
> # user form in 'order.html'.  You can access any value in that
> # hash. If blank, no backend ordering is in force.
> #
> #
> # BackendOrder name,company,address,city,state,zip,country,account,mv_shipmode
> 
> 
> ########### ButtonBars
> ##
> ## Default: blank
> #
> # Button bars 0 to 15, specified with a Vend-style filename, i.e. no
> # .html suffix, (even though the file will have one), relative
> # to the MiniVend page directory. Called by the [buttonbar n] tag,
> # numbers start from 0.
> #
> ButtonBars           buttonbar
> 
> 
> ########### CheckoutFrame
> ##
> ## Default: blank
> #
> # The frame name where the checkout page will go, if frames are
> # enabled.
> #
> # CheckoutFrame
> 
> 
> ########### CheckoutPage
> ##
> ## Default: order
> #
> # The name of the default page to send the user to when the [finish-order]
> # tag is used.
> #
> CheckoutPage         ord/basket
> 
> 
> ########### ClearCache
> ##
> ## Default: No
> #
> # The name of the default page to send the user to when the [finish-order]
> # tag is used.
> #
> # A yes/no directive. When set to yes, each time the catalog is reconfigured or
> # the MiniVend server is restarted the page and search caches will be cleared.
> #
> ClearCache  Yes
> 
> 
> ########### CollectData
> ##
> ## Default: blank
> #
> # The points at which to log various data items collected by MiniVend,
> # such as failed or successful searches.  This allows you to find out what
> # your customers are searching for and NOT finding -- perhaps you want to
> # add it, or change your product description to match.
> #
> # The choices to enter are:
> #
> #   matched    Search strings that match
> #   nomatch    Search strings that fail to match
> #   page       Pages that are accessed
> #   nopage     Pages that are not found
> #   order      Various data about ordered items
> #
> # Enter as a space or comma-separated list, i.e.
> #
> # CollectData    matched,nomatch,page
> 
> 
> ########### CommonAdjust
> ##
> ## Default: blank
> #
> # Part of the price adjustment scheme -- see the documentation.
> #
> CommonAdjust   pricing:q2,q5,q10,q25,q100, ;products:price, ==color:pricing, ==size:pricing
> 
> 
> ########### ConfigDir
> ##
> ## Default: config
> #
> # The default directory where directive values will be read from when using the
> # <file notation. The name is relative to the catalog directory unless preceded
> # by a /.
> #
> # ConfigDir      variables
> 
> 
> ########### CookieDomain
> ##
> ## Default: blank
> #
> #  Allows you to set a domain so that two servers can handle traffic.  It must
> #  have at least two periods or browsers will ignore it. 
> #
> #  CookieDomain   __SERVER_NAME__
> 
> 
> ########### CookieLogin
> ##
> ## Default: No
> #
> #  Allows users to save their username/password (for Vend::UserDB)
> #  in a cookie. Expireation set by SaveExpire, renewed every time
> #  they log in.
> #
> CookieLogin  Yes
> 
> 
> ########### Cookies
> ##
> ## Default: Yes
> #
> # Determines whether we will send (and read back) a cookie to
> # get the session ID for links that go outside the catalog.
> #
> # Cookies No
> 
> 
> ########### CreditCardAuto
> ##
> ## Default: No
> #
> # Enter 'Yes' if you wish to enable MiniVend's encrypted credit card
> # handling. This whatever is in EncryptProgram (preferably PGP) to encrypt
> # credit card information according to a standard scheme.  See the
> # documentation for more information.
> #
> #
> CreditCardAuto      Yes
> 
> 
> ########### CustomShipping
> ##
> ## Default: blank
> #
> # The default database column which is the key to the custom shipping
> # calculation. If left blank, no custom shipping calculation is done.
> #
> CustomShipping       Yes
> 
> 
> ########### CyberCash
> ##
> ## Default: No
> # 
> # Enables CyberCash processing. Mutually exclusive with
> # CreditCardAuto.
> #
> # CyberCash          Yes
> 
> 
> ########### DefaultShipping
> ##
> ## Default: default
> #
> # Sets the initial shipping mode.
> #
> DefaultShipping      0
> 
> 
> ########### Delimiter
> ##
> ## Default: TAB
> #
> # One of TAB, PIPE, CSV, or your own custom delimiter. (It is not
> # suggested that you use a custom delimiter). TAB means a tab-delimited
> # database by default, PIPE a pipe-delimited one, and CSV a quote-comma
> # format. TAB is STRONGLY recommended, as it makes search definitions
> # much easier.
> #
> # Delimiter
> 
> 
> ########### DescriptionField
> ##
> ## Default: description
> #
> # The field that will be accessed with the [item-description] element.
> #
> # DescriptionField  short_desc
> 
> 
> ########### DisplayErrors
> ##
> ## Default: No
> #
> # If the administrator has enabled DisplayErrors globally, then setting this to
> # "Yes" will display the error returned from MiniVend in case something is wrong
> # with embedded Perl programs, tags, or (horrors!) MiniVend itself.  Usually you
> # will only want to use this during development or debugging.
> #
> # DisplayErrors     Yes
> 
> 
> ########### DynamicData
> ##
> ## Default: blank
> #
> # When set to one or more MiniVend database identifiers, any pages using data
> # items from the specified database(s) will not be cached or built statically.
> #
> # DynamicData         inventory
> 
> 
> ########### EncryptProgram
> ##
> ## Default: blank
> #
> # The fully-qualified path name of a program which will encrypt
> # a credit card number for storage in the session database. The parameters
> # %p and %f are substituted with the password and temporary file name
> # to use, respectively.
> #
> #  !!!!PLEASE EDIT THIS!!!!
> #
> # The cat program is used for demonstration purposes -- you should
> # use PGP instead.
> #
> #       EncryptProgram  /usr/local/bin/pgp -feat __ORDERS_TO__ 2>/dev/null
> #
> EncryptProgram  __ENCRYPTOR__
> 
> 
> ########### ExtraSecure
> ##
> ## Default: No
> #
> # Disallows access to pages which are marked with AlwaysSecure unless the
> # browser is in HTTPS mode. A yes/no directive -- default is 'No'.
> #
> # ExtraSecure  Yes 
> 
> 
> ########### FieldDelimiter
> ##
> ## Default: 
> #
> # In conjunction with RecordDelimiter, allows custom database formats to be
> # defined. See the documentation for use of this advanced feature.
> 
> 
> ########### FinishOrder
> ##
> ## Default: Finish Incomplete Order
> #
> # The value that will be used as the anchor text for the
> # [finish-order] tag. Can be text or an image -- any legal
> # HTML. This is deprecated -- we suggest [if items][page ord/basket]...[/if]
> # instead.
> #
> # FinishOrder          <IMG SRC="contents.gif">
> #
> 
> ########### FormIgnore
> ##
> ## Default: blank
> #
> # Set to the name(s) of variables that should not be carried in the user
> # session values. Must match exactly and are case sensitive.
> #
> # FormIgnore    mv_searchtype
>  
> 
> ########### FractionalItems
> ##
> ## Default: no
> #
> # Whether items in the shopping cart should be allowed to be
> # fractional, i.e. 2.5 or 1.25.
> #
> # FractionalItems
> 
> 
> ########### FrameFlyPage
> ##
> ## Default: blank
> #
> # The MiniVend-style page name (i.e. no .html extension, relative to
> # PageDir) which contains the special on-the-fly page for when frames are in
> # use. If not set (the default), the standard flypage will be used.
> #
> # FrameFlyPage      frame_flypage
> 
> 
> ########### FrameLinkDir
> ##
> ## Default: blank
> #
> # The relative directory where on-the-fly pages will be sent during static page
> # builds -- it is relative to StaticDir. Default is 'framefly'.
> #
> # FrameLinkDir      fr_fly
> 
> 
> ########### FrameOrderPage
> ##
> ## Default: blank
> #
> # The special page to use instead of 'order.html' for the order
> # page.  This allows you to put the item-list in a separate window/frame
> # from the name/address/account information.
> #
> # FrameOrderPage
> 
> 
> ########### FrameSearchPage
> ##
> ## Default: blank
> #
> # The special page to use instead of 'search.html' for the search
> # page.  This allows you to define separate windows for frame and
> # non-frame browsers.
> #
> # FrameSearchPage
> 
> 
> ########### FramesDefault
> ##
> ## Default: no
> # 
> # Whether the first access by a user will place them in frames mode.
> # 
> # FramesDefault
> 
> 
> ########### Glimpse
> ##
> ## Default: glimpse
> #
> # Controls the location of the external glimpse search engine,
> # and whether Glimpse will be used.  Set to the path of your
> # Glimpse program.  If you want special options, see the
> # documentaton on the search engine.
> #
> # Glimpse  /usr/local/bin/glimpse
> 
> 
> ########### Help
> ##
> ## Default: blank
> #
> # Files with help/macro items, specified with a Vend-style filename,
> # i.e. no .html suffix, (even though the file will have one),
> # relative to the MiniVend page directory. Help items are
> # keyed by name.  Called by the [help item] tag.
> #
> Help                    hintfile
> 
> 
> ########### ImageAlias
> ##
> ## Default: blank
> #
> # Aliases for images, ala Apache/NCSA ScriptAlias and Alias directives. 
> # Relocates images based in a particular directory to another for MiniVend use
> # -- operates *after* ImageDir. Useful for editing MiniVend pages with an HTML
> # editor.
> #
> # ImageAlias  /images/  /thiscatalog/images/
> 
> 
> ########### ImageDir
> ##
> ## Default: blank
> #
> # Where the images are, relative to HTTP server DocumentRoot.
> # This allows images to be referenced in a relative fashion
> # and translated by MiniVend.  Useful for multi-catalog setups
> # using common pages.  MUST HAVE A TRAILING SLASH.
> #
> ImageDir                __IMAGE_DIR__/
> 
> 
> ########### ImageDirInternal
> ##
> ## Default: blank
> #
> # Where the images are, relative to HTTP server DocumentRoot.
> # This allows images to be referenced in a relative fashion
> # and translated by MiniVend.  Useful for multi-catalog setups
> # using common pages.  MUST HAVE A TRAILING SLASH.
> #
> ImageDirInternal        http://__SERVER_NAME____IMAGE_DIR__/
> 
> 
> ########### ImageDirSecure
> ##
> ## Default: blank
> #
> # Where the images are for secure pages only.
> # MUST HAVE A TRAILING SLASH.
> #
> # ImageDirSecure        __SECURE_SERVER____IMAGE_DIR__/
> 
> 
> ########### Locale
> ##
> ## Default: none (U.S.)
> #
> # Sets the special locale array. See the documentation. The below
> # definition will cause monetary value of 3,400.00 in U.S. notation
> # to be displayed as 3.400,00. To remove the decimal places, make
> # frac_digits '0'.
> # 
> # Locale en_US mon_decimal_point .
> # Locale en_US mon_thousands_sep ,
> # Locale en_US frac_digits 2
> # Locale en_US currency_symbol $
> # Locale en_US p_cs_precedes 1
> 
> ########### LocaleDatabase
> ##
> ## Default: none
> #
> # Sets a database that will be used as the basis for the Locale
> # settings. The columns are the locales, the rows the keys.
> #
> LocaleDatabase  locale
> 
> 
> ########### LogFile
> ##
> ## Default: etc/log
> #
> # The file where global data collected (set by CollectData) is logged.
> #
> # LogFile
> 
> 
> ########### MasterHost
> ##
> ## Default: blank
> #
> # The IP address that can reconfigure this server (if the reconfigure
> # program is served that way). Default is blank, disabling remote
> # check of IP address.
> #
> # MasterHost
> 
> 
> ########### MixMatch
> ##
> ## Default: No
> #
> # Sets whether quantity price breaks will be on TOTAL quantity or
> # per-item quantity. Default is no mix and match, pricing is on
> # a per-item basis.
> #
> # MixMatch
> 
> 
> ########### Mv_Background
> ##
> ## Default: blank
> #
> # Background patterns, 1 through 15.  Start with a BEGIN,
> # then define up to 15 backgrounds for the 15 schemes.
> #
> Mv_Background BEGIN __BGIMAGE__
> 
> ########################## Turn off parsing
> 
> ########### Mv_BgColor
> ##
> ## Default: blank
> #
> # Background colors, 1 through 15.  Start with a BEGIN tag,
> # then define up to 15 colors for the 15 schemes.  Enter
> # 'none' for the default.
> #
> Mv_BgColor           BEGIN __BGCOLOR__
> 
> ParseVariables  No
> 
> 
> ########### Mv_LinkColor
> ##
> ## Default: blank
> #
> # Link colors, 1 through 15.  Start with a BEGIN tag, then
> # define up to 15 colors for the 15 schemes.  Enter 'none' for
> # the default.
> #
> Mv_LinkColor         BEGIN none white black ltgreen
> 
> 
> ########### Mv_TextColor
> ##
> ## Default: blank
> #
> # Text colors, 1 through 15.  Start with a BEGIN tag, then
> # define up to 15 colors for the 15 schemes.  Enter 'none' for
> # the default.
> #
> Mv_TextColor         BEGIN none ltgreen blue none
> 
> 
> ########### Mv_VlinkColor
> ##
> ## Default: blank
> #
> # Visited link colors, 1 through 15.  Start with a BEGIN tag, then
> # define up to 15 colors for the 15 schemes.  Enter 'none' for
> # the default.
> #
> Mv_VlinkColor        BEGIN none orange purple ltgreen
> 
> 
> ########### Mv_AlinkColor
> ##
> ## Default: blank
> #
> # ALINK colors, 1 through 15.  Start with a BEGIN tag, then
> # define up to 15 colors for the 15 schemes.  Enter 'none' for
> # the default.
> #
> Mv_AlinkColor        BEGIN none brown brown brown
> 
> ########### NewEscape
> ##
> ## Default: No
> #
> # A yes/no directive. When set to Yes, it disallows the old-style
> # period escaping of one-click search spec strings, and allows
> # HTTP-style escaping of passed arguments (the [page name arg]
> # tag, among others). 
> #
> NewEscape  Yes
> 
> 
> ########### NewReport
> ##
> ## Default: Yes
> #
> # When set to No, it allows the old-style $variable interpolation on
> # MiniVend order reports.  The default prevents clashes with embedded Perl
> # code.
> #
> # NewReport  No
> 
> 
> ########### NewTags
> ##
> ## Default: No
> #
> # When set to Yes, it defaults all pages to using the new
> # page syntax. This can be counteracted with an [old] tag at the
> #
> NewTags    Yes
> 
> 
> ########### NoCache
> ##
> ## Default: blank
> # 
> # The names of MiniVend pages that are not to be cached (if I<Page Cache> is
> # being used) or built statically (if I<STATIC PAGE BUILDING> is in use).  If
> # the name is a directory, then no pages in that directory (or any below it) be
> # cached or built statically.
> #
> NoCache    ord special results new_account flypage
> 
> 
> ########### NoImport
> ##
> ## Default: blank
> #
> # When set to one or more MiniVend database identifiers, those database(s) will
> # never be subject to import. Useful for mSQL or DBI databases, or databases
> # that will *never* change.
> #
> # NoImport   inventory
>  
> 
> ########### NonTaxableField
> ##
> ## Default: blank
> #
> # The name of the field in the products database that is set (to 1 or yes)
> # if an item is not to be taxed. Will log an error and tax it anyway
> # if the field doesn't exist in the database.
> #
> # NonTaxableField
> 
> 
> ########### OfflineDir
> ##
> ## Default: offline
> #
> # The location of the offline database files for use with the MiniVend offline
> # database build command. Set to "offline" as the default, and is relative to
> # VendRoot if there is no leading slash.
> #
> # OfflineDir    /usr/data/minivend/offline
> 
> 
> ########### OldShipping
> ##
> ## Default: No
> #
> # Defines compatibility with older MiniVend shipping files -- they will break
> # if using formulas where 'x' is used as the substituted-for string for the
> # accumulated total.
> #
> # OldShipping  Yes
>  
> 
> ########### OrderCounter
> ##
> ## Default: blank
> #
> # The name of the file (relative to VendRoot if no leading /) that
> # maintains the order number.
> #
> OrderCounter    etc/order.number
> 
> 
> ########### OrderFrame
> ##
> ## Default: _top
> #
> # The frame name where the order page will go, if frames are
> # enabled.
> #
> # OrderFrame
> 
> 
> ########### OrderLineLimit
> ##
> ## Default: 0 (unlimited)
> # 
> # The number of items that the user is allowed to place in the shopping cart --
> # a robot defense.  See the docs.
> # 
> # OrderLineLimit   50
> 
> 
> ########### OrderProfile
> ##
> ## Default: blank
> #
> # An unlimited number of order profiles, specified relative to the
> # MiniVend page directory. Called by the mv_order_profile selector on an order
> # form, numbers start from 0.
> #
> # The order profiles themselves are a set of parameters defining the order
> # checking and lookup parameters, and can be conditional based on the
> # MiniVend [if ...][/if] tagging.  The [value ..], [data ..], and
> # [field ..] tags can be used.
> #
> OrderProfile    etc/order.profiles
> 
> 
> ########### OrderReport
> ##
> ## Default: etc/report
> # 
> # The location of the simple order report file. 
> #
> # OrderReport  pages/ord/report.html
> 
> 
> ########### PageCache
> ##
> ## Default: No
> #
> # When set to Yes, it will enable the cacheing of pages if the client
> # browser has cookie capability.
> #
> # PageCache  yes
> 
> 
> ########### PageSelectField
> ##
> ## Default: blank
> #
> # Sets a products database column which can be used to select the on-the-fly
> # template page. This allows multiple on-the-fly pages to be defined. If the
> # field is empty (no spaces, either!) then the default flypage will be used.
> #
> # PageSelectField    display_page
> 
> 
> ########### Password
> ##
> ## Default: blank
> #
> # The encrypted password that, when entered and sent as RECONFIGURE_MINIVEND by
> # the reconfigure program, will be checked against the user entry to enable
> # reconfiguration.
> #
> # If you use MiniVend's htpasswd.pl (from 2.03 or higher) it will write the
> # catalog configuration file if given 'catalog.cfg' as the file name. The demo
> # starts with an encrypted blank password, allowing you to just hit enter.
> #
> Password                test
> 
> 
> ########### PriceBreaks
> ##
> ## Default: blank
> #
> # The quantities where price breaks should be placed.  Used to set up the
> # pricing.asc entries to match actual pricing. Unlimited number of breaks --
> # only enter the lowest quantity it applies to.
> #
> # If present, there must be a valid I<pricing> database.
> #
> # This directive should normally be disabled unless you are using quantity
> # pricing (as in this demo).  This feature is somewhat deprecated
> # by CommonAdjust.
> #
> # PriceBreaks          2 5 10 25 100
> 
> 
> ########### PriceAdjustment
> ##
> ## Default: blank
> #
> # A MiniVend item attribute (see UseModifier) which contains a value upon which
> # a price adjustment to the item may be made. This feature is somewhat deprecated
> # by CommonAdjust.
> #
> # PriceAdjustment size
> 
> 
> ########### PriceCommas
> ##
> ## Default: yes
> #
> # Whether commas will be inserted in prices displayed by MiniVend.
> #
> # PriceCommas
> 
> 
> ########### PriceDivide
> ##
> ## Default: 1
> #
> # The number the price should be divided by to get the price in units (dollars
> # or such).
> #
> # PriceDivide 100
> 
> 
> ########### PriceField
> ##
> ## Default: price
> #
> # The field in the product database that will be accessed with the [item-price]
> # element.
> # 
> # If set to a non-existent field enables the CommonAdjust scheme
> # for all products.
> #
> PriceField   no_price
> 
> 
> ########### Random
> ##
> ## Default: blank
> #
> # Random messages 0 to 15, specified with a Vend-style filename, i.e. no .html
> # suffix, (even though the file will have one), relative to the MiniVend page
> # directory. Called by the [random] tag.
> #
> Random               rand1 rand2 rand3 rand4 rand5
> 
> 
> ########### ReadPermission
> ##
> ## Default: user
> #
> # Controls the permissions of the session database, and error.log file.  This
> # only takes effect if the program is creating a new file.
> #
> ReadPermission  group
> 
> 
> ########### ReceiptPage
> ##
> ## Default: blank
> #
> # The page to be displayed as a receipt after the user has submitted an order.
> # Replaces the standard 'confirmation' page.
> #
> ReceiptPage          ../etc/receipt
> 
> 
> ########### RecordDelimiter
> ##
> ## Default: blank
> #
> # In conjunction with FieldDelimiter, allows custom database formats to be
> # defined. See the documentation for use of this advanced feature.
> 
> 
> ########### RemoteUser
> ##
> ## Default: blank
> #
> # The value of the HTTP environment variable REMOTE_USER that will enable
> # reconfiguration.
> #
> # You need to enable HTTP basic authentication for this to work.
> #
> RemoteUser   mhuelsmann
> 
> 
> ########### ReportIgnore
> ##
> ## Default: blank
> #
> # Fields to ignore for the purposes of mailing an order. A COMMA-SEPARATED
> # list. Fields beginning with 'mv_' are ignored automatically.  This only makes
> # a difference if NewReport is set to No.
> #
> # ReportIgnore
> 
> 
> ########### RequiredFields
> ##
> ## Default: blank
> #
> # Fields that the user MUST fill at least something in before
> # their order can be processed. A COMMA-SEPARATED list.
> #
> RequiredFields       name
> 
> 
> ########### RetireDBM
> ##
> ## Default: blank
> #
> # Name of a dbm file which holds retired session IDs.
> #
> # USE it!
> RetireDBM retired_id
> 
> 
> 
> ########### RobotLimit
> ##
> ## Default: 0 (unlimited)
> #
> # Defines the number of consecutive pages a user session may access without a
> # 30 second pause.  If the limit is exceeded, then the command defined in the
> # Global directive LockoutCommand will be executed.
> #
> RobotLimit       50
> 
> 
> ########### Rotate
> ##
> ## Default: blank
> #
> # Rotating messages 0 to 15, specified with a Vend-style filename, i.e. no
> # .html suffix, (even though the file will have one), relative to the MiniVend
> # page directory. Called by the [rotate] tag.  IF YOU CHANGE THEM, THEY WON'T
> # TAKE EFFECT UNTIL A RESTART.
> #
> Rotate  rotate1 rotate2 rotate3 rotate4
> 
> 
> ########### SalesTax
> ##
> ## Default: blank
> #
> # The FIELD NAMES which are the keys to the sales tax calculation. This is
> # defined in ProductDir/salestax.asc, and is most commonly zipcode and/or
> # state, one of the fields on the order report. If left blank, no sales tax
> # calculation is done.  If an entry for that field name is not found, it uses
> # the field 'default', which must be defined in the file.  The default can be
> # 0.
> #
> SalesTax         state
> 
> 
> ########### SaveExpire
> ##
> ## Default: 30 days
> # The length of time that saved sessions will persist before being expired. See
> # SessionExpire for the format.
> #
> # SaveExpire    8 weeks
> 
> 
> ########### ScratchDir
> ##
> ## Default: etc
> #
> # The directory where scratch files will be written, notably cached searches.
> #
> ScratchDir  tmp
> 
> 
> ########### SearchCache
> ##
> ## Default: No
> #
> # Determines whether cacheable searches will be cached. It requires the
> # presence of the directory 'SearchCache' in the ConfDir directory (default
> # would be etc/SearchCache).
> #
> # SearchCache  Yes
> 
> 
> ########### SearchFrame
> ##
> ## Default: blank
> #
> # The frame name where search results will go, if frames are enabled.
> #
> # SearchFrame
> 
> 
> ########### SearchProfile
> ##
> ## Default: blank
> #
> # An unlimited number of search profiles, specified relative to the MiniVend
> # page directory. Called by the mv_profile selector on a search form, numbers
> # start from 0.
> #
> # The search profiles themselves are a set of variables defining the search
> # parameters, and can be conditional based on the MiniVend [if ...][/if]
> # tagging.
> #
> SearchProfile        etc/search.profiles
> 
> 
> ########### SendMailProgram
> ##
> ## Default: /usr/lib/sendmail
> #
> # The location of the sendmail binary, needed for mailing orders.  Must be
> # found at startup.
> #
> # SendMailProgram
> 
> 
> ########### SeparateItems
> ##
> ## Default: No
> #
> # Changes the default when ordering an item via MiniVend to allowing multiple
> # lines on the order form for each item. 
> #
> # SeparateItems Yes
> 
> 
> ########### SessionDatabase
> ##
> ## Default: session
> #
> # The base name of the session database. You don't normally need to
> # set this.
> #
> # SessionDatabase
> 
> 
> ########### SessionExpire
> ##
> ## Default: 1 day
> #
> # The time after which user sessions will expire.
> #
> # SessionExpire
> 
> 
> ########### Shipping
> ##
> ## Default: 0
> #
> # A flat shipping charge that will be added to any order. A
> # zero value disables it.
> #
> # Shipping
> 
> 
> ########### SpecialPage
> ##
> ## Default: blank
> #
> # Sets a special page to other than its default value.
> #
> SpecialPage          badsearch      special/badsearch
> SpecialPage          canceled       special/canceled
> SpecialPage          catalog        index
> SpecialPage          checkout       ord/checkout
> SpecialPage          confirmation   special/confirmation
> SpecialPage          failed         special/failed
> SpecialPage          interact       special/interact
> SpecialPage          missing        special/missing
> SpecialPage          needfield      special/needfield
> SpecialPage          nomatch        special/nomatch
> SpecialPage          noproduct      special/noproduct
> SpecialPage          notfound       special/notfound
> SpecialPage          order          ord/basket
> SpecialPage          search         results
> SpecialPage          order_security special/order_security
> SpecialPage          violation      special/violation
> 
> 
> ########### Static 
> ##
> ## Default: No
> #
> # A yes/no directive. Enables static page building and display features.
> #
> Static   No
> 
> 
> ########### StaticAll
> ##
> ## Default: No
> # A yes/no directive.  Tells MiniVend to try and build all pages in the catalog
> # statically when called with the static page build option.
> #
> StaticAll   Yes
> 
> ########### StaticDepth
> ##
> ## Default: 1
> # 
> # The number of levels of static search building that will be done if a search
> # results page contains a search. Set to 0 to disable re-scanning of search
> # results pages.
> #
> # StaticDepth 2
> 
> ########### StaticDir
> ##
> ## Default: static
> #
> # The absolute path of the directory which should be used as the root for
> # static pages. The user ID executing MiniVend must have write permission on
> # the directory (and all files within) if this is to work.
> #
> StaticDir   __CATDOCROOT__/pages
> 
> ########### StaticFly
> ##
> ## Default: No
> #
> # A yes/no directive. If set to Yes, static builds will attempt to generate
> # a page for every part number in the database using the on-the-fly page build
> # capability.
> #
> StaticFly   Yes
> 
> 
> ########### StaticPage
> ##
> ## Default: blank
> #
> # Tells MiniVend to build the named page (or pages, whitespace separated) when
> # employing the static page-building capability of MiniVend. Not necessary if
> # using StaticAll.
> #
> # StaticPage   info/about_us  info/terms_and_conditions
> 
> 
> ########### StaticPath
> ##
> ## Default: blank
> #
> # The path (relative to HTTP document root) which should be used in references
> # built by and referred to by the page-building capability of MiniVend.
> #
> StaticPath __CATDOCURL__/pages
> 
> 
> ########### StaticPattern
> ##
> ## Default: blank
> #
> # A perl regular expression which is used to qualify pages that are to be built
> # statically. The default is blank, which means all pages qualify.
> #
> # StaticPattern  ^info|^help
> 
> 
> ########### Sub
> ##
> ## Default: blank
> #
> # Defines a catalog subroutine for use by the [perl sub] subname arg [/perl]>
> # construct.
> #
> # You may define as many as desired.
> #
> # Sub
> 
> 
> ########### TaxShipping
> ##
> ## Default: blank
> #
> # A comma or space separated list of states or jurisdictions that
> # tax shipping cost, i.e. UT.
> #
> #
> TaxShipping          __TAXSHIPPING__ ,
> 
> 
> ########### UpsZoneFile
> ##
> ## Default: blank
> #
> # The file containing the UPS zone information,  specified relative to the
> # MiniVend page directory.
> #
> UpsZoneFile   products/ups_zone.asc
> 
> 
> ########### UseCode
> ##
> ## Default: yes
> #
> # Determines whether the product code will be used as the base for the
> # [item-link] file name.
> #
> # UseCode
> 
> 
> ########### UseModifier
> ##
> ## Default: no
> #
> # Whether modifier information will be tabulated and forwarded (like size
> # or color information).
> #
> #
> UseModifier size color
> 
> 
> ########### UserTag
> ##
> ## Default: none
> #
> # Define a MiniVend tag fully as powerful as the built-in ones.
> #
> #
> UserTag quick-table HasEndTag
> UserTag quick_table Interpolate
> UserTag quick-table Order  border
> UserTag quick_table Routine <<EOF
> sub {
>     my ($border,$input) = @_;
>     $border = " BORDER=$border" if $border;
>     my $out = "<TABLE ALIGN=LEFT$border>";
>     my @rows = split /\n+/, $input;
>     my ($left, $right);
>     for(@rows) {
>         $out .= '<TR><TD ALIGN=RIGHT VALIGN=TOP>';
>         ($left, $right) = split /\s*:\s*/, $_, 2;
>         $out .= '<B>' unless $left =~ /</;
>         $out .= $left;
>         $out .= '</B>' unless $left =~ /</;
>         $out .= '</TD><TD VALIGN=TOP>';
>         $out .= $right;
>         $out .= '</TD></TR>';
>         $out .= "\n";
> 	}
>     $out .= '</TABLE>';
> }
> EOF
> 
> # This UserTag sets a default font face, size, color
> # or more in a table without having to type it in every
> # time.
> # 
> # Usage:
> # [table-font face="arial, helvetica" size="-1"]
> # <TABLE><TR><TD>Test.</TD></TR></TABLE>
> #    Will do multiple tables.
> # <TABLE><TR><TD>Test.</TD></TR></TABLE>
> # [/table-font]
> #
> UserTag table-font Order face
> UserTag table-font PosNumber 1
> UserTag table-font addAttr 1
> UserTag table-font hasEndTag
> UserTag table-font Routine <<EOR
> sub {
> 	my ($face, $opt, $table) = @_;
> 
> 	my @parms;
> 	push(@parms, qq{FACE="$face"})
> 		if $face;
> 	for(qw/size color/) {
> 		push(@parms, qq{\U$_\E="} . $opt->{$_} . '"')
> 			if $opt->{$_};
> 	}
> 	push(@parms, $opt->{extra})
> 		if $opt->{extra};
> 	my $front = "<FONT " . join(" ", @parms) . '>';
> 	$table =~ s:(<T[HD][^>]*>):$1$front:ig;
> 	$table =~ s:(</T[HD]\s*>):</FONT>$1:ig;
> 	return $table;
> }
> EOR
> 
> 
> ########### Variable
> ##
> ## Default: none
> #
> # Variable values that can be accessed on MiniVend pages with __VARIABLE__
> # notation.
> #
> 
> 
> ########### WritePermission
> ##
> ## Default: user
> #
> # Controls the permissions of the session database, and
> # error.log file.  This only takes effect if the program is
> # creating a new file.
> #
> # Though it is highly discouraged, if you can't run vlink SUID
> # you can set this to 'world' and have MiniVend work.
> #
> WritePermission group
> 

#### Main MiniVend error.log (last 50 lines)
>  Script:    /flycat.cgi
>  Aliases:   /flycat
> 
- - - [12/Oktober/1999:12:02:21 +0200] - - Config 'flycat' from running server (9394)
- - - [12/Oktober/1999:12:02:22 +0200] - - Reconfig of flycat successful, build=.
192.168.1.105 HgycPTCN:192.168.1.105 - [12/Oktober/1999:13:01:28 +0200] simple /simple.cgi/about Safe: syntax error at (eval 62) line 1, near ") 555"
> 
> (888) 555-5555
> 
192.168.1.180 mE4J7MLA:192.168.1.180 - [12/Oktober/1999:13:38:15 +0200] simple /simple.cgi/index Runtime error: Couldn't open '/home/mhuelsmann/minivend/products/products.asc' read/write: Permission denied
> 
192.168.1.180 mE4J7MLA:192.168.1.180 - [12/Oktober/1999:13:38:24 +0200] simple /simple.cgi/ Runtime error: Couldn't open '/home/mhuelsmann/minivend/products/products.asc' read/write: Permission denied
> 
192.168.1.180 mE4J7MLA:192.168.1.180 - [12/Oktober/1999:13:39:11 +0200] simple /simple.cgi/index Runtime error: Couldn't open '/home/mhuelsmann/minivend/products/products.asc' read/write: Permission denied
> 
192.168.1.180 mE4J7MLA:192.168.1.180 - [12/Oktober/1999:13:39:16 +0200] simple /simple.cgi/ Runtime error: Couldn't open '/home/mhuelsmann/minivend/products/products.asc' read/write: Permission denied
> 
- - - [12/Oktober/1999:16:13:34 +0200] - - Added/changed catalog simple:
> 
>  Directory: /home/mhuelsmann/minivend
>  Script:    /simple.cgi
>  Aliases:   /simple
> 
- - - [12/Oktober/1999:16:13:34 +0200] - - Config 'simple' from running server (9394)
- - - [12/Oktober/1999:16:13:34 +0200] - - Reconfig of simple successful, build=.
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:57:53 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:58:09 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:58:15 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:58:25 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
- - - [13/Oktober/1999:12:04:07 +0200] - - STOP server (9394) on signal TERM
- - - [13/October/1999:12:04:15 +0200] - - MiniVend V3.14-3
- - - [13/October/1999:12:04:15 +0200] - - Config '_mv_admin' at server startup
- - - [13/October/1999:12:04:15 +0200] - - Config 'flycat' at server startup
- - - [13/October/1999:12:04:16 +0200] - - Config 'simple' at server startup
- - - [13/October/1999:12:04:16 +0200] - - UserTag 'quick_table' code is not a subroutine reference
> In line 1535 of the configuration file 'catalog.cfg':
> UserTag quick_table Routine <<EOF
> 
- - - [13/October/1999:12:04:17 +0200] - - START server (6744) (INET and UNIX)
- - - [13/October/1999:12:04:17 +0200] - - Accepting connections from localhost|127\.0\.0\.1
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:05:46 +0200] simple /simple.cgi/index Runtime error: Can't open '/home/mhuelsmann/minivend/products/c2000.csv' read/write: Permission denied
> 
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:06:37 +0200] simple /simple.cgi/index Runtime error: Unterminated quote at line 5546
> 
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:07:15 +0200] simple /simple.cgi/index Runtime error: Unterminated quote at line 5546
> 

#### Catalog error.log (last 50 lines)
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:57:53 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:58:09 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:58:15 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 8X76x4Qx:192.168.1.180 - [12/Oktober/1999:16:58:25 +0200] simple /simple.cgi/process/locale/fr_FR/page/index Runtime error: Illegal division by zero at (eval 63) line 10.
> 
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:05:46 +0200] simple /simple.cgi/index Runtime error: Can't open '/home/mhuelsmann/minivend/products/c2000.csv' read/write: Permission denied
> 
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:06:32 +0200] simple /simple.cgi/noframes Hammered session lock LOCK_gDPciTIw:192.168.1.180 left by PID 6761
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:06:37 +0200] simple /simple.cgi/index Runtime error: Unterminated quote at line 5546
> 
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:07:10 +0200] simple /simple.cgi/frames Hammered session lock LOCK_gDPciTIw:192.168.1.180 left by PID 6772
192.168.1.180 gDPciTIw:192.168.1.180 - [13/October/1999:12:07:15 +0200] simple /simple.cgi/index Runtime error: Unterminated quote at line 5546
> 

#### DBM Status
Have GDBM_File.
Have DB_File.



Search for: Match: Format: Sort by: