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
<INPUT TYPE=IMAGE ...> 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