[interchange-cvs] interchange - jon modified WHATSNEW
interchange-core@interchange.redhat.com
interchange-core@interchange.redhat.com
Fri Jun 7 11:31:01 2002
User: jon
Date: 2002-06-07 15:30:56 GMT
Modified: . WHATSNEW
Log:
Clean out old stuff from WHATSNEW -- only list changes from 4.8 branch.
Revision Changes Path
2.13 +3 -2162 interchange/WHATSNEW
rev 2.13, prev_rev 2.12
Index: WHATSNEW
===================================================================
RCS file: /var/cvs/interchange/WHATSNEW,v
retrieving revision 2.12
retrieving revision 2.13
diff -u -u -r2.12 -r2.13
--- WHATSNEW 26 Jan 2002 15:38:15 -0000 2.12
+++ WHATSNEW 7 Jun 2002 15:30:56 -0000 2.13
@@ -1,9 +1,11 @@
------------------------------------------------------------------------------
What's new in each version of Interchange
+ (since the version 4.8 branch)
------------------------------------------------------------------------------
+
Interchange 4.9.0 not yet released
Core
@@ -25,2168 +27,7 @@
Payment
-------
-* Support for WellsFargo added
-
-------------------------------------------------------------------------------
-
-Interchange 4.8.4 not yet released.
-
-Admin UI
---------
-
-* About links are working now in catalogs that are not based on foundation.
-
-* Edit button which appears on flex_select page if database attribute
- LARGE is set works now as expected.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.8.3 released 2001-11-27.
-
-Core and usertags
------------------
-* Some fairly major changes to limit exposure to the cross-site
- JavaScript vulnerabilities described in:
-
- http://www.cert.org/advisories/CA-2000-02.html
-
- The vulnerability is only serious if you have "CookieLogin Yes"
- in your catalog.cfg definition (as unfortunately was in foundation).
-
- It is recommended that you either set CookieLogin to No, or at least do
-
- SaveExpire 8 hours
-
- - Notably, [cgi ...] and [value ...] will not display < characters
- unless you specifically enable it with the enable-html=1 option.
-
- Normally this should cause no problems. If your site breaks
- because of this update, you can temporarily re-enable this with:
-
- Promiscuous Yes
-
- in your catalog.cfg file.
-
-* New filter restrict_html. Called with:
-
- [filter restrict_html.a.b.i.u.p.br]
- <SCRIPT> malicious('Gotcha!') </SCRIPT>
- [/filter]
-
- which prevents the <SCRIPT> from executing.
-
-* Fixed crash of page servers in PreFork mode due to phantom
- database entries created by unwanted auto-vivification in
- $Vend::Cfg->{Database}. Much thanks to Chris Ochs who researched
- this problem which was plaguing a lot of people and wouldn't have
- been found without his fine help.
-
-* Fixed Vend::Util::round_to_frac_digits() to work if frac_digits are
- zero. Thanks to Shozo Murahashi <murahashi@ayayu.com> who
- investigated and detailed this problem.
-
-* Make mv_more_alpha work in query tags.
-
-* Fixed get_option_hash in Util.pm, thanks to Javier Martin
- <martin@trymedia.com> who discovered and analyzed this bug
- (in his case any options for &charge are ignored).
-
-* Fixed bug in database query methods which can hose query strings
- like "select ... where column like '%...%'".
-
-* Issue an error message if a search can not be performed due
- to the NoSearch directive.
-
-* Added hide option to usertags email and email_raw.
-
-* Check for Digest::MD5 instead of MD5 in the usertag version and
- the RPM spec file.
-
-* New option -D for localize script (Don't put default locale in output.),
- insert comments only if they are distinct from the key.
-
-* Allow [dump] of portion of session, for example [dump scratch].
-
-* New methods hash_query and get_slice added to the Table modules.
-
-* In cases where tabs end up in database fields, prevent corruption of
- tab-delimited DB exports by filtering tabs to spaces.
-
-* Added workaround for a bug in FreeBSD stock Perl build that sometimes
- caused a segmentation fault when starting the Interchange daemon. If
- you're upgrading from an earlier verson of Interchange, be sure to grab
- the appropriate setting in interchange.cfg. Search the icconfig doc for
- 'MV_DOLLAR_ZERO' for more info.
-
-* Fix oversight that kept [on-match] and [no-match] from working with
- [loop list=`...`].
-
-* Close security hole by disabling Safe :base_io group by default.
-
-* Log error message if order profile not found.
-
-* Add "filter" order check type. It runs the value through a filter and
- checks that it is unchanged.
-
-* Support Database xxx NO_ASCII_INDEX attribute.
-
-* Prevent death when using row_hash in DBM types and non-existent key
- is hit.
-
-Payment
--------
-* Bank of America payment module added.
-* Added $transtype fix in AuthorizeNet module. Thanks to Javier Martin.
-
-Admin UI
---------
-* Check for delete permissions before giving option and/or allowing delete
- of orders. Resolves bug #333. Thanks to Donal Harrington and Mark Johnson
- for pointing this out.
-
-* Static page building uses the original catalog settings instead
- of the UI ones for images and URLs. Fixed two more bugs which
- render selection of "never build" and maximum number of pages useless.
-
-* Spreadsheet save error fixed. Interchange prevents loading of spreadsheet
- values when the key is empty now. This has the side effect that
- autonumbering is not possible when adding records from the spreadsheet.
-
-* New usertag diffmerge, improved usertag diff.
-
-* Bump matchlimit for order report queries to 100000.
-
-* Correct wizard help links. Thanks to John Beima for reporting.
-
-* Prevent limitations on database show for superuser in list_databases
- usertag, found by Ed LaFrance.
-
-I18N
-----
-* localization support added to UI usertag file_info.
-
-* Hebrew locale from Chen Naor <chen@lilux.co.il> added.
-
-* Japanese locale from Murahashi <murahashi@ayayu.com> and
- Hiroyuki Cozy Kojima <kojima@redhat.com> added.
-
-* Brazilian Portuguese locale from Jack Tsai <jack@3light.com.br> added.
-
-Documentation
--------------
-* Add ic_howto_cvs by Dan Browning, ic_ecommerce by Ed LaFrance (based on
- rediscovered parts of the Minivend 4 docs), and the long-lost IC FAQ.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.8.2 released 2001-09-19.
-
-Core and usertags
------------------
-* In ups_query tag, don't use defaults for country, always send. Fixes
- problem caused when UPS changed their behavior.
-
-* Add ability to set beginning/ending years in date widget.
-
-* localize now catches [msg] tags.
-
-* compile_link: Check for build_dir = source_dir to prevent attempts by
- File::Copy to copy files on top of themselves; truncates the files.
-
-* Fix bug that caused HTML entities to not be encoded if another filter was
- already chosen.
-
-* UserDB: Add outboard_key_col option so that you can do lookups on an
- account_id or other information with outboard DBs.
-
-* Add option to print ellipsis (...) after truncated [filter] results,
- like this:
-
- [filter 10]Howdy there good buddy[/filter] -> Howdy ther
- [filter 10.]Howdy there good buddy[/filter] -> Howdy ther...
-
- Wherever filters work, including PREFIX-filter, etc.
-
-* Fix Util::change_url and Interpolate image rewriting for any full URL
- protocol specification (like javascript:), not just http: and https:.
-
-* makecat
- - take sampleurl from command line if -F specified.
- - new option --catalogconf to make makecat fully usable on Debian
- installations
-
-* Config.pm: Change root_dir parse routine so that it returns a scalar.
- Add root_dir_array parsing routine for TemplateDir.
-
-* Strip Windows-style path components from uploaded images (in update_data).
-
-Foundation
-----------
-* Fix some country and state database problems for Great Britain.
-
-* Show correct 'log in' or 'log out' text for foundation users.
-
-* makedirs: Don't try to chown or chgrp if no username was given
- (as is common when running as root, mode U, no group).
-
-* Fix promo bug forcing thumbnail sizes to 80 pixels.
-
-Admin
------
-* Support UI_LANG_DIRECTION variable: rtl (right to left, for Hebrew,
- Arabic, etc.) or ltr (left to right).
-
-* Fix build_related.html so it works with DBM databases.
-
-* icmenu: The "create new affiliate" had an exclude_on setting that
- should've been an include_on setting. The menu option now shows up in
- the correct place. Fix for bug #297.
-
-* page_edit: Fix problem where image paths are substituted, reported
- by Cameron Prince and others.
-
-* preferences.html fix: close input tag.
-
-* Add support for no-cookies browsing to numerous UI forms.
-
-* Add the Ultimate Image Widget (tm) suggested by Cameron Prince. Combines
- best aspects of imagehelper and imagedir widget. Activated by adding
- wildcard on end of outboard parameter in metadata, i.e. images/items/*
- instead of images/items.
-
-* Primitive.pm: Add capability for specifying suffix in imagedir widget type.
- Specify one of:
- - Complete regex: \.(gif|jpe?g|png)
- - or list of extensions (case-sensitive): gif jpg png
- - or to ignore case on some: (?i)gif (?i)jpg JPEG png
-
-* Fix disappearing submenus in UI_STD_HEAD. Thanks to Brian Kosick for
- noticing the problem.
-
-* Stop admin menus from appearing right after a logout. Thanks to John
- Beima for pointing out the fix.
-
-* Stop generating OPTION GROUP tags for Opera browser in UI Wizard.
-
-* Resolve bug #319 by removing a page that was specific to the now-defunct
- sample computer data.
-
-* Don't cut help topics after the default of 50 items (thanks to Ed LaFrance).
-
-Packaging
----------
-* Minor RPM dependency improvement for interchange-foundation-demo.
-
-* Debian packaging improvements:
- - install README.debian into /usr/share/doc
- - useful descriptions for interchange-ui and interchange-cat-foundation
- added (closes: #109228, #109565)
- - foundation catalog was disabled if not reinstalled in postinst
- - change owner/group of the base directory for static HTML files
- to the Interchange owner/group
- - let makecat write into /etc/interchange/catalogs.cfg
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.8.1 released 2001-08-13.
-
-Foundation
-----------
-* Fix flypage typo preventing display of options.
-
-* Fix stock-alert thumbnail display (based on image availability).
-
-* Changed from and reply-to email address to __EMAIL_SERVICE__
- This brings it line with the name in the variable table.
-
-* Fix to catalog.cfg that closes longstanding history-scan "expired" problem.
-
-* Fix problem with PostgreSQL userdb table definition found by Brian Kosick
- <briank@nacs.net>.
-
-* Add counties of Ireland to state.txt, correct two minor UK/EI mistakes.
- Thanks to Donal H. <donalh@online.ie> for submitting this update.
-
-* Add DECREMENT_INVENTORY to the default variable.txt, fixing bug #292.
-
-* Rename some images to get around long path problems when not using
- a reasonable tar program, e.g.:
-
- dist/foundation/templates/sampledata/tools/images/items/gift_certificate_large.gif
-
-* Remove GNUisms from Foundation configuration scripts.
-
-Admin UI
---------
-* Allow setting UI_SECURE with environment variable MV_UISECURE.
-
-* Set UI_HELP_URL to interchange.redhat.com by default, to enable access to
- most up-to-date online help in the UI.
-
-* Add MV_DEMO_MODE variable and MVC_DEMOMODE makecat setting.
-
-* Swedish UI locale (sv_SE) added by Tommi Labermo <tommi.labermo@surfnet.fi>.
-
-* Many more i18n improvements from Stefan Hornburg.
-
-* Do something reasonable if transactions or userdb is defined LARGE.
-
- - If LARGE and no search input comes to order page, bounce to
- flex_select with proper table selected and page title set to something
- reasonable.
-
- - If a query by example is put in, use order.html (transactions)
- or customer.html (userdb) to actually display the item.
-
-* Fix longstanding admin/admin/error bug when you hit a non-existent
- transactions or userdb table.
-
-* Allow manual setting of order number from UI.
-
-* Make new dbconfig stuff show up if UI_DBCONFIG is set.
-
-* Carry destination forward on failed login attempt at login.html.
-
-* Disable useless meta link in the wizard.
-
-* Define new action-click parameter to put an mv_click in
- where it will only be executed on Next --> {next_text}.
-
-* Make Cancel really work on order number setting, using above strategy.
-
-* Fix page footer include on wizard/do_launch.html.
-
-* Add link to documentation after initial preview build....
-
-* Update wizard_profiles to use did_products=required instead
- of old products=defined
-
-* In the wizard, the admin user was being created in both the Admin
- database, and the Customer database. This left the admin user password
- in plaintext in the customer database. Now the admin is created in the
- admin db, and the customer in the customer db.
-
-* Modify all pages to use ui_wizard_fields instead of the
- table=variable and fake keys.
-
-* Slightly refine default tax location so it is only presented for US.
-
-* Make "Detect Settings" dependent on MV_DEMO_MODE.
-
-* Don't die if ImageMagick not there. Give error saying bad thumbs.
-
-* Fix Primitive.pm reference integrity problem
- ($Vend::UI_Entry->{table_control_ref}).
-
-* Make secret not mandatory for AuthorizeNet setup in Wizard.
-
-* Add missing file pages/include/order_delete_archive preventing order
- deletion/archiving.
-
-Tags
-----
-* In display tag, add option for cases where we don't want a translation
- (e.g. mv_metadata may be written in another language).
-
-* In image-collate tag:
-
- - Always push sku/image/thumb data onto stack. Before, image files
- didn't get copied from the upload directory if an 'image' field was
- already properly set up and the 'Generate thumbnails' option was
- not chosen.
-
- - Add support for plain tar archives.
-
- - Copy correct thumb filename (rarely caused trouble since we usually
- use the same filename for both).
-
-* return-to tag: When mv_data_table was in ui_return_to, would get
- transformed to the name of the table variable set to a blank value.
- This tromped on any field named the same as the table. Resolves bug #288.
-
-* In table-editor, allow disabling meta on a per-form basis with no-meta=1
- parameter.
-
-Core
-----
-* Fix problem where refresh or add of items would set cart back to "main".
- Now, once you set the cart to something besides main it should stick.
-
-* Fix bug where -u or -i did not work because the Config.pm setting
- ignored the fact that the other option was defined. Resolves bug #286.
-
-* Always set PriceDivide in operation if any Locale is set.
-
-* Make PriceDivide work properly for shipping.
-
-* Make documented "o PriceDivide = 1" work properly.
-
-* Fix bug where if table was not imported prior to tag_perl tables call, it
- would be imported but the $Db{table} object would never be set. Resolves
- Bugzilla #289.
-
-* Changes to support linkmode configuration in makecat.
-
-* In Order.pm, put the real profile name into error log ('Unknown order
- check ...').
-
-* In Util.pm: Fix bug where a merge hash would not properly set options
- if the base hash was a ref.
-
-* Fix problems with AuthorizeNet module found by Pann McCuaig
- <pann@ourmanpann.com>.
-
- - changed zip reference to b_zip
- - Removed requirement for secret
- - added country and email to variables sent
-
-Install/makecat
----------------
-* Makefile.PL --nocpaninstall option added, needed to fix the longstanding
- Debian bug #93669.
-
-* Overhaul permission setting when making catalogs as root. Now makes image
- files group writable (never needed before UI image upload), as well as
- making files the correct group depending on M/G/U permission modes.
-
-* Add automatic determination of MVC_CATGROUP based on permission
- mode and supplied UIDs.
-
-* Only offer setting of default linkmode if one is root.
-
-Miscellaneous
--------------
-* Added script for use in cronjobs, reset_order_number. Provides
- date-based order numbers for Interchange. From an idea posted to the
- interchange-users@ic.redhat.com mail list by Leon Harris <leon@quoll.com>.
-
-* Added new component 'news' to eg directory. Enables the shop owner to
- easily add news items to the foundation catalog. By Ton Verhagen.
-
-Packaging
----------
-* Much reworking of Debian packages. Stefan no longer considers them to be
- experimental status.
-
-* Update RPM documentation to cover interchange-foundation-demo and
- interchange-doc, and some other missing things.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.8.0 released 2001-07-27.
-
-* Minor bugfixes.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.7 released 2001-07-26.
-
-Admin UI
---------
-* Change payment wizard to do a better job. Only alters one global parameter,
- MV_PAYMENT_MODE, to set up the route. The rest are done via Route.
-
- - Change payment stuff to use Payment routes.
- - Change CyberCash config to have them upload their merchant_conf.
- - Add some parameters to Skipjack and Signio.
- - Rename parameters to be gateway-specific.
- - Set up to use new ui_wizard_fields= and wizard support, reducing page
- complexity.
-
-* More admin translations.
-
-* Update admin order entry page to use [item-options]. Delete reference to
- old "related" field in products. Remove [item-accessories size] and color.
-
-* Prevent double-escaping of [ characters in item.html.
-
-* page_new.html: Prevent path name in template name from polluting
- template file spec. Prevent lack of current content from aborting page
- edit. Make "New Page" honor UI_TEMPLATE_DIR.
-
-* ship_data.html: Read shipmode from either CGI or Values, which allows us
- to bounce to the ship_data page and retain the mode.
-
-* table-editor:
-
- - Remove improperly-set default for widget type disabling metadata from
- the mv_metadata table.
-
- - Wizard mode no longer requires a table, it creates a transitory
- database object "mv_null" and uses that.
-
- - In wizard mode, you don't need to have a key field, and you can
- specify "ui_wizard_fields" instead of having to supply both
- ui_data_fields and ui_display_only.
-
- - Wizard no longer displays a Back button if no "mv_prevpage" is defined.
-
- - View now can be "none" to override table display info in mv_metadata.
-
- - Add start of some docs.
-
-Foundation
-----------
-* Add "Require module DBI" to foundation catalog configuration to further
- isolate errors with SQL problems.
-
-* Make address and fname field lengths match between userdb and transactions.
-
-* On Stock-alert page, only display a thumbnail if it exists.
-
-* Fixed bug #275, found by Barry Flanagan. Up-sell question was mislabeled
- as "cross-sell".
-
-* Change results.html button style to text type for Macs, which can't handle
- onClick with type=image. Resolves Bugzilla #268.
-
-Core
-----
-* Remove CyberCash directive, but warn so old catalogs don't fail startup.
- Never use CyberCash directive or never-implemented mv_payment_mode
- for charges.
-
-* Clean up some discount pricing routines.
-
-* Encode HTML entities for accessories <textarea>s. (Keeps <img src="...">
- from being processed for the current image directory in UI page or
- template editing areas.)
-
-* Move cart copy to before inline_profile is run.
-
-* Put a structure in sesssion with the payment_id for each route, so that
- split charges can be tracked.
-
-* Fix problem with payment_mode being run in check_only mode.
-
-* Change Order.pm so that it handles failed routes properly, even subroutes.
-
-* Get gateway from either Route or MV_PAYMENT_GATEWAY if not defined and
- there is no gateway.
-
-* Unique check allows passing a custom message like "Username already
- exists" instead of the default somewhat cryptic message.
-
-* Document --sharedir and --shareurl in makecat POD.
-
-* Fix --DEBUG startup option docs, resolving Bugzilla #158.
-
-Packaging
----------
-* Several Debian packaging improvements.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.6 released 2001-07-18.
-
-Core
-----
-* Instituted VAT and extended taxing, including UI support.
-
- If the SalesTax directive is set to "multi", the type of tax is read from:
-
- [data table=country col=tax key="[value country]"].
-
- NOTE: Most everything is configurable for variable name and
- field name via Variable MV_*, but defaults are shown below.
-
- 1. If no string is found, tax returns 0.
-
- 2. If string "simple:(\w+)" is found, uses fly_tax() as with
- recent standard demos.
-
- 3. If string "state" is found, does a re-lookup with
-
- select tax from state where country = country and state = state
-
- and value is applied below.
-
- 4. If just digits are found, rate applied directly -- i.e. "0.05"
-
- 5. If N.NN% is found, applied as percentage.
-
- 6. If category = N.NN%, default = N.NN% is found, the tax_category
- field in the products database is used to determine tax basis.
- If no tax_category, "default" rate is used.
-
- This product data
-
- sku price tax_category
- os28003 10.00 tools
- os28004 20.00 food
-
- with this country and state data:
-
- code name tax
- US U.S.A. state
- JP Japan tools=10%, default=15%
-
- code country state name tax
- 0001 US IL Illinois 6.5%
- 0002 US OH Ohio default = 5.5%, food = 1%
- 0003 US AZ Arizona
-
- Will yield tax for one each of os28003 and os28004 of:
-
- Japan $4.00
- US/IL $1.95
- US/OH $0.75
- US/AZ $0.00
-
-* Add PRELOAD_EMPTY_ONLY option for preloading files once at the beginning
- of time, which is what we really want for icmenu.txt and ichelp.txt.
-
-* tlink.c: Implement patch from Tamas to make tlink.c compile with no
- complaint on all compilers. Resolves bugzilla #22.
-
-* Add INDEX capability for SQL databases -- uses CREATE INDEX template.
-
-* Change INDEX Database parameter to array type, adjusting routines
- in Vend::Table::Common to handle for ASCII indexing.
-
-* Add report=1 option to [item-options ...] tag. This returns a comma-
- separated list of options, i.e.:
-
- blade: Steel, knob: Ebony
-
- Separator and joiner are ": " and ", " by default, but can be changed
- with [item-options report=1 joiner=";" separator="="] or somesuch.
-
-* Add pragma safe_data, with same function as safe_data option available on
- some tags.
-
-* Parse [pragma] tags on flypages before interpolating fly-list.
-
-* Change fly-page and fly-list so variables don't get parsed twice, but
- still get parsed before flypage substitutions. Add opt variable to call
- for control; could be used in future for other purposes.
-
-* Fix [fly-list] tag so that the options work; previously they never
- would have.
-
-* Add pragma dynamic_variables_file_only to avoid opening databases
- when GDBM -- if needed.
-
-* Order single-widget matrix options by o_sort, as suggested by Ton V.
-
-* Fix new defined check type to actually work -- checks to see if
- $Values->{$var} is defined.
-
-* Set default lock type to 'fcntl' for HP/UX, possibly resolving bug #267.
-
-* Make UPDATE and INSERT work properly with DBM.
-
-* Make mv_successpage set in a form work right when a profile check succeeds.
-
-* Added first general-purpose functionality to [image] tag:
-
- Given sku os29000 in the Foundation demo, and assuming the products
- database specifies os29000.gif in the image field for os29000,
- the tag [image os29000] returns HTML code something like this:
-
- <img src="/foundation/images/os29000.gif" width=120 height=150
- alt="3' Step Ladder" title="3' Step Ladder">
-
- If file os29000.gif hadn't existed, or the products database image
- field were empty, the tag would check for files called "(sku).jpg",
- "(sku).gif", etc. and use the first one it found.
-
- Full documentation is in POD format in the usertag itself.
-
-* Require catalog IDs be of pattern ^[-\w]+$, which makes sure that
- expireall and other utilities will find all catalogs. This was
- documented but not enforced by makecat. Resolves Bugzilla #209.
-
-Admin UI
---------
-* Add da_DK (Danish) locale by Kim Lauritz Christensen <kim@hambrosalle.dk>.
-
-* Add nl_NL (Dutch) locale by Ton Verhagen.
-
-* Allow localization of month names, and other localization tune-ups.
-
-* Allow Variable in imagehelper directory and path
-
-* Fix Knar editor entry so returns to flex_select?mv_data_table=variable
- with appropriate page title.
-
-* The affiliates submenu ("create new affiliates") in the UI, was set to
- exclude_on:affiliates, instead of depend_on:affiliates.
-
-* Error message from flex_select added.
-
-* Fix double-escaping of left brackets in flex_editor.
-
-* Fix save profile so that it uses $Values (and automatically picks
- up new additions).
-
-* Fix entry order problem found by Bob Jordan.
-
-* Hide more customer delete buttons if user doesn't have permission, and
- prevent surreptitious passing in of delete command.
-
-* Fixed problem where we leave secure mode at various places.
-
-* Changed the font sizes on the Admin UI admin menu so that the different
- section names matched in size to their description.
-
-* UI_STD_HEAD and UI_STD_INIT cleaned up.
-
-* Display country in order view if not the same as SHIP_DEFAULT_COUNTRY.
- Resolves Bugzilla #212.
-
-* ByAffiliate.html report: Add the bd (mv_base_directory) attribute to the
- search for non-absolute TrackFile values.
-
-* Add warning if Spreadsheet::*Excel modules not installed, as that will
- cause a fatal error attempting to import XLS spreadsheets. Resoves
- Bugzilla #239 -- thanks to Tal Hart for reporting.
-
-* Several item options patches by Mark Johnson:
- - Fix wholesale price overwriting regular price in variant edit.
- - Stop including "none, " in description of an empty option.
- - pages/include/item_option_simple:
- * Added separate 'opt_label_*' form var
- * Added js to set label to name (and reset to previous value)
- * Replaced '[sql-*]' with q{[sql-*]} for strings
- * Added sql/entities filter where appropriate
-
-* Change setting of sku in table-editor to override as opposed to "default",
- preventing previous setting of "sku" to cause corruption of display.
-
-* Wizard: Make "images" piece run after everything else, so that products
- uploaded will be in database. Other miscellaneous changes to the wizard.
-
-* New usertags: [cp], [image-collate].
-
-* Prevent Interchange tags in database fields from being parsed when
- displaying with [table-editor] tag.
-
-Foundation
-----------
-* Fix Foundation indexing for PostgreSQL.
-
-* Minor database table changes to support VAT and new multi taxing.
- - Add tax_category field to products.txt (including sampledata/tools)
- - Add tax field to country database
- - Set default type in pgsql/country.pgsql to varchar(255)
- - Set default type in oracle/country.ora to varchar2(128)
-
-* Use new [item-options report=1] in mailed reports and log_transaction.
-
-* Use [scratch mv_autocreate] to supply mv_username/mv_password for order
- status link, similar to what we do for anonymous downloadable products.
- Resolves Bugzilla #226.
-
-* Added sale_price and image_large to the batch product upload template.xls.
-
-* Changed the mv_nextpage from customerservice.html to @@MV_PAGE@@. If you
- selected a new country or shipping method for yourself, it'd kick you back
- to the customer service page and that was kind of annoying.
-
-* Changed the "Buy it Now!" text button on the flypage to a graphic button.
-
-* Fixed the Checkout page to use [button] tags for the bottom Place Order
- and Recalculate image buttons.
-
-* Added some default admin Groups to the access database -- Content Manager,
- Merchandiser, Sales/Orders.
-
-* Fix modular_create view so that o_master is tied to the SKU of what we are
- creating.
-
-* Adjust default widgets in metadata for modular_create view.
-
-* Fix typo in SAMPLEHTML setting.
-
-* Rename fullwidth template to noleft to match region.
-
-* Make label for retrieving address be the nickname, not the city, as
- suggested by barryf-newprod@online.ie.
-
-* Fix promo component to use [table-organize] for settable number of columns.
- Resolves Bugzilla #240.
-
-* Add tax_category field to products database for tools type.
-
-* Remove banner database that is not used and is just cluttering things up.
-
-* Fix installsample so that it tolerates no images/ directory in sample
- data set.
-
-* Do downloadable product authorization during log_transaction so that
- auto-created users are handled.
-
-* Change deliver action so that auto-created users can log in and download.
-
-* Remove EncryptProgram directive, no longer needed (found globally
- and by default).
-
-* Add EncryptKey directive -- PGP now works out of the box with the wizard.
-
-* Change catalog.cfg to use PGP_KEY instead of GPG_KEY Variable for pgp_key
- in routes.
-
-* Add PGP_KEY to Preferences, and put it and ENCRYPTOR in "Encryption" area.
-
-Packaging
----------
-* Debian packages can produce a demo.
-* Minor Foundation hostname problem in RPM install fixed.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.5 released 2001-07-03.
-
-Core
-----
-* Allow GlobalSub session autoloads.
-
-* Introduce use of AutoVariable for global.
-
-* Overhaul encryption just a bit. We now recognize natively three
- encryption programs, gpg, pgp, and pgpe. Each has argument strings
- automatically generated, and the catalog.cfg directive EncryptKey
- is used by default for encryption. If you pass a directive value
- which is only (/usr/local/bin/)?gpg, it uses these default argument
- values. The defaults:
-
- gpg gpg --batch --always-trust -e -a -t -r '%s'
- pgp pgp -fat - '%s'
- pgpe pgpe -fat -r '%s'
-
- These have all been tested with the exception of pgpe, but that
- should be good.
-
-* Route encrypt_program value may not be overridden by expansion from
- variables or by extended. This is for security -- otherwise a change
- in route or variable could allow an arbitrary program to be run.
-
-* Add refinement to bar_link and the area.txt databases where you
- can specify the sort field (or other additional parameters) by entering
- in "search" column. Will make top-category stuff ordered in category
- order instead of random based on prod_group.
-
-* Remove explicit setting of order routes in ValuesDefault, use
- the "cascade" setting of the master route instead.
-
-* Refuse access for empty passwords or "anything" passwords (empty in DB).
-
-* Make username and password minimum lengths customizable (defaults 2, 4).
-
-* When creating UserDB object, use Vend::username instead of session
- username for better security.
-
-* Allow AdminUser superuser access to all catalogs; no access DB required.
-
-* Log attempts by anyone other than superusers to change another user's
- password (e.g. by munging form variable mv_username).
-
-* Make reconfig tags reference RunDir vice ConfDir, resolving bug #207.
-
-* Fix configuration parsing for simple 'Locale xx_XX' directives (for
- pulling locale info from system).
-
-* Enable use of Net::SMTP for systems without sendmail. All are
- likely to have it, as Bundle::libnet is part of Bundle::Interchange.
-
-* Change the Vend::Config::parse_executable check to allow use of a Perl
- module as an option, doing a require for it.
-
-* Change sql_statement error handling to always die upon parse
- error. This will allow the calling routines to trap errors better.
-
-* Order single-widget matrix options by o_sort, as suggested by Ton Verhagen.
-
-* Add matrix option widget and handling so that you can select the
- variants based on individual widgets instead of one. Uses the
- methodology of taking multiple settins of mv_skuN, where N is the cart
- line. Each is joined with a - character, and
- $::Variable->{MV_VARIANT_FILLER}|| 0 is inserted if it is blank.
-
-* Method to tell if the individual widget method is used is to have both
- o_matrix and o_modular set. This is less than ideal, and a better method
- is needed. Will not document this until the method is set.
-
-* Change handling of option updates so that if an illegal variant
- is selected from the database the code and mv_ib refuse to change.
-
-* Fix problem with quoting wrong entity setup in textarea.
-
-* Change add_items() quantity handling to strip letters and fractionals
- (unless FractionalItems).
-
-* Change default order routes so that it comes from $Values instead of
- $CGI. This allows the FormIgnore to block form-entered order routes.
-
-* Change route code so that an empty route will never be emailed.
-
-* change_url function needed with resolve_links() had bug in adding
- arguments. Discovered by Taylor Mitchell and Erik Wichern.
-
-(User)Tags
-----------
-* Add random saying component and usertag [fortune], based on
- /usr/games/fortune.
-
-* Make [reconfigure] tag use RunDir instead of ConfDir.
-
-* Add run=1 option to file-info tag.
-
-* Return nothing from tag [table-organize] if there are not <td> elements.
-
-* Add [if pragma ...] conditional.
-
-* Add [if global VARIABLE] for testing on globals.
-
-* Added new core [msg] tag for doing parse-time locale substitutions.
-
-* Change the [mail] routine in Vend::Interpolate to use
- Vend::Util::send_mail so that it can use Net::SMTP.
-
-* Fix [options] so that SKU on multiple-widget will always be
- set even if not previously.
-
-* Fix [record ...] tag to work with all DB types.
-
-* Fix [catch] tag so that you can put ITL inside the error evals;
- all errors are now delimited by [/pattern/] [/(?pattern/)?]
-
-* Add new [warnings] tag to eliminate the problem with overwriting
- and fragmentation of [data session failure], [data session error], [data
- session ui_failure], [data session ui_error], etc. Will add separate
- namespaces in next iteration so that we can use different ones for UI.
-
-* Add ranges option to [loop list="A..Z" ranges=1] to allow alpha-numeric
- lists. Limit number of produced options to
- $Vend::Cfg->{Limit}{option_list}.
-
-* Add auto=1 option to [timed-build ...]. Makes an MD5 digest of the
- contained text, then auto-builds using that go generate a filename.
- Demonstrated in latest templates/components/category_vertical.
-
-Admin UI
---------
-* Multi-locale UI (selectable at login time) improved.
-
-* New admin context-sensitive help topics added.
-
-* Fixed images/products combined upload problem (Bugzilla #251).
-
-* Add re-routing map capability to wizard maps so that the
- same pages can be used when only the mv_nextpage/mv_prevpage
- stuff changes. We set up the map in pages/include/wizard_profiles.
-
-* Go to password change page after new user is created, so admins won't
- forget to set a password for new users.
-
-* Build categories even if sampleproducts not selected, give
- chance to turn off on preview page.
-
-* Change so that the save will set the pref_group on the
- Variable, which allows it to be later edited logically under
- Administration->Preferences.
-
-* Fix uploadhelper mv_click so that preceding path will be stripped.
-
-* Refine guess_info to work with either standard wizard or CommerceLauncher.
-
-* Change shipping wizard a bit to allow the user to select their default
- country and shipmode in all cases.
-
-* Add ability to pass form params in via the checklist menus.
-
-* Sort item options when producing matrix options, so new matrix
- separate mode will work.
-
-* Fix target page for login errors.
-
-* Rework password changing in admin UI to always use UserDB functions
- instead of directly writing to database.
-
-Foundation catalog
-------------------
-* Break out different order methods in different checkout profiles.
- Eliminate the fax_order variable. Retain old checkout_profile for
- compatibility.
-
-* Move default category_vertical component to second instead of
- third slot to prevent duplicate category lists on some of the
- default foundation pages.
-
-* Finished the advanced search (searching by category now works, as well
- as searching by item field).
-
-* Move default category_vertical component to second instead of
- third slot to prevent duplicate category lists on some of the default
- foundation pages.
-
-* Add timed-build capability to category_vertical.
-
-* Fixed merch components so that if an image doesn't exist, it will not
- display a broken one.
-
-* Change item_option.html to use [record ...] tag instead of separate
- [data ...]. Add Matrix options with separate IDs, still need JS logic
- to insert -0- on empty option.
-
-* Fix item_options in matrix form, removing silly overload of o_modular
- bit. o_matrix now can have two values, 1 (one widget) and 2 (separate
- widgets). The item-option tag can override the separate/single display type
- with a display-type=separate or display-type=one (default) option.
-
-* Add o_enable to variant creation form, which enables the option for
- display.
-
-* Default table/area/category to some reasonable defaults.
-
-* Trailing blanks were causing problems in admin/order.html when displaying
- archived/pending orders. Made all definitions consistent at char(1).
-
-* Fix "nullsellect" typo in mv_metadata.
-
-Various
--------
-* Added file UPGRADING, rudimentary help on updating Interchange, to
- complement icupgrade(8) docs.
-
-* Support running Interchange under Cygwin for testing purposes.
-
-* Fixed the small search box components - substring matching was not working,
- only whole word matching.
-
-* Add companion page to qb_getord.pl (get_orders.html), which allows
- you to download orders and move the file to a new location so that
- future orders will start a new file.
-
-* Add widget key selector for GnuPG keys.
-
-* Added flat-file table editor utility (eg/te).
-
-* Removing eg/make_gnumeric.sh tool, since Gnumeric dropped support for
- the flat-file table format.
-
-* Silly workaround to make Perl 5.6.1 compatible with File::Copy under Safe.
-
-* Fix host and port changes in makecat.PL when selecting INET mode.
-
-* Place STDIN in binmode so tlink.pl will work with Cygwin/Apache.
-
-* Added mv_session_id hidden form value in a few places it was missing to make
- cookie-free browsing work everywhere.
-
-* Fix the intro script so it will build even if not run from Makefile.PL,
- given an Interchange Root. This will allow a "update_cvs_limited" script
- that updates bin / lib / selected_other_files.
-
-* Minor HTML and CSS fixes.
-
-* Removed unused images.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.4 released 2001-06-16.
-
-Core
-----
-* Fix bug #220, Interchange server crashing in Server.pm. Caused by
- inappropriate "next" upon select timeout after MaxServer > Num_servers
- condition.
-
-* Change default of [catch] to NOT interpolate. Impossible to conditionally
- execute code if that is the case.
-
-* Fix [catch] to work with only the proper body, not with both THEN and ELSE.
-
-* Add maxsize parameter to file write in tag_value_extended, fulfilling
- enhancement request #99 in Bugzilla.
-
-* Add a filter for decode_entities, and make encode_entities an alias to
- entities.
-
-* Add ability to restrict tag execution in a region. If a restricted tag is
- encountered, it is simply output. Based on an idea from Jon Jensen.
-
- [restrict policy=deny*|accept enable="tag1 tag2" disable="tag1 tag2"]
- restricted area
- [/restrict]
-
- options:
- policy "allow" or "deny". Default is deny.
- enable space or comma-separated list of tag names, including
- UserTag names.
- disable space or comma-separated list of tag names, including
- UserTag names.
-
- For instance, this:
-
- [restrict enable=page]
- [area something]
- [page aboutus]A link[/page]
- [/restrict]
-
- will output something like:
-
- [area something]
- <a href="http://sam.heins.net/cgi-bin/mfound/aboutus.html">A link</a>
-
- Defaults are important:
-
- interpolate=0
- reparse=0
-
- It would defeat the purpose to set interpolate or reparse, but it can be
- done.
-
-* Allow parameters for comment tag -- not parsed, but at least tolerated.
-
-* Fix some Interpolate.pm bugs in option display to allow overriding for
- simple options too, and to select the widget type for matrix options.
-
-* Add get=1 to setlocale tag. That is sort of counter-intuitive, so I added
- a [getlocale] alias for [setlocale get=1].
-
-* Fix makecat instructions on how to set ShareURL if using ~yourname/
- style paths, and allow ShareURL to be empty if passed from command line.
-
-Admin UI
---------
-* Added German UI images and other text translations.
-
-* Automatically symlink to default en_US UI images for missing images in
- other locales.
-
-* Fix problem with IMAGE_DIR variable being inadvertantly changed for store-
- front by UI. (Thanks to John Beima for finding this.)
-
-* Fix area and cat reordering problem in layout.html of admin with a patch
- from Mark Johnson. Fixes bug #180.
-
-* Finished help pages for the Wizard.
-
-* Make UI_SECURE behave so that global policy can be enforced --
- i.e. if @@UI_SECURE@@ = 1 then the setting of __UI_SECURE__ does not matter.
- @@UI_SECURE@@ isn't set in the foundation demo, so this doesn't affect
- current defaults.
-
-* Move @@UI_STD_HEAD@@ before item bounce checks, so that when the bounce
- occurs it will go to the right URL. Because we now use [table-editor],
- the positioning is no longer necessary. Should fix Bugzilla bug #217,
- though that was marked invalid because we don't support different
- SSL/non-SSL domains.
-
-* Fixed missing mv_session_id variables in admin UI form posts, causing
- problems when cookies were not used.
-
-* Add database-table based backup capability. Depends on a table "backup"
- being available. Looked at CVS, but the repository creation/management
- issues are too daunting at this point. Since it is likely that an entire
- catalog would want to be in CVS, this partial solution seems wiser.
-
-* More improvements to page editor:
-
- - Policy for editing individual components/page/template can be set in
- template as well as globally. Soon we will have per-page and per-user
- control.
-
- - A PREAMBLE and POSTAMBLE area is defined, so that code can be run before/
- after template regions without being restricted to what you can do with
- the page settings.
-
- - preamble and postamble are editable on a per-template basis.
-
- - Preview works on latest version of Mozilla, Netscape 4, and MSIE 5.
-
-* Usertag changes:
-
- - Update read_ui_page to support latest page edit.
-
- - Add diff tag in support of new backup capability.
-
-* New, improved admin UI graphics make you healthy, wealthy, and wise.
-
-* Minor [table-editor] fix affecting special Wizard profiles.
-
-Foundation
-----------
-* Add supplant=1 to master route. Left in "main" so that it would be
- compatible with old checkout forms, shouldn't cause any harm.
-
-* Turn off transactions by default in catalog.cfg -- not needed or wanted for
- MySQL and DBM, two most common dbs. Since we have had virtually zero
- complaint about transaction atomicity in general, it makes sense to disable
- this. If someone wants transactions, they merely need to enable the
- TRANSACTION_TABLES variable.
-
-* Add currency_locale field to transactions, resolving Bugzilla enhancement
- request #128. This is valuable because if there is an exchange rate
- situation, it needs to be known at time of purchase.
-
-* Include options in the emailed receipt and report.
-
-* Fix product description display in receipt.html.
-
-* Add example for configurable spec sheets for products. Can be extended to
- track lists for albums, etc.
-
-* Fix template settings for some lesser-used pages.
-
-* Fixed a small typo in the 'cross' component. width_percent was set to 100,
- instead of 100%, causing an occasional cross item to look very skinny.
-
-Other
------
-* RPM specfile reworked to build 3 RPMs: core, foundation skeleton, foundation
- live demo. Foundation demo made friendly for relocation by RPM build.
-
-* Various cleanups: removal of unneeded variables, files, etc.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.3 released 2001-06-12.
-
-Core
-----
-* Add Skipjack and iTransact to list of gateways supported.
-
-* Item options improvements and bugfixes.
-
- - Fix a bug that ignores name= in the display tag when using option_format,
- date, imagehelper, or uploadhelper types.
-
- - Fix a bug that prevented changing your selection once you had selected one
- (code was only updated if mv_sku was not already set).
-
-* Increase limit of possible keys returned for lookup in DBM.
-
-* Full pedantic HTML 4 compliance. (Ability to change URL data separator.)
-
-* Allow attaching a version number to usertags, for later use in Require and
- Suggest directives.
-
-* Fixed bug that caused Interchange to silently fail to start if -q(uiet)
- option was given on command line and a Suggest or Require directive was
- used in one of the config files.
-
-* Improvements to [catch] and [try] tag pair.
-
- - Added 'clean' option to [try] tag, which suppresses output in case of
- error. The default tag output behavior is unchanged.
-
- - Modified original behavior of
-
- [catch]
- [error message]
- catch block
- [/error message]
- [/catch]
-
- The original code requires an exact match, including the newline
- and line numbers from the Interchange core (i.e., it includes the
-
- " at (eval line nnn)...\n"
-
- message). The new code strips the 'at (eval ...' to leave an
- approximation of the original $@. Added 'exact' option to invoke
- original behavior.
-
- - Fixed [try] tag to watch $Session->{try}{$label} instead of $@ after
- the eval because $@ as originally written does not trap most errors
- (which occurred in earlier eval in the Interchange core).
-
- - [catch] interpolates by default.
-
-* Fix bug where filter was not set to passed {name} parameter, always set to
- $column (which may not exist in non-DB widget).
-
-* New [image] usertag, for getting the image directory (regular or secure),
- and eventually doing other handy things like getting pixel sizes, checking
- for image existence, etc.
-
-* Updated button usertag to provide alternatives to the image input when
- using a JavaScript-challenged browser.
-
-* Make [var ...] usertag honor dynamic variables.
-
-* Fix a bug in the options tag that passed the wrong argument to
- tag_accessories (weight instead of o_widget, oops). Also allow
- [item-options] to take a type argument, which is passed through so that
- you can override the type should you need to.
-
-* Allow '*' suffix default mechanism to work for text-display accessories
- like it does for select widgets. Fixes weird display bug in
- admin/customer_view.html that caused an input textbox with '0' to appear
- instead of the text 'Credit Card'.
-
-* With help of Dave Jenkins, isolated the problem that caused problems
- entering non-ISO-8859 data in table editor. Now should work properly for
- all locales.
-
-* Make control-set tags tolerate - as well as _ in component attributes.
-
-* Four new options to the [perl] tag that make it a bit easier to work
- with when debugging:
-
- number_errors
- Add line numbers to the source code displayed in the error.log, amazingly
- useful if some of the perl is being generated elsewhere and interpolated.
-
- eval_label
- Set to a string, will replace the (eval ###) in the error message with
- this label, handy to quickly track down bugs when you have more than
- one perl block in the page, especially if you are using short_errors.
-
- short_errors
- If set to a true value, syntax errors and the like in [perl] tags will
- log just the error, not the whole source code of the block in question,
- handy when you have the code open in an editor anyway and don't want
- the error itself to get scrolled away when running 'tail -f error.log'.
-
- trim_errors
- Seemed to be the logical extension of short_errors, if set to a number,
- and the error produced includes a line number, then only that number
- of lines before and after the broken line itself will be displayed,
- instead of the whole block.
-
-* Issue error message if filter is missing.
-
-* Add zerofix option to [time]. Strips leading zeroes from numbers just
- like in [convert-date] usertag.
-
-* Make embedded Perl values equal per-route values.
-
-* Place $Tags_added in Vend:: package so it will be reset upon entry to
- a page/catalog. This should make it thread-safe. Symptom was catalog
- UserTag not being added at times.
-
-* Fix a problem detecting if SQL::Statement is available.
-
-* Fix bug introduced with new sf=:field1:field2 search syntax. Old method
- of sf=:3:4 was broken by new fieldname hash.
-
-* Fix bad username error message found by Ed LaFrance.
-
-* Get rid of language-dependent error message scan.
-
-* Vend::Util::set_lock_type() allows setting global lock type at runtime.
-
-* Fix a bug that suppressed error messages that Vend::Scan::sql_statement
- returned using 'die'.
-
-* Better error trapping on DB calls.
-
-Admin back-end
---------------
-* Page editor and template system rewritten.
-
- - Retains the global settings for the page, things like page_title,
- members_only, etc.
-
- - Depends on ui_template_version being set in the template as to
- whether new editor is used, if not set defaults to the old type.
-
- - Add types to components, so we can determine which are to be presented for
- selection.
-
- - Page preview improvements.
-
- - Allow control of which elements of a page get edited.
- By setting the variable UI_CONTENT_EDIT to contain a string with tags, you
- can disable/enable certain aspects of page edit:
-
- template Allows changing the page template
- page Allows changing page-wide settings (i.e. scratch)
- components Allows changing page components
- content Allows editing page content
-
-* Components overhauled.
- - Add best and cross components that work both horizontally and vertically.
- - Removed old 4.6 components.
-
-* Lots of internationalization work.
-
-* Wizard improvements, including guessing of info.
-
-* Admin images overhaul:
- - Global admin images moved from /akopia/ui to /interchange/$LOCALE.
- - Can now have images directory for each locale (for images with text).
- - All images in one directory, no more admin/ and navigation/.
- - Admin image paths rewritten by Interpolate.pm; no more @_UI_IMG_@ needed.
-
-* Disallow admin UI access by default when there is no 'access' database.
- Thanks to Christopher VanOosterhout for finding this weakness.
-
-* Fix so that $Tag->area() is used to call all links.
-
-* Fix problem with GDBM database tables not being able to import
- a single table (due to no write flag).
-
-* Enhance list-pages tag so that an array can be returned.
-
-* Patch table-editor option parsing, fixing bug #190.
-
-Foundation demo
----------------
-* New Advanced Search page.
-
-* Lots of artwork, HTML, and other little-detail changes.
-
-* Do not set content-type and charset in doc META -- this may need to be
- different based on locale.
-
-* Added a image_large to the products database for large image support.
-
-* Changed most PostgreSQL fields from CHAR to VARCHAR to prevent space
- padding problems.
-
-* Left menu bar items take text from banner_text if available to allow name to
- stay behind the scenes.
-
-* Fixed errors in receipt found by Angelica Olin, <angel@loadup.com>.
-
-Packaging
----------
-* Add cachedir setting (e.g. /var/cache/interchange) to allow catalog session
- and tmp directories to be in separate location.
-
-* Add rundir setting (e.g. /var/run/interchange) to keep temporary files like
- status.* separate from things in VENDROOT/etc. This takes advantage of the
- OS deleting everything in /var/run/interchange at OS boot time without
- losing files like *.before, etc.
-
-* Have system logrotate daemon rotate catalog error.log files.
-
-* Various other RPM and Debian package improvements.
-
-General
--------
-* Remove a number of unused images.
-
-* Remove Red Hat's Reston office addresses so we stop getting returned
- merchandise for companies who have work done by clueless developers who
- never change the contact info on their catalogs. HINT, HINT.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.2 released 2001-05-10.
-
-Server
-------
-* There is a pre-forked server mode enabled in interchange.cfg with:
-
- PreFork Yes
- StartServers 5
-
- The number 5 can be set as high as 50 if you have enough
- memory. A number less than 2 makes little sense.
-
- THIS IS AN ALPHA FEATURE, and is not fully tested.
- But it gives big, big, performance gains.
-
-* Server should now run safely in the Foreground -- when
- in foreground writes to $Vend::Cfg ($Config) are gated via
- Tie::ShadowHash, which is now required. (A copy comes with IC.)
-
-* Server should now be nearly thread-safe when run in 5.6 NEW_THREADS
- mode, can probably be ported to Windows if anyone cares.
-
-Database
---------
-* Transactions now fully supported. Can open a transaction-capable
- database in transactions mode [flag type=transactions table="table"]
- and it will commit all changes not done in transaction mode and reopen
- under transaction constraints. [flag type=commit table=table] commits,
- [flag type=rollback table=table] rolls back.
-
-* Can reference foreign keys with:
-
- [data table=foo column=bar key=baz foreign=buz]
-
- That does the roughly equivalent to:
-
- SELECT bar from foo where baz = 'buz' LIMIT 1
-
-* Improve autonumbering support to automatically use sequences or
- autonumber field types. So now you can do:
-
- Database addr addr.txt dbi:Pg
- Database addr AUTO_SEQUENCE 1
- Database addr COLUMN_DEF "code=int SERIAL PRIMARY KEY"
- Database addr COLUMN_DEF "val=varchar(128)"
-
- and it will pick up the sequence at an insert. It makes calls to
- the known_capability, and does the last_value or last_sequence_id()
- call as appropriate to return the key value.
-
- Tested with Postgres and Mysql. Should work for Oracle when the
- template is set -- we should provide some examples for selecting
- from the "dual" table.
-
-* Add $db->set_slice($key, \@fields, \@values) function that will
- update a slice of a row. Works for all DB types.
-
-* All base-table database updates done by UserDB and UI are now done in
- one query via set_slice. Extra-table values still use set_field.
-
-* All databases should now handle cached DBI handles properly, even
- when they can't be shared among processes. Will work toward a single
- handle for all processes on DBs that support that.
-
-* Change all chained cost levels limit check to use new Limit directive
-
-Orders/Pricing/Shipping
------------------------
-* Significant changes to Order.pm in the area of order routing, while
- still maintaining backward compatibility. (Able to submit and monitor
- order on old construct, simple, and basic with no changes.)
-
-* Added "cascade" route capability, that allows you to specify
- one master order route that calls the rest of the routes.
- Perhaps an interface in payment mode to add some logging....??
-
-* Routes can be dynamically read from database if master order
- route is set dynamic_routes=1.
-
-* Routes always interpret __VARIABLE__ from database.
-
-* Routes can interpret ITL from the database if master order
- route is set expandable=1.
-
-* Keep value of current route name in Values->{mv_current_route}.
-
-* If no order route is given from checkout form (always a
- security pitfall anyway) then the default route is read. If you
- want to run more routes from that master route, place in the
- cascade parameter. Can still be set in mv_order_route, but
- the demo now has "FormIgnore mv_order_route".
-
-* Extended field allows you to stringify a hash and set many, many
- parameters. We were running out of column space, and payment routes
- add many settings. This concept will soon be used in mv_metadata.
-
-* Add new tag "assign". It allows you to assign to four things,
-
- subtotal preempts the cart subtotal derived from prices. NOT ROUNDED.
- shipping if any non-zero mv_shipmode is present at all, sets the total
- value of shipping. Rounded to fractional digits.
- handling if any non-zero mv_handling is present at all, sets the
- total value of shipping. Rounded to fractional digits.
- salestax preempts the salestax normally derived from the salestax.
- NOT ROUNDED.
-
- You cannot assign to total_cost -- it will always be the sum of the
- four above.
-
- If there is no assignment to one of the four, it will use the
- normal method. To make salestax zero, you must use [assign salestax=0].
-
- Called with [assign salestax=N.NN], etc. If the value has a length
- of zero, will delete the assigned value from the assignment hash
- and the normal method of calculation will kick back in.
-
- If you call [assign clear=1] it will clear all, and the normal method
- of calculation will kick back in.
-
- If a non-real-number value is passed, it logs an error and clears
- the assignment.
-
- It is persistent in the user's session and effects only that user,
- and should be used only when you know exactly what you are doing. Ha.
-
-* Add support for new CVV2 credit card security field in
- mv_credit_card_cvv2, treated with same care as mv_credit_card_number.
-
-* Add recognition for a few more credit card types based on number.
-
-Parser
-------
-* Solve the great [if ] [othertag][else][/else][/othertag] [else]
- [/else] [/if] problem. The behavior should be much improved in [if ...]
- tags. Will not now snarf the [else] from another tag that uses that.
-
-* Make the default a secure submit if we are on a secure page and
- have the user set secure=0 to disable.
-
-* Eureka!!! All usertags can be used in embedded perl without
- "tables" or other Safe stuff. Boy was I stupid. As long as they
- don't do a "require" at runtime, you should be OK.
-
-* Fix the long-untouched tag_column routine to handle preformatted
- text with align=none.
-
-* Add "yesno" display filter so that you can [filter yesno]1[/filter]
- and get "Yes" back -- also translates for Locale.
-
-Payment
--------
-* Extensively rework Payment routines. Decided to keep something like
- current framework, but you now can do:
-
- &charge=route
-
- or
-
- $Tag->charge($route, $opt); # If no runtime "require"
-
- or
-
- [charge route=THE_ROUTE gateway=ccvs id=milton secret=pass]
-
-* Add Payment.pm module to contain the base routines, and be a
- target for the routines added via the different Payment
- modules.
-
-* A pretty convenient mechanism to bring in modules:
-
- Require module Vend::Payment::Authorize
-
- Prevents errors and memory bloat(er) when Net::SSLeay or other
- needed companion modules are present/not present, and should
- give reasonable errors when the module is not working.
-
-* Initial support for CyberCash, AuthorizeNet, Skipjack, iTransact,
- CCVS, and Signio/Verisign. All documented with in-module POD.
-
-* There will be a Vend::Payment::Skeleton to show adding your own
- payment module.
-
-* All modules needing Net::SSLeay or Crypt::SSLeay updated to
- support either with common calls.
-
-* GlobalSub method still supported, current GlobalSub things
- should work fine (tested with Authorize.net and "custom
- authorizenet" mode).
-
-* Beginnings of PayPal support will be there shortly, but thinking
- of how to generalize that send-offsite-then-return-post paradigm.
-
-* Should be completely backward compatible.
-
-* All payment stuff taken out of Vend::Order except _charge
- profile interface routine, a couple of stubs left for backward
- compatiblity.
-
-* Parameters can be completely Route resident, no MV_PAYMENT_*
- variables needed.
-
-* Changed mv_credit_card_info to delete all but mv_credit_card_reference
- digits when not encrypted. This is overdue....
-
-* All options are pulled from the option call first, the Route matching
- the name second, then finally the global MV_PAYMENT_* variables.
-
-* All routes should be transparent if the mode exists. For instance,
- you can define a route called "purchase_order" which will handle
- POs, "internet_check" which handles checks, etc.
-
-* Add CCVS support via globalsub. Will do auth, sale at this point. Will
- soon add AVS support. Has extended information support.
-
-Miscellaneous
--------------
-* Message directive now accepts -n (no trailing newline or whitespace) and
- -i (screen info only, not logged) options before message.
-
-* Add set="Message" option to error tag, allowing you to set an error via tag.
-
- [if value lname =~ /^mccoy$/i]
- <!-- [error show_error
- set="No stinking McCoys allowed at hatfield.com!"
- name=lname ] -->
- [/if]
-
- Implies keep=1.
-
-* Allow set-cookie tag to set domain and path.
-
-* Added UI_SECURE variable which forces the use of the SecureURL instead
- of VendURL if set, each UI page should include either UI_STD_INIT
- or UI_STD_HEAD to ensure this works
- (supplied by Stefan Hornburg <racke@linuxia.de>).
-
-* Added catalog configuration wizard, to move non-essential config from
- makecat and simplify it a bit.
-
-* Added more links based on the leading letters of the results
- so the selection of the more link is much easier for the customer,
- especially with huge number of results. Short example:
-
- <input type=hidden name=mv_search_field value=description>
- <input type=hidden name=mv_sort_field value=description>
- <input type=hidden name=mv_more_alpha value=yes>
- <input type=hidden name=mv_return_fields value=code,description>
-
- (supplied by Stefan Hornburg <racke@linuxia.de>).
-
-Bug fixes
----------
-* Fix bug in IMPORT_ONCE reported by vasile_abo@wexim.com.
-* Fix no-zero-display bug in [cgi ...] tag, found by Mark Johnson.
-* Fix a couple of bugs with AlwaysSecure not working in an order link.
-* Fix rounding problem with Shipping.
-* Fix failure to test record_exists in tag_data($table,undef,$key,{hash=>1})
-* Quite a few unreachable code sections removed, largely thanks to Bill
- Dawkins.
-* Fix textarea build to call routine, remove unused call to
- build_accessory_textarea, add proper call in /^text/ branch.
-* Make sure tax is rounded to the proper number of frac_digits in
- variant salestax() routines.
-* Delete $CGI::mv_order_item when ordering, don't want to order
- twice (could happen if update values called)
-* Remove for good unsightly extra attributes qw/true false undef/ in every
- tag option hash.
-* Fix some item options bugs.
-* Many other small things.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.1 released 2001-03-28.
-
-* Added ability to cascade mv_click statements, e.g.:
-
- [set delete]
- deleterecords=1
- item_id=[item-code]
- mv_click=db_maintenance
- [/set]
-
- [page href="@@MV_PAGE@@"
- form="
- mv_action=back
- mv_click=delete
- "]Delete this</A>
-
-* Added "clone item" to item pages. Allows you to clone an existing item
- for purposes of adding new ones.
-
-* Re-instituted multiple-table deletes for deleting an item. It will look
- in __UI_ITEM_TABLES__ and delete records.
-
-* Added clone_set and clone_row primitives in Data modules. Allows you to
- copy a record except for certain fields.
-
-* Added [item-options] tag which automatically finds and presents options
- based on the options table. The table name is settable based on Variable
- MV_OPTION_TABLE. Fields can be remapped with MV_OPTION_TABLE_MAP.
-
-* Now can use "variant" items which are based on a base SKU but set in an
- options table (same as the one for [item-options]). Changed behavior of
- [item-field ...] to look in the code first, then the base SKU, for the
- relevant product databases. [item-data ...] always works off of the
- relevant base SKU.
-
-* Price looks at variant code first, then the base SKU if that is zero;
- or it can be made to do so with CommonAdjust.
-
-* Fully modular options with cascade.
-
- A UI module allows editing and definition of the modular options,
- including "phantom" options that act to group additional items.
-
- When an item is defined as modular upon order, it can have accompanying
- it a series of other items in the same order group. The price of the
- options is not shown, but is added to the price of the master item.
-
-* Added [item-sku] tag to get base SKU for a variant.
-
-* Added fall-through for sku to [item-field].
-
-* Rerouted [item-data ...] to always point to sku, not the code for the
- variant. (This will mean inventory has to be checked via a [data ...]
- tag when variants are in use.)
-
-* Added new [control] and [control-set] tags to set series of Scratch-
- like option areas. Used for components in UI content editing.
-
-* Added [mail ...]MESSAGE[/mail] tag to the core. Works with update_data
- routine to send emailed notifications of database changes. Otherwise
- works like combination of [email ...] and [email-raw] ... usertags.
-
-* added [PREFIX-options] to get and parse options of all types.
-
-* New [profile ...] tag allows you to set directives normally set in
- catalog.cfg with a tag in the session Autoload. This is really the
- same as the current Autoload, except it is automatic on login/logout,
- faster, and leaves Autoload for user user.
-
- [profile name=profile_name tag=tag set=1 run=1 restore=1]
-
- name name of profile. Needed unless restore=1.
- tag normally not set, defaults to "default". Matches what is
- the UserDB profile.
- run run profile code only, don't save.
- set set profile for future only, don't run.
- restore remove the current profile
-
- [profile name] will run and set by default.
-
-* UserDB now can set a price_level via the [profile ...]
- tag routine. Set this in catalog.cfg for dealer pricing:
-
- Profile dealer CommonAdjust <<EOR
- "
- pricing:w5,w10:,
- ;:wholesale,
- ;:wholesale:mv_sku,
- ;$,
- ==:options
- "
- EOR
- Profile dealer NonTaxableField nontaxable
-
- Quotes are needed (as in all locale-style directives) unless you want
- to do a full hash set like:
-
- Profile dealer <<EOR
- {
- CommonAdjust => q(
- pricing:w5,w10:,
- ;:wholesale,
- ;:wholesale:mv_sku,
- ;$,
- ==:options
- ),
-
- NonTaxableField => 'nontaxable',
- }
- EOR
-
- which is also supported.
-
-* Added SDBM database option for those poor Solaris folks.
-
-* Added MINIVEND_ALLDBM environment check to prevent using unneeded
- modules (takes more memory).
-
-* Added [table-editor ...] tag which easily produces editable tables.
- Capabilities:
-
- * Can edit the hash address books in userdb.
- * Safe to place in user page with auto_secure=1. Generates a
- [scratch mv_data_enable] matching the table:col1,col2,col3:key
- you passed it.
- * Reads from CGI array or from parameters.
- * Automatically reads table info from mv_metadata if available.
- * The following can be overridden compared to mv_metadata:
-
- widget
- width
- height
- help
- extra (JavaScript)
- filter
- pre_filter
-
- * Can auto-check with order_profile definitions.
- * Can append or prepend your additional form information.
- * Can generate an email copy of the data submission for review. (TBA)
-
- Ready for a form widget? 8-)
-
-* Added new mv_form_profile variable that sets profiles with any action.
- Designed for easy checking of variables in submits.
-
-* Speeded import of DBI databases by placing numeric pointers in an
- array at initial config time.
-
-* Added ability to set defaults for empty fields at import and record
- creation time, regardless of the underlying DB, with:
-
- Database userdb DEFAULT password=please_change
-
- Operates exactly like COLUMN_DEF.
-
-* Added database attributes
-
- ALTERNATE_DSN ALTERNATE_PASS ALTERNATE_USER
- ALTERNATE_LDAP_HOST ALTERNATE_BIND_DN ALTERNATE_BIND_PW
-
- and logic to allow fallback to a second database server.
-
- If you have ALTERNATE_DSN (and possibly ALTERNATE_USER and
- ALTERNATE_PASS) defined for a table, and Interchange is unable to get
- a database connection to the primary DSN, it will attempt to connect to
- and use the ALTERNATE_DSN.
-
- These are array values, so you can define any number of fallbacks. The
- same approach works for LDAP databases except ALTERNATE_LDAP_HOST and
- other appropriate parameters are set.
-
-* Added interchange.cfg directive HotDBI, which takes a catalog name which
- should use persistant database connections. When a connection is
- persistent, it will be maintained and cached without reconnecting every
- page request.
-
-* Added Inet_mode and Unix_mode directives to interchange.cfg, which allows
- you to guarantee the mode in which the server comes up.
-
-* New filters:
-
- mime_type: returns mime type based on file extension
- compress_space: strip trailing/leading and s/\s+/ /g
- checkbox: set value to "" if not defined in CGI space
-
-* Added <optgroup> support to tag_accessories select build. Allows grouping
- of options. When an option value is ^\s*~~something~~\*$, it is read as
- an <OPTGROUP LABEL="something">, and options can be grouped per HTML 4.0.
-
-* Added "tz" option to time/tag time, allowing display of time for a
- particular time zone. Specified in the usual EST5EDT form.
-
-* FileDatabase catalog.cfg directive now specifies a table:field which can
- be used to store pages and other files. Will allow a catalog without any
- system files stored on disk.
-
-* Require directive now can require Perl modules, as in:
-
- Require module SQL::Statement
-
-* New Suggest directive is a non-fatal form of Require, which generates a
- warning message but allows catalog to run.
-
- Suggest module Business::UPS WWW-based UPS routines will not work!
-
-* Bugfix: chaining character in CommonAdjust wrongly appended to atom
- in some situations.
-
-* ProductFiles was not resetting Vend::OnlyProducts when a locale change
- was done. Caused [PREFIX-field ...] to fail.
-
-* Variable MV_DEFAULT_SEARCH_TABLE now works for st=db searches like
- Variable MV_DEFAULT_SEARCH_FILE works for text searches.
-
-* Added [tree] tag to walk tree-based lists. It produces hash-based rows
- which are iterated ala item-list (the hash-based list iterator). Sets
- some information in the row. See the tag reference for behavior.
-
-* Made tag_calc routine indirectly callable from within embedded Perl code
- by doing straight eval when already in Safe compartment.
-
-* Made [if-PREFIX-(data|field|modifier|param|pos) ...] nestable by checking
- for nesting conditions in the run list and then generating integer
- additions to the tags.
-
-* There is a "links" type for the [accessories ...] tag. Builds a series
- of clickable links based on an option list. Accepts the "form" and "href"
- parameters to allow setting of the initial form, otherwise just generates
- a link to the current page with the attribute passed as a CGI argument.
-
-* Added "password" widget to [accessories ...].
-
-* Added new [PREFIX-tag ...] which allows extending the tags that are
- interpreted as a part of a PREFIX-list. Example in tag_address, called
- with [PREFIX-tag-address]. Full attribute support and nesting.
-
-* Added attr_list tag which allows tagging of attribute lists in hash-based
- templates. Allows you to generate complex templating without needing to
- have a complete search. Example of use is in tag_address_list.
-
-* Added support for modular items, sets mv_mp parameter to *parent* item
- of the item ordered, and mv_mi to the item group of the main item.
-
-* Made failure to pass all quantities to quantity update (refresh)
- non-fatal. Will update them if mv_update_quantity=1.
-
-* Form profiles: added new format check routines, largely intended to
- work with new mv_form_profile capability:
-
- * variable=regex "EXPR" "Error message"
-
- Checks for compliance with regex EXPR. If you wanted
- to ensure two word-only characters were put in a "name"
- variable, it would be:
-
- variable=regex "^\w+\s+\w+$" "We need first/last name"
-
- * variable=length MIN-MAX "Error message"
-
- Checks for length between required MIN and optional MAX characters.
- Example:
-
- username=length 4-10 "Username must be between 4 and 10 characters"
-
- * variable=unique TABLE
-
- Checks to see that a key in a table (presumably to be inserted) is
- unique. Errors out if key exists.
-
-* Form profiles: Added new profile chaining capabiility. Can place &or or
- &and on a line between different check parameters and create simple
- dependencies.
-
-* Form profiles: Reference to check can now be passed to the routine, so
- you can check CGI stuff only for mv_form_profile.
-
-* Form profiles: Fixed problem with second passing check on a variable
- overwriting the error message from a first failing routine.
-
-* Can now use - and _ interchangeably in parameter names, i.e.
-
- [value-extended name=foo file-contents=1]
-
- is the same as
-
- [value-extended name=foo file_contents=1]
-
- where it would have caused an error before.
-
-* Bug fixes to make mv_sql_query work properly. There was a
- push_spec('nu' ...) call which was in the wrong place, making numeric
- hash all out of sync.
-
-* Remove last dependencies on $! =~ /Some English error/ and move
- to Errno settings, as in $!{EAGAIN}, etc.
-
-* Add pragma to strip leading white space from HTML output. If you put
- [pragma strip_white] to page, there will be no leading white space.
-
-* Added ability to have a PRELOAD file for database imports, where a
- table is parsed for field names and data before the normal file in
- ProductDir. This allows adding fields without user intervention when
- the database type is internal. Mostly useful for mv_metadata.
-
-* Support for clone_row and clone_set, which clone a single row from an
- existing one or clone a set of rows based on a common key.
-
-* Added support for autonumbering. For SQL, the ability will be given to
- override the autonumber routine with one set up by the capabilities.
- Figured out solution to nagging File::CounterFile problem by always
- initializing a counter object when database is opened in writable mode.
-
-* Allow tables to have the same underlying name in their own database
- with $config->{REAL_NAME}. For example, if you have two MySQL databases
- each with a "products" table, you can set them up:
-
- Database products products.txt dbi:mysql:construct1
-
- Database prodstoo prodstoo.txt dbi:mysql:construct2
- Database prodstoo REAL_NAME products
-
- This should work fine in almost all cases.
-
-* Added DEFAULT parameter to allow database-independent setting of
- defaults. Particularly useful in avoiding NOT NULL errors from DBs that
- don't have a DEFAULT setting in create(). This also works when doing
- [data table=tab col=col key=key value=val] on a non-existent row.
-
-* Improved speed of table open by reducing number of tests.
-
-* Improved speed of import by pre-setting numeric array and no longer
- requiring tests for each field on each row.
-
-* Debian packaging files added (supplied by Stefan Hornburg
- <racke@linuxia.de>).
-
-* Usertag formel added which composes form elements and signals errors
- (supplied by Stefan Hornburg <racke@linuxia.de>).
-
-* Rewrite image background paths in <table>, <tr>, <td>, and <th> tags
- according to ImageDir/ImageSecureDir by default. (Removed pragma
- substitute_table_image that was just added in 4.6.2.) Set pragma
- no_image_rewrite to disable all image path rewriting.
-
-* Split RPM into two packages: base Interchange and foundation demo
- catalog skeleton. Should make RPM upgrading safer.
-
-* Removed Tagref.pm. There's now a normal ictags document instead.
-
-* Move UI menus into icmenu database.
-
-* Add ItemAction to map a subroutine to alter items every time toss_cart
- is run, i.e. after an add or refresh.
-
- Calling syntax is $sub->($item_reference), return value is not used.
-
-* Add a new directive "Limit". It is designed to hold limits for
- certain things. Implemented to begin with:
-
- Limit chained_cost_levels 20
- Limit cart_quantity_per_line 10000
-
-* Rework server to allow preforking daemons, similar to Apache.
- New global directives:
-
- PreFork yes/no
- StartServers number (0: old way; 1 or more: exact number to allow)
-
-* New SOAP protocol support allows two-way communication with all sorts
- of other web "objects". Features:
-
- - Catalog and session ID are embedded in proxy call. This avoids
- having to do fancy gyrations with the SOAP envelope.
-
- - Allows most any tag to be called, with nearly the same syntax
- as with embedded perl on IC.
-
- - Embedded Perl (and variants like [item-calc] and [item-exec]
- are not allowed by default, but can be enabled with SOAP_Enable.
-
- - Can specify the ID, or accept one from Interchange.
-
- - Can get and put entire Values, Scratch, and Session structures.
-
- Documentation for using SOAP is forthcoming.
-
-* Add mv_like_field and mv_like_spec to search specifications, designed
- to filter SQL (only!) searches with
-
- mv_like_field like 'mv_like_spec'.
-
- This is a stackable field/spec set like mv_search_field and
- mv_searchspec, and will eliminate any fields with empty mv_like_spec
- values.
-
- Checks the known_capability to see if UPPER_COMPARE is set for that
- database, and uses (pseudo-code) "UPPER($col) like "\U$spec" if that
- is the case.
-
-* Add known_capability UPPER_COMPARE (set for Pg and Oracle to begin
- with) to allow upper-case transforms for case-insensitive compares.
-
-* Add ability to call custom UserTag or other ITL in Vend::Cfg->{SalesTax}.
-
-* Allow passing of extra parameters to button usertag with $opt->{extra}.
-
-* Add beginnings of transaction support. New [flag type=transaction table=x]
- allows you to open (write implied) a table for transactions. Will have no
- effect on tables that don't support it, but will open tables that do
- support it in non-AutoCommit mode. Sequence is:
-
- [flag type=transactions table="transactions orderline"]
- [import ...] or any other db update routines [/import]
- [flag type=commit table="transactions orderline"]
-
- Tested only on PostgreSQL at this point.
-
-* Add ability to read files from a database instead of the filesystem.
-
-
-------------------------------------------------------------------------------
-
-
-Interchange 4.7.0 not publicly released.
+* Support for Wells Fargo added
------------------------------------------------------------------------------