MiniVend 3.00: * A powerful static page building capability is in place. This allows completely automated generation of static HTML pages based on MiniVend databases. Use it to build static category lists and product pages that will load quickly without the necessity of MiniVend parsing them. * Dynamic page parsing speed is increased by about 30% when using the standard syntax. * Multiple product databases allow the breakout of product lines, new-used product separation, multi-vendor order routing, and more. The database an item is ordered from is kept with the item in the shopping cart, so items ordered with the same part number from different databases will not overwrite each other. * Database tables are now writeable. Atomic incrementation is supported, which means that reliable inventory counts can be kept. Form-based database updates are expanded to encompass all databases, not just mSQL. * Transactions can be logged to an arbitrary file in an arbitrary format with [tag log file]data[/tag]. * Databases can be exported to an ASCII file with the [tag export ...] [/tag] construct. * Shipping is much improved, with built-in subroutine calls, error messages for out of bounds condtions, drop-in UPS zone files, configurable handling charges, UPS cost rounding, and more regular syntax. * Item attribute selection greatly improved, with automated building of the item attribute selection. Item attributes can easily be specified at the time of order. * Item attributes can cause price adjustments on either an item basis or attribute basis. * Uses Data::Dumper's C-based uneval code when available, improving session storage speed. * Database tables are only actually opened when referenced, improving speed greatly on systems that have a large number of tables in the database. * Experimental DBI/DBD example interface provided, which will allow attachment of supported SQL databases like Solid, Oracle, or Sybase. THIS IS EARLY ALPHA SOFTWARE. Use only on an experimental basis, never with live data. * Search engine has improved coordinated matching, with full field-independent case-sensitivity, substring matching, and negation. * Search speed greatly improved when doing complex field-coordinated searches. * The FullUrl directive allows different virtual hosts to have link programs with the same name, i.e. all named /cgi-bin/shop. * A new (and still experimental) page syntax allows more regular parsing of tags, removing some of the interpolation-order anomalies inherent in the old-style tags. It can be invoked on individual pages with the [new] tag. * Mall directive allows separate MV_SESSION_ID cookies for each CGI program, enables multiple and separate sessions for stores on same server * Search cacheing is much improved, and searches can be pre-built when using the static page build capability. * Pages can be cached, which especially improves performance of large parsed pages. Static build is preferred to cache, but with large databases it is not practical to build every item in advance. * Supports Perl 5.004 transparently, making runtime changes to affected modules. Removes support for Perl 5.002 * Better security with the NoAbsolute, AdminPage, .access, and AdminDatabase tags. * Improved handling of cookies, with savable sessions and dynamic expire times. * Mailed orders may have MIME attachements. Though the author loathes routinely-used MIME, it has value as a way to attach an encrypted credit card number for easy processing by an order entry workstation. * Search sorting bugs fixed. * New $Safe{'cgi'}->{form_value} access in embedded Perl allows complex conditional search or order routines to be more intelligent with regard to user input. * New FormIgnore directive allows certain variables to be expunged from the user session. * Runs with taint checking enabled, even when using most embedded Perl code. * INET and UNIX servers run concurrently. * makecat program now parses httpd.conf (Apache/NSCA style) to help determine defaults. * makecat program is now monolithic, and saves all catalog configurations in one file. * Added [discount-price n*] tag, finds discounted price within [item-list]. * Added [item-discount] tag, finds difference between regular and discounted price within [item-list]. * mv_click_map and mv_click.action allows mapping of mv_click to any submit. * Added configureable [more-list]. * Changed default CheckoutPage to work without explicitly setting. * Added FrameFlyPage directive for frames flypage default. * Documentation changes and improvements. * Many other minor bug fixes, improvements, and changes. MiniVend 2.03c - Fix session ID bug introduced in 2.03b. MiniVend 2.03b - AOL-inspired Cookiehost to avoid proxy server problems. MiniVend 2.03a - Sendmail security fix, sort-command security fix. MiniVend 2.03 - User reconfiguration and internet-domain server, * Re-configuring a catalog can now be done on an individual basis. No more server re-starts for a user to change their configuration. * MiniVend no longer requires DBM, though it is still best to use GDBM or DB_File if available. There is a file-based session storage message mechanism, and product databases can be stored in memory. This is automatically selected if appropriate. * Multi-server mechanism changed completely. Only one server runs when in quiescent state -- it forks additional servers as necessary, up to a limit you decide. This works around a memory leak in Safe.pm, the server can now run for months on end. * Runs on just about any Unix operating system with no changes, providing Perl 5.002 is available. This includes IRIX, which formerly would not run MiniVend. * Perl subroutines can now be defined on three levels, and directly called from MiniVend pages. Two use the Safe.pm module for enforcing security, while an administrator-enabled GlobalSub routine can run external programs for complete control. * mSQL support is now considered stable, and the databases can be updated by forms from within MiniVend. * The link CGI program may now use TCP-based sockets, which allows the link CGI to be located on a different machine than the MiniVend server. Be careful of security, though! * Perl link programs are provided for systems without a C compiler. (Solaris still needs a C compiler for File::Lock, unless it is already installed on Perl.) Not production quality -- user help would be appreciated. * Search sorting can be done right on the page from returned fields, and be sorted by field based on form options. * The [if ...] conditionals are much improved. Contained HTML can now be deferred until the last interpolation pass with the [post] [/post] tag pair. * New mv_click and mv_check special variables set multiple form parameters with a single form button. * Cookies are only sent once if enabled, preventing annoying multiple warnings if the user has them turned on. * If the user is going through multiple proxy servers (as AOL users do), the session will be stable. * If REMOTE_USER is present, the IP address will not be used for the session name, allowing the same user to connect to a saved session from any machine. * Many other minor bug fixes, improvements, and changes. - Server now runs on either UNIX-domain or internet domain sockets - mSQL arrayhash primitive added - More backend support hooks, can be integrated with Cybercash - Order quantities optionally fractional - Shopping carts can be manipulated by Perl [perl carts] - [uniq] and [sort opt] constructs added to search lists - Rudimentary search caching - Improved demo - Fixed [if explicit ...] tag (again) - Added TcpHost, TcpPort, HouseKeeping, SearchCache, Password, MasterHost, RemoteUser, FractionalItems, GlobalSub, Sub directives MiniVend 2.02 - Multiple Shopping Carts and mSQL * mSQL support * Added [msql hash|array|html|param] SQL code [/msql] , [msql list SQL code] substitution-list [/msql], [item-param n] tags * Added MsqlDB, MsqlProducts, CreditCardAuto, SeparateItems, Locale catalog directives * Untrapping of Safe op codes defined in global minivend.cfg with SafeUntrap directive (249 and 148 by default) * Better credit-card checksum validation, with conditional PGP encryption that can be embedded in order email * Fixed [if explicit ...] tag * Removed CreditCards directive * Greatly improved search reliability * Added search sorting * Multiple shopping carts (buy/sell) * Automatic installation of File::Lock module on Solaris * Improved PGP support * Removed standard Des capability * Improved stop script to kill non-responders (with -f option) and clean up sockets/pidfiles * Configuration bugs fixed (ownership and SampleUrl) * Added (if_loop_field) to [loop list], make separate from [item-list] still compatible with old * Loop lists can now be quoted values, still no embedded ] MiniVend 2.01 - Maintenance Release * Added modifier variables to user values * Encapsulated code to prevent dying on catalog config and execution * Improved makecat scripts * Corrected silly duplication of files * Improved [selected] and [checked] * Fixed minor demo problems * Changed IRIX locking to flock() * Changed configure to set ForkSearches to NO on SunOS and OSF/Alpha MiniVend 2.0 - The ISP release * Multiple independent and shared catalogs * Embedded Perl code using Safe.pm (still has memory leak?) * Range searching in the TextSearch module (add Glimpse) * Discount policy * UPS lookup shipping calculation * Multiple configurable attributes (size/color, etc) * Order profiling allows multi-level screens * New tags [loop item,item...]value[/loop], [modifier-name attribute] and [item-modifier attribute] * Added [else][/else] to [if_field] * Demo much improved * Removed MAT * No option for svend in installation, must install manually * No option for netstart * Made Solaris default to full support, still needs File::Lock * Fixed library ordering problem * Many reliability improvements MiniVend 1.03 - Multiple servers and disconnected searching * Multiple servers can be run for the same catalog * Searches are forked so single-server installations will not see delays while searching * Cookie support * Quantity price breaks * Revamped demo yet again * Order lists can be displayed anywhere * Nameable order and search pages * Accessories feature * Added TaxShipping, NonTaxableField, PriceField, DescriptionField, AlwaysSecure, ExtraSecure, HammerLock, MultiServer, PageCheck, PriceBreaks, MixMatch, Cookies, Specialpage, Database directives * Searches are now independent on database field * Fixed bugs in match paging * Arbitrary table-like text formatting with [row] [column] elements * Vend variables available with [if][else][/else][/if] * Configuration script now handles multiple installs, and GCC is recognized * Code somewhat modularized * Pages are checked for fatal errors before server starts??? * Static mode will be almost unusable unless the Apache Perl_fast mode is used (not supported or explained) * MAT now displays error logs??? * Unlimited databases * Special pages are mapped * [data database field key] tag added MiniVend 1.02 - SSL Security * Revamped demo to have fewer frames * Added CreditCards, EncryptProgram, FrameOrderPage, SecureOrderMsg, SecureURL directives to configuration * Added __secure suffix to target of [pagetarget] element, allows secure transmission of arbitrary pages * Added [process-target target secure] element * Added [secure-order] element * Improved "match exactly" search, removed bug that could crash program (not the system) * Added Imagemap behavior for forms, uses the mv_todo.map variable to pass "client-side" maps * Added TCP-based link program and Server.pm.tcp to allow TCP-based communication (no auto installation). THIS IS A SECURITY HOLE IF USING SSL AND DES @ Fixed bug causing session close if bad quantity entered MiniVend 1.01 - Extensive changes * Added [salestax], [subtotal] tags * Added CustomShipping, DefaultShipping, Backend, SalesTax, and Tracking directives * Added backend order entry in the tracking DBM database * Added order archiving in the tracking DBM database * Added page stats in the tracking DBM database * Added custom shipping charges with shipping.asc file * Added sales tax calcuation with salestax.asc file * Changed name of vendadm/avend to MAT * Documented all of the above * Added example backend order entry programs (bin/entord and bin/trackrpt) MiniVend 1.0a - Fixed minor configuration and catalog bugs 2/13/96 MiniVend 1.0 - Extensive changes to the documentation 2/11/96 and programs to change the name. * Added [random] element and Random directive for random messages embedded in pages * Added [help item] element and Help directive for inline help messages Version 0.2m8 * Added [body n] element and Mv_Background, Mv_TextColor, Mv_BgColor, Mv_LinkColor, and Mv_VlinkColor directives for user-customizeable appearance * Added [buttonbar n] element and ButtonBars directive for canned button bars Version 0.2m7 * Added Server.pm and Http.pm support, now much faster when running in server mode * Made locking more portable by using Vend::lock.pm module * Changed configure script to support server mode * Added VendRoot/etc dir to hold socket, pidfile, and conf files * Docs still don't discuss all this, next version Version 0.2m6 Splinter version by Mike Heins - February 3, 1996 * Added client-side imagemap support * Added tags [areatarget page target] [area page] * Added comma prices with PriceCommas directive * Configuration utility for installation * Improved documentation for all * Added frames demo * Deleted [search][/search] tag * Regularized variables over vendadm.pl, vendpage, vend.pl * Added password check on vendadm.pl * Changed default file names to make ready for NT version Version 0.2m5 Splinter version by Mike Heins - January 26, 1996 * Added frame support * Add tags [pagetarget page frame][/pagetarget] [frames-on] [frames-off] * vendadm(8L) utility added to help administer Vend Version 0.2m4 Splinter version by Mike Heins - December 28, 1995 * Subdirectory capabilty added ('/' added to $codere) * Search engine added to search product index (ASCII) * Search engine added to search page tree (glimpse, untested) * Add tags [search][/search] [search-list][/search-list] [item-link] * Product codes put in dbm files, with makedb command to make them from ASCII source * Fourth field (page location) added to product file * vendpage(8L) utility added to help maintain tree Version 0.2 svend.c cleaned up configuration directives now get correct default values Version 0.1 initial release