Appendix C: Technical Change History
Subscribe to WebDNA-Talk at http://www.webdna.us
- Current WebDNA Version: 6.2
This Technical Change History provides a reverse chronological list of WebDNA
changes. Scroll through the list as needed to view all changes beginning with
the current version.
4/6/2004 6.0a patch
Bug Fixes
- OSX:
- Fixed: 'RandSeed' search parameter not working.
- All Platforms:
- Fixed: [founditems] context used without a wrapping [search], [sql], or [sqlresults] context crashes the WebDNA engine.
- Fixed: [SQLExecute] - 'selecting' the same field more than once, in an SQL 'select' statement crashes the WebDNA engine.
4/6/2004 5.1g patch
Bug Fixes
- UNIX:
- Fixed: Cart sweeper removing cart file to soon. Could result in 'blank' purchases.
- Fixed: [IPAddress] tag sometimes returning the server IP.
- Windows:
- Fixed: DOS context failing if template path contained one or more spaces.
- Improved ISAPI extension: WebDNA can now handle large upload posts, without blocking other WebDNA page requests.
- All Platforms:
2/15/2004 6.0
- General release of WebDNA 6.0 for all supported platforms
Changes / Additions
- All Platforms
- Windows Platform
- Improved ISAPI extension: WebDNA can now handle large upload posts, without blocking other WebDNA page requests.
- Mac OSX Platform
- Added support for 'panther' OSX 10.3.
Bug Fixes
- All Platforms:
- Fixed: When performing a WebDNA summary search using summ=T, the
engine will throw an exception (or may quit) if the resulting 'summarized' records
number more than 32768.
- Fixed: Creating a WebDNA sandbox with 'triggers' disabled, causes the WebDNA
engine to start using a large amount of CPU bandwidth.
-
Fixed: Using the [Delimiter] tag in [ListWords] causes WebDNA engine to quit.
-
Added MIME response headers to help prevent Safari browser from caching WebDNA page requests.
- UNIX:
- Fixed: Cart sweeper removing cart file to soon. Could result in 'blank' purchases.
- Fixed: [IPAddress] tag sometimes returning the server IP.
- Windows:
- Fixed: DOS context failing if template path contained one or more spaces.
10/14/2003 5.1e patch
Bug Fixes
- UNIX:
- Fixed: Unable to access sandbox admin if physical path to WebCatalogEngine folder contains symbolic links.
- OSX/WebStar:
- Fixed: Possible crash if setting cookie data greater than 255 characters.
- Windows:
- Fixed: Incorrect 'Content-Length' HTML Response header value when using [ReturnRaw] with 'binarybody' option.
- All Platforms:
- Fixed: Domain license code not recognizing host names longer than 31 characters.
- Fixed: Crash when setting array index to empty value.
- Fixed: 'fbrk' search option only working on the last column of a database.
6/15/2003 5.1
- General release of WebDNA 5.1 for all supported platforms
Changes / Additions
- All Platforms
- New Java applet editor for WebDNAlab and CMS
- New 'BinaryBody' option for ReturnRaw context.
- [ReturnRaw binarybody=...]
Allows the WebDNA programmer to designate a file (binary or text) to be
attached as the 'body' of an HTTP response. This makes it possible to send a binary file (image, executable, etc...) back to the client.
For example, you can create download links for any type of file, and that would force the 'save as'
dialog to open on the client machine.
-
Example code: Creates a download link for every file in the current folder, binary or text.
[!]Initailize the getfile variable[/!]
[text secure=f]getfile=[/text]
[!]Check if filename was passed in[/!]
[showif [getfile]!]
[text]line_ending=%0D%0A[/text]
[!]Generate the response[/!]
[ReturnRaw binarybody=[getfile]]HTTP/1.0 200 OK[unurl][line_ending][/unurl][!]
[/!]Status: 200[unurl][line_ending][/unurl][!]
[/!]Content-Type: application/octet-stream[unurl][line_ending][/unurl][!]
[/!]Content-Disposition: attachment; filename="[getfile]"[unurl][line_ending][line_ending][/unurl][!]
[/!][/ReturnRaw]
[/showif]
[!] Generate a list of download links for all files in local directory [/!]
Click on a filename to download.
[listfiles path=.]
[showif [isfile]=T]
[filename]
[/showif]
[/listfiles]
- New global [LastAutonumber] tag. Will return the last 'auto-generated' number the engine
used when [Append]
or [Replace] was used with the AUTONUMBER= option (per thread).
- New [ThisAutonumber] tag for Append and Replace contexts. Will return the current auto-generated number for the
current [Append]
or [Replace] context that has the AUTONUMBER= option specified.
Only valid inside a
[Append] or [Replace] context.
- New Orderfile header fields for cart files:
bankRoutingNumber
bankAccountNumber
bankAccountType
bankName
bankAccountName
CCID
currencyCode
recurringBillingCode
fax
ShipTofax
customerID
invouceNumber
poNumber
description
customerType
customerTaxID
driversLicenseNumber
driversLicenseState
driversLicenseDOB
lastName
ShipTolastname
Comment
SameAsShipping
AVS
MD5Hash
taxExempt
resellerNumber
transactionIndex
relatedTransaction
- New 'delimiters' option for ConvertWords context
- Added WebDNA Table support to 'Lookup' tag
- WebDNA triggers can now hit secure URL, i.e. 'https://...'
- Faster [copyfile] and [movefile] code on Windows platform.
- Improved performance of TCPConnect/TCPSend context.
- Content Management System Enhancements:
- New access control mechanism for CMS workgroups. This implements a
way to restrict the privileges implied by the roles assigned to a
workgroup member to particular assets, or collections of assets, within
the staging repository. The default behavior if no Workgroup Access
lists are defined is that a Workgroup role applies to all assets in the
staging repository. In order to impose restricted access by workgroup,
the Staging Administrator can configure access lists that allow/deny
access for one or more workgroups, where the access list is attached to
a folder/file asset much like approval groups. This admin function has
been added to the Approval Admin tab. This defines whether a member of
a workgroup can exercise the privileges allowed by their 'role' to a
subset of folder/file assets in the staging repository, e.g., if you
want to limit the graphics department to only be able to modify content
in the 'graphics' folder of the staging repository, or limit a
development team to working on a sub-project of a larger effort. Note:
if an access list denies access to a workgroup member to a particular
asset, a "get latest" operation is still permitted. This is to allow
situations where global website files need to be mirrored into a
workgroup's work area via a "get latest", even if they cannot be
modified or viewed by members of that workgroup, so that asset folders
where modifications are allowed can be tested within the context of the
current state of the global site.
- List pane columns can now be sorted by clicking on the column header.
Repeated clicks invert the sort order.
- The username of the owner of a lock on a checked-out asset has been
modified to act as a hyperlink to an email dialog. This allows someone
else who needs access to a locked asset to click on the owner's
username, and send them an e-mail, e.g., requesting that they drink more
coffee and hurry up with their changes and check-in the file, etc.
Also, in the Workgroup Admin tab, and email icon has been added at the
end of each username listed to allow sending CMS members an email. When
creating new users, the email address field is now a required field.
- Right-click context menus can now be accessed when the cursor is
anywhere on a row of the list pane (previously, you had to mouse over
the folder/file name)
Bug Fixes
- All Platforms:
- Fixed: Several browser relates bugs with the Web Services Wizard application
- Fixed: Missing protect tags in StoreBuilder admin templates
- Fixed: Visnetic WebSite install issues
- Fixed: DOS, Shell and Applescripts not parsed when executed via sandbox 'ScriptID'
- Fixed: Crash with Addfields context
- Fixed: Crash with [listwords...Tabs=T]
- Fixed: Crash when enabling or disabling emailer or trigger features in a Sandbox.
3/14/2003 5.0
- General release of WebDNA 5.0 for all supported platforms
Changes / Additions
- All Platforms
- New contexts and tags: [ArraySet], [ArrayGet], [Function], [Scope], [Return],
[Table], [AddFields], [XMLParse], [XMLNodes], [XMLNodesAttributes], [XSL],
[XSLT], [CalcFileCRC32], [FileCompare].
- The [GetChars] context now has an optional 'trim' parameter.
- The [TCPSend] context now has an optional 'skipheader' parameter.
- The [Append] and [Replace] contexts now have an optional 'autonumber'
parameter.
- The [SendMail] context now has optional 'saveonsuccess' and 'saveonfail'
parameters.
- The [ListFiles] context now has optional 'name' and 'exact' parameters.
- The [Grep] context now has an optional 'ignorecase' parameter.
- New WebDNA Lab for development, chat and tutorials.
- New WebDNA Content Management System for development and file sharing.
- New ISP Sandbox security for local website security in an ISP environment.
- Pre and Post Parse Scripts for processing WebDNA before or after WebDNA
page requests.
1/13/2003 4.5.1
- General release of WebDNA 4.5.1 for all supported platforms
Changes / Additions
- All Platforms
- UNIX
- New 'File mode' preferences for secure and insecure file output - Overrides the file permissions that the WebDNA engine will use when creating new files, i,e, [CreateFile secure=F/T]
Bug Fixes
- All Platforms:
- The [Convertwords] context now works with the 'word=WW' and 'word=SW' options.
- [search] context - Fix for the 'ra' random sort option sometimes repeating the same sequence.
- StoreBuilder - UPS Online tool registration templates have been updated to fix a recent compatability issue with the UPS server.
The updated files are:
StoreBuilder/MASTER_STORE/admin/ups_reg.tpl
StoreBuilder/MASTER_STORE/admin/ups_lic_aggree_req.tpl
- Windows
- Fix for email date/time header 'off by one hour' bug.
- Fix for extra linefeeds in the email body when using [sendmail].
6/15/2002 4.5.0
- General release of WebDNA 4.5.0 for all supported platforms
Changes / Additions
- All Platforms
- UNIX
- New WebDNA monitor application - The WebCatalogCtl script will now launch a new binary file called 'WebDNAMonitor'. This small process will launch the main WebDNA engine. If the main engine process quits unexpectedly, the monitor application will re-launch the WebDNA engine automatically. This is a fast and convenient alternative to home-grown scripts that many WebDNA administrators have developed to restart the WebDNA engine. The 'WebCatalog' binary file can still be launched directly as usual.
Bug Fixes
- All Platforms:
- OSX 10.x
- Fixed a bug in [SendMail] where the date header was being miscalculated.
- Fixed a bug with the installer overwriting user settings (users.db, WebCatalog Prefs, etc...)
- AppleScript context will now work when WebDNA is launched as a startup item.
3/21/2002 4.5.0b1
Changes / Additions
- Mac OSX: New WebDNA build available for WebStar V.
- New SSL option for the [TCPConnect] context.
- New 'commit' option for the [CloseDatabase] tag. Setting commit=F will cause the named database to be flushed from memory, but not written to disk.
- New 'Absolute Path' Prefix '*'. Prefixing a database, file, or folder path with an '*' will result in the path being treated as absolute and not relative to the template. This can be useful on platforms where using an alias is not an option. This feature is disabled by default, and can be enabled via the WebDNA administration page.
- New preference to filter NULL characters while processing WebDNA (a.k.a Zap Gremlins). Enabling this preference will result in NULL characters being filtered from templates during processing. Some HTML/Text editors inserted NULL characters into the document being edited. This feature was built into older versions of WebDNA, but was disabled for WebCatalog 4.0. Now this capability is back and can be enabled or disabled via the WebDNA administration page.
- New 'Authorize Net - Direct Connect Method' payment processor option for WebMerchant (all platforms). Unlike the existing AuthorizeNet option, this method does not rely on the client browser to 'post' the transaction data to AuthorizeNet. All communication is between the server and the AuthorizeNet gateway. Uses the new SSL capable TCPConnect context.
- New 'PayFlowPro - verisign' payment processor option for WebMerchant. This is compatible with the latest PayFlowPro Java API from verisign (using the verisign.jar file).
- [AppleScript] context now available on the OSX build. Although the [AppleScript] context has been ported to the OSX platform, the behavior of scripts may be different given that they are now running from a background UNIX process. The [AppleScript] context may not work if WebDNA is launched as a service (startup item).
- StoreBuilder: Payment authorization method (i.e. CC, BK, AC) can now be changed via the Merchant prefs template.
- UPS OnLineŽ Tools are now integrated into the WebDNA StoreBuilder application. These include:
UPS OnLineŽ Tracking Tool
UPS OnLineŽ Rates & Services Selection Tool
StoreBuilder administrators can utilize the UPS OnLineŽ Tools by registering with UPS at any time.
StoreBuilder customers will then benefit from a choice of UPS rates and services selections for their orders, as well as being able to track the progress of their shipment using the UPS OnLineŽ Tracking Tool, without ever having to leave the store!
Bug Fixes
- All Platforms:
- Admin security template 'ShowNext' links now working.
- WebMerchant AdminOrders template 'Delete' function now working.
- [Format thousands] now works for negative numbers.
- StoreBuilder Admin 'Account Info' page now using the secure URL preference.
- Fixed potential buffer overrun with FORMAT context
- OSX 10.x
- Increased performance and stability for OSX 10.x platform
- All UNIX builds
- Fixed a bug with the shopping cart sweeper code that would cause the engine to quit if a shopping cart folder contained a subfolder
10/1/2001
- Release 4.0.2 for all platforms
7/12/2001 4.0.2rc2
Changes / Additions
- UNIX: New WebCatalog build available for FreeBSD
- New [secure] tag available for the [listvariables] context. Resolves to 'T' if the text variable is secure, 'F' otherwise.
- New global [HTTPMethod] tag. Resolves to either 'GET' or 'POST', based on how the template was requested.
- New [SourceFile] tag available for the 'error template' file. To assist debugging efforts, the [SourceFile] tag will display the template or include file that contained the code that generated the error.
- New global [FlushCache] tag for flushing the template cache. This is the 'tag' equivalent of the FlushCache command. Typhoon Pro users can use this tag to flush the template cache.
- New preferences to enable or disable error logging for both the errorlog.txt file and the browser display.
- New 'AuthorizeNet' payment processor option for WebMerchant (all platforms)
The StoreBuilder templates have also been updated to include this new payment processor option.
- UNIX: New 'Catch Signal' preference. When enabled, WebCatalog will 'catch' error signals and report debug information to the signalcatcher.debug file before exiting.
- UNIX: Mac OS X Server 1.x - Thread pool size can now be changed by modifying the "NumberThreads" setting in the 'WebCatalog Prefs' file
Bug Fixes
- All Platforms:
- Admin templates are now 'Typhoon' friendly.
- Insecure text variables can now be displayed inside of [spawn]ed code.
- [listvariables] context will now display insecure text variables.
- The [SQL] context can now be nested inside of a [search] context.
- WebCatalog more stable when parsing incomplete or invalid WebDNA, i.e, when certain tags are used without required parameters.
- [loop] context: the [index] tag will no longer get set to an incorrect value after the [break] tag is used.
- Trigger admin no longer generating new trigger IDs that contain 'exponent' notation.
- [sendmail] : Fixed problems with BCC.
- Fixed: [cart].tpl files showing up in root of TeaRoomXML example.
- Fixed memory leak in [Spawn] context.
- StoreBuilder: Changes to selected shipping types not reflected in shopping cart page.
- Shared POP Mailbox: Not able to view email message if subject is blank.
- Windows:
- Fixed: ISAPI dll crashing IIS when NT authentication is used.
- Fixed: ISAPI dll crashing IIS when FrontPage extensions are used.
- Fixed: MIME header linefeed bug.
- Fixed: 'empty' post generating 'Error. Program DBServer.exe is not running, or WebCat2 Service is not installed.' message.
- Mac:
- Plugin: Long URL (+60 chars) to an non-existent file generating 'security' error.
- Multiple [TCPSend] within one [TCPConnect] sometimes returning bad data. This was often evident when retrieving several email messages using the SharedPOP demo templates.
- Second instance of [TCPSend] crashing if TCP connection was closed after first [TCPSend].
- Fixed: CopyFolder creating 'locked' files
- UNIX:
- Mac OS X - Very large [loop]s, containing [math] operations, crashing.
- WebCatalog caching two versions of the same database if referenced using 'alias' and 'actual' paths.
1/24/2001 4.0.2rc1
11/15/2000 4.0.2b7
Changes
- New build for MAC OS X Client
- New build for Redhat Linux 7.0
- Unix: [sendmail] context now has the ability to use a remote SMTP server for mail delivery.
Bug Fixes
- All Platforms:
- Fixed: Possible crash when an 'append', 'replace', or 'if' context is encountered with missing required parameters.
- Fixed: Possible crash if a directory is specified as a db in any of the context that try to open a db.
- Fixed: Possible crash when an extra long filename is specified in the deletefile context.
- Fixed: BCC is being set as the CC if it comes first in the sendmail context.
- Fixed: Possible crash when a template tries to get the height or width of an invalid jpeg image.
- Fixed: WebCatalog will sometimes 'drop' every 100th append.
- Fixed: WebCatalog failing to access field data if the fieldname contained a space (this is fixed for classic syntax only).
- Fixed: Webcatalog will sometimes cache two or more instances of the same database in memory. This could happen when one databases is referenced in two separate ways, i.e. when using a 'global' and 'relative' path.
- Fixed: XML syntax - [closedatabase] fails
- Fixed: [listwords tabs=T] - [Index ] will return blank when 'words' string contains a run of tabs. Also, listwords fails completely if 'words' string starts with a tab.
- Fixed: Math variables starting with '_' do not work.
- Fixed: [IF] or [math], string comparisons fail if the first character is a '+' or '-'.
- Fixed: Capitalize context would incorrectly capitalize contractions, ie. can't --> Can'T
- Fixed: StoreBuilder - Store admin users belonging to any security group other than 'admin' are unable to edit products
- MacOS:
- Fixed: TCPSend context sometimes returns garbage (CGI only) if used within another context.
- Fixed: CGI module crashing if a trigger is setup with a bad URL.
- Windows:
- Fixed: First [random] tag in a template not very random.
- Fixed: $Webcat.exe returning extra <cr> characters.
- All Unix:
- Fixed: Instability when WebCatalog running in 'Intertwined' mode
- Fixed: WebCatalog does not change the supplemental groups and keeps root's supplemental groups.
- Fixed: After changing a template the change does not show up in the browser even after several page reloads.
- Fixed: WebCatalog takes to long to return a template with a sendmail context and depends on sendmail being run on the same machine that runs WebCatalog.
- OSX Server:
- Fixed: MIME header bug when using iTools/SSL.
8/4/2000 4.0.2b5
- All Platforms:
- Fixed slow leak in [math] that causes system resources to gradually be used up.
- Fixed slow leak when db or template not found
- Caching fixes that prevent templates or dbs from being flushed
- MacOS:
- Plugin now has better expiration MIME headers.
- MacAuthorize scripts gremlins removed.
- Plugin now uses correct single path to databases when alternate paths coded
- Alias resolution now correct for multiple aliases to same db
- Windows:
- NT now sleeps during [WaitForFile] without using 100% CPU
- All Unix:
- Unix versions can now exceed old 1M limit of returned HTML
- Unix [shell] command uses local template dir as starting point
6/27/2000
- Release 4.0.1 for all platforms
6/21/2000 4.0.1b2
- All Platforms:
- Fixed undefined <DNA_NumFound> tag in XML syntax
- Added more XML-syntax documents to Simple WebDNA Examples
- Fix another SQL cursor type problem with stored procedures
- SQL fix for NULL column values
- Fixed indexes on user and programmer guide
- Miscellaneous StoreBuilder fixes
- Added additional information to email templates
- Fixed blank entries in CC type menu on invoice page
- No longer displaying the shipping option for carts containing only nonphysical
items
- Fixed 'lost cart' problem when following a 'related' item link from
a product page
- SQL: Fixed stored procedures bug
- MacOS:
- Fixed bomb when Java not installed on MacOS
- MacOS Restart/Quit/Start emailer link works now under plugin code
- Windows:
- SQL fix for bomb when no username/password sent\
- User can now select which file extensions to map to WebCatalog directly
from installer
- Solaris SPARC:
- [freememory] tag added for Solaris
- All Unix:
- Fix for randomness in multithreaded UNIX environments
- Enhanced pid-file for better UNIX startup/shutdown in WebCatalogCtl
- OSX Server:
- Should be ready for ODBC (as soon as someone else provides drivers)
- Cobalt
- Fixed problems with upgrading from older versions of WebCatalog on Cobalt
6/14/00 4.0.1b1
- All Platforms:
- Fixed [Decrypt] bug that appended null characters to output
- Fixed SQL bug for Oracle and SQL 7
- Changed "Powered By" text and link
- Fixed string comparison bug in [math] and [if] when first string is
""
- Fixed [search] random sorting to be more random and thread-safe
- Miscellaneous StoreBuilder fixes
- Related/Accessory Items not displayed properly
- Increased validation when creating new StoreBuilder product options
- Fixed SQL Context Failing
- Fixed StoreBuilder option price overrides not working
- Fixed Unable to delete unnamed DayPlanner items
- MacOS:
- Added optional parameters "type=" and "creator=" to MacOS [WriteFile]
- Fixed [sum field=xxx] bomb on MacOS
- All Unix:
- Fixed bug in UNIX WebCatalogCtl that caused intermittent startup
- Fixed UNIX bug that caused shopping carts to not be deleted
- Cobalt:
- Enhanced Cobalt installer to be able to upgrade from 3.0.8 -> 4.0 cleanly
6/9/2000
- Fixed WebDNA parser bug that caused OrderFile header vars to disappear
- Fixed memory overwrite when [Format] contains non-numeric data
- Fixed un-initialized numThreadsWaiting variable in cache
- Added better parser error checking to [Case] and [Switch]
- Changed grep code to use standard memory allocator
- Fixed parser bug that caused command=ShowCart to not parse XML vars
- Fixed [Spawn] so that it matches new secure variable hierarchy
- Enhanced MacOS multithreading semaphore code to prevent wrong concurrency
- Installer fix for IIS 3.0
6/2/2000
- Added [CopyFolder] and [RenameFile] to MacOS
- Fixed 31-day month date bug in triggers
- Fixed null [text] string assignment that caused seg fault on UNIX
- Fixed Solaris [TCPConnect] by ip address instead of name
- Added named "words" parameter to [BoldWords] for consistency
- Added proper cr/lf cr/lf sequence to NT MIME headers (was lf lf)
- ListFiles now working for Win98/NT/2000
- Added StoreBuilder email template style extensibility
- Fixed DOS context not executing from the calling template's path
- WebCatalog 4.0 now working with O'Reilly WebSite Server
- Shared POP: email link now working
- Fixed a few StoreBuilder template bugs
- New multithreading code rolled into OSX
- Java interpreter hard-linked into OSX
- ODBC support for [SQL] rolled into OSX
5/26/2000
- Added named "words=" parameter to BoldWords to help with XML syntax
- Fixed command=remove with index, was affecting TeaRoomXML shopping cart
- Added Java feature to [Object] context for Linux, Solaris, Cobalt
- Global preference for insecure text variables * Fixed bug with [max] inside
search context
- UNIX: Fixed [TCPSend] for long byte streams > 255 chars
- UNIX: Fixed [TCPConnect] for numeric up address for host field
- Fixed possible memory bounds bug doing string comparisons
- Fixed self-deadlock problem when auto-commit turned on
- Fixed stack overrun when [loop] inside hidden context
- Fixed possible crash when displaying [ListDatabases]
- Fixed WebTen plugin unable to find cgi-bin URL path for admin
- Fixed DOS context for Windows platforms
- TCPSend fix for UNIX platforms
- Improved installation under Win98/PWS
- Fixed various TeaRoomXML issues
- Miscellaneous fixes to StoreBuilder
- Refinements to user guide
- Refinements to programmer guide
5/19/2000
- Fixed some data bounds overruns on string comparisons
- Fixed self-deadlock during auto-commit
- Added new global preference to provide default un-secure text variables
- Fixed stack overrun when displaying loop context index
- Some multithreading fixes to ListDatabases context
- Fixed deadlock condition inside trigger; reduced range of lock
- Added ODBC support to Solaris, Linux
- Experimental [summcount] for summary search totals
- Sped up token parser for known context tags
- Removed explicit yield calls on preemptive OSs
- Removed incorrect assertion when flushing databases
- Fixed crash when prefs are flushed and still need some of its values
- Fixed leak in database lock closing routine
- Added auto-refresh after math question so pages reloads itself
- Added Linux script installer for people who don't want RPMs
- Automatic stopping And starting of W3SVC service for IIS4/5
- Added WebCatalog Index link to program group
- Improved WebCatalog Installation when using O'Reilly Website Server
- No longer need to reboot for IIS4/5 installs
- Automatic Launching of DBServer on windows startup (Win98)
- Miscellaneous fixes to StoreBuilder
- Revisions to Chapter 2 in programmer guide -WebCatalog Tutorial
- Revisions to Chapter 1 in programmer guide - Shopping Cart Transaction Processing
- Added Chapter 4 in programmer guide - Advanced Uses of WebCatalog
- Miscellaneous revisions to user guide
5/12/2000
- Added xmlSyntax=T option to [interpret]
- Added secure=F option to [text]
- Added critical section code to MacOS
- Fixed plugin startup problems under WebSTAR
- Tenon has update to WebTen to fix startup problems with plugin, if ours
doesn't work
- Folded new multithreading code into Solaris, Linux and Cobalt versions
- Parser fix for embedded escaped quotes in complex XML syntax
- Many fixes to Windows installer: IIS3, IIS4, IIS5, Windows98, Windows2000
- Added ODBC support to Linux, Solaris, Cobalt
- Added experimental [recordrank] to [FoundItems]
- Added ability to override content-type with [SetMIMEHeader]
- Fixed [imagewidth] and [imageheight] for JPEG files on intel platforms
- Changed [regexp] to [grep]
- Modifications to various tags, commands and contexts in the online documentation
- Modified SearchContext.html
- Miscellaneous StoreBuilder revisions
- StoreBuilder now supports InternetCash
- Continued revisions to the user guide
- Added WebCatalog tutorial to programmer guide
- Added shopping cart transaction processing to programmer guide
- Continued revisions to the programmer guide
5/5/2000
- Added Solaris, Cobalt, OSX installers
- Added MacOS WebSTAR plugin
- Renamed [regexp] to [grep] to match docs
- Fixed side-effect that caused parameters of a context to be executed even
inside hidden contexts
- Fixed bug that caused templates to be loaded from cache (instead of disk)
even when optional fromCache=T was turned on
- Fixed miscalculation in aggregate functions
- Fixed bug that did not commit database to disk when closed
- Added UNIX ODBC support to Linux version
- Windows installer now uses MetaBase instead of Registry for IIS4 and IIS5
- Added index.html to Mac and UNIX installers Removed CyberSource context
from Windows version; use Java instead now
- Fixed [isfile], [isfolder] for Windows
- Added file upload to UNIX versions
- Cosmetic and functional changes to StoreBuilder
- WebMerchant now included as open source
- Refinements to documentation
5/1/2000
Version 4.0 Changes
- New Tags and Contexts
- New Values Inside Contexts
- Deprecated Items
- Tag: IsSecureClient
- Context: HTML1
- Context: HTML2
- Context: HTML3
- Commands: ShowPage
- Deleted Items
- Command: NewCart
- Command: Quit
Changes from Earlier Versions
- Final 3.0.6 unix releases, MacOSX, Linux Intel, Solaris SPARC
11/1/1999
- All Platforms:
- Fixed WebMerchant template bug that prevented triggers from processing
orders (StoreID was left out of trigger URL)
- Unix:
- Changed behavior of database file writing routines so permissions
umask does not get modified after append/replace/delete operations.
- Users can use either use Installer.app or remote login to install
and uninstall WebCatalog package
- When upgrading WebCatalog, "Users.db", "Triggers.db",
"WebCatalog Prefs", and "Globals/WebMerchant/Store.db"
will not be overwritten
- When uninstalling WebCatalog, all the files that were created after
install-time will not be deleted by installer. To remove the entire
/Local/Library/WebServer/WebCatalog folder, users must delete it manually
- When upgrading WebCatalog, all configuration files for sendmail, apache,
iTools ... will not be changed from the previous install
- When uninstalling WebCatalog, all WebCatalog directives in configuration
files will be deleted
- Everywhere under Apache ServerDocumentRoot, the following databases
will be protected:
- All .db files
- All folders named "Orders", "ShoppingCarts",
"WebMerchant/CompletedOrders ", "WebMerchant/Problems",
"WebMerchant/Pending", "WebMerchant/StockRoom"
- WebCatalog Prefs
- WebCatalog/ErrorLog.txt
10/24/1999
- All Platforms:
- Fixed the problem where triggers containing invalid urls were not
editable. (reported by customer; did not intentionally fix)
- Fixed 11th hour triggers bug
- Fixed newly-introduced quote-comma database false error message
9/23/1999
- MacOS:
- Modified MIME headers that come back from plugin to include Date,
Last-Modified, Expires, HTTP 1.1, and proper Server: fields.
8/8/1999
- All Platforms:
- Modified [FoundItems] so it does not return an error message if your
start at parameter is higher than the number of found items.
6/25/1999
- Both Win + Mac:
- Added new parameter to [include] forcing it to read a file from disk
instead of using the cached version of the file in RAM. This allows
you to write a file to disk and then immediately read the most current
version back without having to wait for the template cache timeout.
6/8/1999
- Both Win + Mac:
- Added new error message to distinguish out-of-memory from exceeding
1M HTML output limit
- SQL columns returning (NULL) data now output nothing in WebDNA instead
of occasional garbage
- Mac:
- Fixed bug during CyberCash decryption that caused WebSTAR or WebTen
to stop execution
4/14/1999
- Both Win + Mac:
- Fixed bug that did not allow [WaitForFile] to see timeout parameter
when specifying a fullPath
- Mac:
- Fixed bug that caused occasional memory corruption when accessing
secure files (db files, and [WriteFile secure=T]) via an alias path
that is much shorter than the fully-resolved path
4/7/1999
- Final 3.0.4 release, both Windows and MacOS
4/5/1999
- $WebCat.dll bug fixes, Windows
- Win:
- Fixed bug in $WebCat.dll that caused it to intermittently fail under
Windows98 with the message "DBServer.exe is not running"
3/29/1999
- 3.0.4b7 bug fixes, Windows and Macintosh
- Both Win + Mac:
- Added thread synchronization preference which helps prevent certain
types of true WebDNA deadlock
- Sped up summary search where lots of unique items were found
- Fixed bug in [Middle] that caused bombs or bad data if the END string
was not found
- More fixes to date routines
- fixed [ConvertChars] so that if database is not found, it does no
conversions at all and outputs text unchanged
- Fixed bug in summary search where date fields were used, and the number
of unique records exceeded the number of fields
- Fixed AdminPrefs.tpl typo for ValidDatabaseExtensions
- Plugged a leak when using [AddLineItem] with textA-E fields
- Fixed admin template bug that would not allow second-to-last admin
user to be deleted
- Fixed date math bug in Triggers' nextExecute field
- Win:
- Modified $WebCat.dll to enable "High" priority in IIS4 MMC
settings
- Enhanced stability of $WebCat.dll filter during large POST operations
- Mac:
- Fixed 68K bug that did not allow standard serial numbers to work
- Fixed alias bug that did not set secure file type if the path to the
file included an alias in it
2/5/1999
- 3.0.4b6 bug fixes, Windows and Macintosh
- Both Win + Mac:
- Modified [Spawn] so that spawned contexts get a copy of all math and
text variables, as well as the normal mime headers, cookies, and URL
parameters
- Plugged a leak when deleting records from a database
- Fixed credit card validation for IGNORECARD case
- Changed online docs so they don't get executed with WebDNA if .html
suffix mappings are set to WebCatalog
- Fixed bug that caused cookies to be ignored under Internet Explorer
1/20/1999
- 3.0.4b5 minor release, Windows and Macintosh
- Both Win + Mac:
- Fixed error when using [ListFields] inside a hidden context
- More bug fixes to hidden interior [/XXX] contexts
- Changed template decryption key to URL-ized string so it pastes into
resource editors more easily
- Fixed date math bug that would cause lockup when interpreting certain
dates
- Win:
- Fixed template decryption bug
- Fixed long-standing bug that required DBServer.exe to always remain
named exactly DBServer.exe, otherwise template decryption would not
work.
- Mac:
- Fixed bug that wrote outgoing email files with un-secure filetype
1/18/1999
- 3.0.4b4 minor release, Windows and Macintosh
- Both Win + Mac:
- Fixed database flush bomb, also related to a bomb that occurs when
more than 100 databases are accessed in a single template
- Fixed bug that caused hidden interior [/XXX] contexts to act as though
they were the matching closure for outer visible ones
- Win:
- Added EMailEnabled preference which, if set to "F", will
cause Windows version to never send email. If you change this value
in the WebCatalog Prefs file, you need to shut down and restart WebDNA.
- Mac:
- Fixed bug that trashed a database if a remote file-sharing program
currently had the file open and write-locked
1/14/1999
- 3.0.4b3 minor release, Windows and Macintosh
- Both Win + Mac:
- Fixed read deadlock that was holding databases past the actual hit,
causing application quit to deadlock
- Fixed auto-commit bug that 'forgot' to commit databases on each hit
- Modified [FoundItems] loop to prevent error messages from non-existent
interior [OrderFile] contexts
- Fixed [WaitForFile] bug that allowed interior of context to execute
even if file never appears
- Changed WaitForFile docs to reflect 30-second default timeout
- Fixed memory leak when [Redirect] is used from inside a [search].
This also fixes numerous other possible leaks.
- Changed [redirect] to send back "302 Moved Temporarily"
instead of "302 Found"
- Fixed bug that did not pre-set textA-E lineitem variables so that
a formula could not use them to help calculate values
- Win:
- Modified [DOS] context slightly, in hopes that flushing buffers will
clean up second execution if previous execution failed
1/6/1999
- 3.0.4b2 minor release, Windows and Macintosh
- Both Win + Mac:
- Added HTML documentation for [format .3d] decimal formatting
- Triggers: fixed a bug that caused triggers to retry even when the
validation text was correct.
- Triggers: fixed a bug that caused the "next execute" date
to alternate between 12 and 13 months if the trigger happened in January
- Triggers: added a feature to allow for 'one-shot' triggers that only
execute once. If "*" does not appear in any of the Execute
Params, then the trigger will be disabled after its first successful
execution
- Win:
- Fixed a bombing bug that caused certain unknown exceptions (and any
hit that exceeded 1M returned text) to crash and show a Dr. Watson error.
12/21/98
- 3.0.3 minor release, Windows and Macintosh
- Both Win + Mac:
- Fixed some multithreading bugs that caused thread deadlocks when auto-commit
databases preference is turned on. Not all deadlock issues have been
fixed, but this solves many of them
- Pre-installed WebMerchant 3.0 templates into WebCatalog installer,
so WebMerchant is available automatically to any WebCatalog installation
- Enhanced [math] context to handle ambiguous dates/times. If your dates
contain a decimal point "." in them, then the [math] context
will interpret them as Times instead of Dates. You can force it to interpret
some text as a Date by inserting a "D" in front of the text,
as in [math]{D10.01.1998}[/math], so that 10.01.1998 is interpreted
as a date instead of a time. You can force Time interpretation by using
"T" in place of the "D".
- Mac:
- Changed serial# self-policing scheme so that it is not so sensitive
to crashes. Should fix "Math question comes up, serial# in use
already" bug
10/2/98
- 3.0.1 minor release, Windows and Macintosh
- Both Win + Mac:
- Fixed erratic loss of [cart] number when using [include] files that
need cart
- Fixed template bug in Admin Preferences that caused ReadDateFormet
to interpret sorted dates incorrectly
- Mac:
- Fixed bug that caused default index template to be displayed once
but never again (ACGI only).
9/30/98
- 3.0 GM release, Windows and Macintosh
- Both Win + Mac:
- Cleaned up preferences admin pages, added some prefs that were missing
- Added IIS4 config instructions and screen shots
- Enhanced PDF manual includes new table of contents, index, NT installation
technotes
9/22/98
- 3.0b9 Mac Release
- Both Win + Mac:
- Fixed FlushDatabases bug that bombed occasionally when database was
busy
- Fixed Triggers bug that caused Triggers.db to be exclusive-locked
at all times; even when trying to administer it thru web interface
- Fixed [SetMIMEHeader] and
[SetCookie] so they replace rather
than append new values to list of headers
- Mac:
- Changed PIXO handler to look for beginning of MIME headers
9/14/98
- 3.0b8 Windows Release
- Both Win + Mac:
- Append/Replace records in database converts CR/LF combination to single
soft-return
- New StoreBuilder templates
- New WebMerchant serial# administration templates
- New look for overall admin templates
- Content-length added to MIME headers
- Radically changed parser so that WebDNA executes in very low ThreadMem
stack space (most important on Macintosh)
- Radically changed parser so that hidden contexts are skipped very
quickly
- Win:
- Fixed bomb when page returned > 1Meg text. Displays error message
now
8/18/98
- 3.0b7 Windows Release
- Win:
- Added new password feature that overcomes old limitations on IIS servers
which forced you to put username/password into forms. Now the normal
browser dialog appears asking for username/password, and the information
passes automatically through MIME headers (the same way MacOS or PC
WebSite works). You must add $WebCat.dll to your list of Filter DLLs
for IIS and delete the file "AuthenticateChecker" to get this
feature.
- Fixed bug that caused bomb when "to:" email address was
longer than 255 characters
- Added [CreateTime] and [CreateDate] tags to [ListFiles]
tags
8/14/98
- 3.0b6 Mac Release
- Both Win + Mac:
- Changed meaning of caret "^" home directory to look inside
a folder called "Globals" in the root WebCatalog folder, rather
than the root of WebCatalog itself
- Fixed ODBC bug that caused long fields such as 'TEXT' type to not
return any data
- Added "End=anytext" parameter to [TCPSend]
context so it knows when to stop looking for data from remote server
- Fixed [ListWords] bug that sometimes
caused it to return garbage words
- Fixed [MoveFile] bug that caused
original file to be deleted if the destination folder was not found
- Fixed [Loop] bug that caused loop to
repeat unknown number of times if the start or end parameters are non-numeric
- Fixed [ListFiles] so that it accepts
"file=", "path=", and "folder=" parameters
as well as the usual unnamed folder parameter
- Fixed bugs in [Text] and [Math]
contexts that caused simple display of those variables (using [xxx]
instead of [math]xxx[/math] or [text]xxx[/text]) to be case-sensitive
or not to show at all
- Changed "Startafter" and "endbefore" parameters
in [Middle] context to "start"
and "end" to match other contexts syntax better. Also changed
the way the "end" parameter looks for text: it looks from
the right-hand side of the text inwards, so that successive calls to
[Middle] will work from the "outside in"
- Added "method=APOP" encryption method to [Encrypt]
to assist with email retrieval
- Fixed search summary bug that caused summaries to not work at all
- Fixed [text multi=T] multiple assignment
to text variables
- Changed [Append] and [Replace]
so that a sequence of CR/LF is replaced with a single <soft return>
character in the database
- Modified/Fixed TeaRoom example
- Enhanced DatabaseHelper templates
- Mac:
- Fixed bug that caused serial# to be reported as "in use"
when it wasn't
- Fixed [FileInfo] bug that did not
follow aliases correctly
- Fixed [ListFiles] bug that did
not follow aliases correctly
- Added [CreateDate] and [CreateTime] tags to [ListFiles]
context
- Fixed [MoveFile] bug that did
not copy filetype/creator info correctly when copying to an aliased
folder
- Fixed bug that caused searches with "startAt" parameter
to bomb on machines without ODBC installed
- Fixed bug that prevented text after "&" in [referrer]
from appearing
7/28/98
- 3.0b4 Mac Release
- Added Show=T and Show=F behavior to [Text]
context
- Fixed security bug that caused [Protect] to allow any password thru
- Modified [Math] and [Text]
contexts so that you can display variables more easily: simply put the variable
name inside brackets like [varname] to display its value.
- Mac: Better turnaround time on heavily-threaded ACGI
- Mac: 68K ODBC support
- Mac: PPC (PPC only, 68K never) CyberCash support
- Mac: fixed memory leak in [TCPConnect]
7/10/98
- 3.0b3 Mac Release
- Mac: Better turnaround time on heavily-loaded plugin
- Mac: Fixed PIXO for FireSite bug that caused auto-proxy when not needed
- Mac: Added Trigger feature (it was left out of initial Mac release)
7/8/98
- 3.0b3 Windows Release
- Fixed bug that allowed hidden [FoundItems], [URL] and [UnURL] contexts
to execute interior WebDNA when it should be hidden instead
- Win: Better turnaround time on heavily-loaded NT servers
- Win: Better use of multiprocessor NT machines
- Enhanced [FormVariables] tag so
you can get variables from the list of values in an [include] tag
- Win: Plugged a memory leak of 16K per hit
6/22/98
- 3.0b1 Release
- Added new contexts:
- Added Trigger feature
- Added ODBC client-side support
- Fixed bug when no MIME headers are present
- Mac: added ThreadMEM prefs for PIXO backending
- Win: Added new encryption methods for CyberCash and Base64
- Win: Added ISAPI Filter to enable Base64 authenticate similar to WebSite
or Mac
- Changed Capitalize context to be smarter about punctuation
- Added ability to execute encrypted templates
- Added Seconds_To_Time format modifier
- Changed [Decrypt] so that it cannot decrypt the seed "TEMPLATE",
for use with encrypted templates
4/17/98
3/17/98
- 2.1.1 Release
- Increased number of math variables from 50 to 150
- Fixed $NewCart lockup
- Added Pragma no-cache to Serial# page
- Fixed bug that caused [index] inside [lineitems] to get chewed up
- Write CartIPAddress to order file automatically upon Purchase
- Win: fixed bomb when no referrer
- Win: [Referrer] tag fixed, no longer chewed up when no referrer
- Mac: Allow plugin to load without AppleScript
- Mac: Fixed emailer bug that caused certain messages to drop
- Mac: Fixed WebTen bug that caused "/" to refer to global root
instead of local vhost root
- Win: WebMerchant bug that deletes order files every 24 hours instead of
preferred
- WebMerchant sets zip to 00000 if not 5, 6, or 9 digits (to help clear
international orders)
- Mac: Fixed auto-settle bug that settled even when preference was blank
2/24/98
- Final 2.1 GM release for Mac
- Mac: Added plugin PathCleanup preference for Quid Pro Quo and WebTen (non-myopic)
compatibility
- Mac: fixed PIXO problem finding template path when backended via NetCloak
- Mac: fixed bug that truncated template names in plugin
- Fixed single-field database bug that caused one-field databases to not
be written correctly
- Fixed shipCost formula so it can get current value of [subTotal] during
$Add
2/15/98
- Added AutoCommit preference to write all changed databases to disk after
every page hit
- Added [CommitDatabase dbpath] to write databases without closing
them
2/5/98
- Modified behavior of cart file overrides: nonTaxableTotal, taxableTotal,
taxTotal, and shippingTotal are the only overrideable values now. [GrandTotal]
and [SubTotal] are correctly computed based on overrides now.
- Modified encryption spec
- Added elapsedtime and memoryAvailable to debug log
- Added CheckTemplateInterval and DebugLevel to preferences template
1/29/98
- Added custom word break character
feature so you can define what text is considered to be a word when searching.
- Smart template caching uses a new CheckTemplateInterval preference to
determine the number of seconds it should wait before checking the disk
for modified files.
- Mac: Fixed multihoming bugs under WebSTAR 3.0
- Generalized sample templates so they are identical on both Mac and PC
1/19/98
- Added optional custom conversion table to [ConvertChars]
- Mac: Changed template extension to .tpl in order to simplify cross-platform
development
1/16/98
- Enchanced security of encyption algorithm. Previously-encrypted passwords
are no longer valid!
- Modified encryption seed so that it takes an 8-character text value instead
of a numeric value
- Win: updated Admin templates to use new security encryption, also updated
GeneralStore templates so that order file contains [IPAddress] of purchaser,
and made it easier to rename the product database
1/12/98
- Win: Enhanced emailer file format to handle
arbitrary user-defined MIME headers, including standard ones like Bcc: and
Cc:
- Win: Fixed [DeleteFolder] and FileInfo's [exists] tags
- Win: Added [Version] tag to report WebCatalog version#
- Win: Added exception-handling to detect and cleanly ignore Dr. Watson
bombs
1/5/98
- [ValidCard] now accepts case-insensitive parameters
- New emailer file format allows for any MIME headers, and works with SIMS
and EIMS (Mac) direct file format. Requires new emailer application.
- Added preference for FirstMIMEHeader and ThreadMem
- Mac: smart caching follows aliases correctly, re-reads from disk if original
is modified
- Modified order file format to include extra headers and 'override' values
for calculated totals. These
values can be overridden.
- Added [Encrypt] and [Decrypt]
contexts so we can get rid of clear-text passwords.
12/27/97
- Mac: If the parameter to [DeleteFolder] tag is an alias, then just the
alias itself is deleted, and not the entire folder which the alias refers
to
12/27/97
- Fixed bug that didn't show new quantities inside [OrderFile] embedded
in $ShowCart page
- Added [SetCookie] tag
- Added [SetMIMEHeader] tag
- Added [MaxCopies] tag that shows how many licensed copies of this serial
number are allowed to run at once
- Added [Redirect] tag
- Added [ExpireDate] tag that shows when this WebCatalog's serial number
will expire
- Mac: Fixed various Signal Raised errors so that CGI quits when memory
is too fragmented
- Fixed HideIf/ShowIf bug that got confused when !=~^>< comparison
operators were embedded in either side of the equation
12/10/97
- Added new Serial # scheme that allows for developers to run time-limited
- Sped up cart display routines and automatic lookups
- Mac: Sped up alias resolution of cached databases
11/24/97
- Added [Capitalize] Context
- Added error message to [Purchase] that displays credit card check digit
error
- Added [ValidCard] tag to pre-verify
credit card numbers
11/11/97
11/3/97
- Mac: Fixed low-level memory allocation bug that caused LModelDirector
dialog to appear
- Mac: added ?command=showpage style commands to ease cross-platform porting
- Added "taxable" to list of allowed formulas
- Added "from=end" parameter to GetChars context
- Mac: fixed bug that caused AppleScript to execute inside [HideIf]
- Win: Added [DOS] context
- Added [FileInfo] context
- Added ability for formulas to access LineItem variables of the current
lineitem being added
11/2/97
- Added [break] statement to [Loop] context,
which causes it to stop looping after the current iteration is complete.
- Expermiental: added [WaitForFile filename] context, which waits
for a file to appear before executing its interior WebDNA code.
10/30/97
- Win: Added [ListMIMEHeaders]
context
- Win: Added Cookie support for retrieving cookie values set with [ReturnRaw]
10/28/97
- Mac: Added [ListMIMEHeaders] support
- Mac: Added Cookie support for retrieving cookie values set with [ReturnRaw]
- Mac: Began adding PIXO support to plugin
10/23/97
- Win: Added sin() cos() tan() ceil() floor(), etc. functions to [Math]
context that already were available in Mac version (undocumented)
- Win: Fixed path collapsing bug that caused a single database to be considered
as two separate databases because the relative paths were different
10/7/97
- Win: Added [CountChars] and [GetChars] contexts
- Win: changed [ListFiles] context so it doesn't show ".." foldernames
- Win: Added Windows 95 support
10/2/97
- Win: changed meaning of "/" so that file paths beginning with
"/" are stored relative to DBServer.exe rather than C:. This is
because NT servers do not provide enough information to let us know the
true virtual root.
- Win: Fixed email sweeper bug that allowed sweeping after main thread was
killed
10/1/97
- Mac: Fixed bug that caused the "shopping cart already submitted"
error message to be ignored
- NT: Added [DeleteFile], [MoveFile], [CopyFile] tags.
- Added xxx.hdr support so that databases without fieldnames can be support
by creating a file with extension ".hdr" which does contain the
fieldnames
- Mac: Fixed .2d formatting bug that showed up under OS8
- NT: Fixed thread concurrency bug that appears on multi-processor systems
under heavy load
9/14/97
- Mac: Final release of 2.0.1
- Fixed multithreaded [math] context bomb
- Fixed [include] bug that did not automatically propagate cart numbers
into the included file
- Fixed sorting bug that caused multi-field sorts to arrange incorrectly
- Mac: Fixed bug that caused templates with spaces in their filenames to
be impossible to open with the plugin
9/10/97
- Mac: Fixed bug that caused [ListFiles] of an empty folder to incorrectly
display a "Path not found" error message, and later cause searches
to lock up the machine
- Fixed online docs for [date %x] and [date %X]
- Fixed some TeaRoom HTML inconsistencies
9/3/97
- Fixed bug that made non-caching browsers incapable of displaying a shopping
cart with an incorrect credit card number
- $Purchase does not allow negative quantities now
9/2/97
- Mac: Added support for WebTen and virtual hosts (so now URLs leading to
templates inside of different virtual root directories will now display
correctly)
- Mac: Added support for Microsoft Personal Web Server
- Added more default character translations for ©, ®, TM
- Mac: Added default ThreadMem preference to give plugins 48K of stack space
- Fixed a long-standing bug that caused intermittent bombs if a database
was [Append]-ed more that 100 times in a row without being closed or flushed.
8/28/97
- Mac: Increased security of emailer application by setting all filetypes
to WWWOmega
- NT: Added [AddLineItem] [SetLineItem] [SetHeader] contexts that were left
out in last build
8/27/97
- Mac: Fixed Emailer bug that never got past empty or bad email files
- Added more preferences to AdminPut and AdminGet commands
8/26/97
- Added security preferences to check/disallow displaying template filename
extensions and database filename extensions
- Added new method for specifying search group fields (so that periods and
other non-alpha characters are allowed in fieldnames)
- Fixed [WriteFile] context that did not output text
- Fixed [SendMail] that created incorrect email file format
8/21/97
- Fixed MIME header problem with Mac that caused Status:200 to appear in
some browsers
8/1/97-8/13/97
- POST forms can now accept more than 24K (Mac plugin only)
- Added [ReturnRaw] context for custom MIME headers
- Fixed [ListDatabases] bug that displayed "Can't find database"
in admin pages
- Mac: Added stack space increaser for plugin: put ThreadMem 50 into prefs
to give threads 50K stack space (defaults to 32K)
- Added ability to search for an empty field
- Mac: Fixed LModelDirector out of memory bug
- Fixed 255-char limit for embedded search strings
- Forms were limited to 100 fields; increased to unlimited
- Changed "yourdomain.com" to "your domain.com" because
owners of yourdomain.com complained
- Fixed lots of date calculation problems, mostly in delta calcs
- NT: Added MIME header preference to deal with differences between NT servers
- [ShowNext] max parameter works correctly now (and is documented)
7/31/97
- Fixed some HTML linkage problems in GeneralStore and Admin
- Increased length of [ConvertChars] text conversions from 15 to 63 characters
- Fixed bombing bug when you display [textA] in [lineitems] on cart with
0 items
- Added [FlushDatabases] tag
- Added Show=F parameter to [math] context to prevent equation results from
being displayed
7/16/97
- Added Problems and CompletedOrders folder to GeneralStore to help with
WebMerchant prefs for standard place to store those files
5/13/97-6/30/97 (Windows NT phase)
- BIG CHANGE! Moved templates and shopping carts into cgi directory for
security. In order to prevent outsiders from downloading your shopping cart
files, we moved just about everything down into the CGI folder. Web servers
won't serve those files unless there's a suffix mapping (which there isn't).
Only WebCatalog can serve those files now, so they can be password protected
- Changed file extension from .tpl to .tpl for better DOS support
- Added Netscape FastTrack support
- Added true suffix mapping (extension mapping) support so you can put WebDNA
in .htm
- "xx.tpl$search?" now must be "xx.tpl?command=search&"
- Added printed manual and QuickStart
- Modified [Authenticate] to not interfere with native NT password style
- Added virtual host support with [ThisFile] and [ThisURL]
- Installer does all Registry changes automatically
- Added StarNine serial number checking
- Added [referrer] and [ipaddress] support for NT
- Added [returnraw] context that lets you create your own MIME headers (helps
with true URL-redirects)
5/22/97
- fixed bug that caused Merge-format databases to get mixed with tab-delim
- added "Starting Up" message to debug level so you can tell when
restarts happen
5/19/97
- fixed bug that caused relative path to same database to seem like it was
a second database
- added DebugLevel preference to assist in off-site debugging
- fixed NT [URL], [ConvertChars] bugs that generated incorrect text
5/13/97
- fixed thousands separator bug in [Format] that incorrectly appended comma
to end of number
- changed default prefs for WebServerFolder from : to ../
- fixed crash on [Format DaysToDate] (notice missing underscores_)
- [Include] now decodes %20 and + URL encoded parameters
- Configure WebSTAR AppleScript now looks for generic WebSTAR instead of
v1.3.1
5/12/97
- fixed bug that caused HTML1, HTML2, HTML3 contexts to not work for plugins
(CGI was OK)
- fixed [SendMail] bug that wrote incorrect file format for Emailer
- updated Browser Info.txt file with newer browsers
5/8/97
- Increased stack space for plug-ins
- Get WebSTAR's default page rather than hard code to "index.html"
5/5/97
- Fixed a bug in setting the path to the preferences for the plug-in (first
time)
- Quit command now quits the CGI (flushes databases in plug-in)
- Added a flushdatabases command
- RemoveLineItem context is specified by index in addition to sku (remove
command as well)
- Eliminated hard-coded .tpl for SetSerialNumber and SetPreferencePath forms
- Context/Tag name matching more exact (not just match beginning of string)
- <!HAS_WEBDNA_TAGS> works as well as <!HAS_PCS_TAGS> for comment
required
5/2/97
- New contexts/tags for commerce functions: SetHeader, SetLineItem, AddLineItem,
RemoveLineItem, ClearLineItems, Purchase. All commerce functions can accept
a "cart=" parameter OR a "file=" parameter (including
the OrderFile context) in addition to other required parameters.
- Preference for the sweep frequency of the shopping cart folder sweeper.
- Preference for the maximum number of templates cached at one time.
- Template cache will automatically reload outdated files.
- WriteFile and AppendFile have an optional "secure" parameter
(T or F) that sets the creator type to 'WWWO' or 'ttxt' respectively. By
default (i.e. "secure" parameter not specified), WriteFile sets
the file to 'WWWO' and AppendFile keeps the existing creator.
- ShowCart command and SetLineItem context check the account number if "CC"
is specified as payMethod and the accountNum is not empty.
- Fixed a bug in the Clear command and ClearLineItems context that caused
the total to not get updated properly.
- Fixed "raw" parameter in the Include tag so that it works properly.
- Include tag can include 'WWWO' protected files.
- "sku" is the only field required to use commerce functions.
- Fixed memory leak when removing items from cart.
- All paths can reference aliased folders or drives.
4/16/97
- Sped up search efficiency inside hidden contexts
4/9/97
- Added date math documentation ([ConvertDate] is no longer needed now that
math performs date calculations using human-readable date formats)
- Added [Loop] context documentation
- Fixed case-sensitive bug in replace context
- Fixed some date math dealing with addition of months and days
4/7/97
- New emailer reduces slowdowns on server when bad connection to POP server
- Fixed [AppendFile] bug that caused garbage filenames to be created
- Increased template parsing speed by 50%-150%
- Fixed [ListFiles] bug that used Mac-style paths instead of URL-relative
- Improved GeneralStore sample templates to handle BillTo/ShipTo, country,
email notification and secure remote order viewing
- Improved GeneralStore Administration templates for editing outgoing emails
4/4/97
- Fixed memory leak in PPC CGI
4/2/97
- Fixed 'creeping template' bug in [ShowNext] contexts
- Fixed URL-encoding of [ShowNext] contexts
4/1/97
- Added native date type to [math] context.
- Improved speed of date sorting
- Fixed bug that caused crash when viewing templates with [lineItems] but
no [cart]
- Both plugin and CGI can stop/start EMailer through remote admin now
3/26/97
- Fixed bug in new 40-header shopping cart format bug that caused it to
read carts improperly
- Format context now truncates strings that are longer than the width specifier.
[format 5s]some text[/format] will yield "some ". No longer bombs
if string is longer than 255.
3/24/97
- Added Banner Ads to GeneralStore
- Added Banner Ad Editor to GeneralStore Admin
- Added extra header fields to shopping cart file format (now v1.4). A complete
set of ship-to fields, plus a total of 40 header fields
- Improved speed of date sorting routines
3/21/97
- Fixed bug in [SendMail] context for plugins
- Fixed bug in exception handling for PPC plugin
- Added Security option to preferences that prevents anonymous remote users
from $Append-ing to databases (all $commands can be blocked from anonymous
access now).
3/19/97
- Added "Append=T" optional parameter to $Replace and [Replace]
so that if no matching records are found (for replacement) then a new record
will be added with the specified values.
- Added robust low RAM checking for out of memory during database opens
3/16/97
- EmailFolder preference is now relative to WebSTAR folder, so "WebCatalog/EmailFolder/"
is the correct preference for both the plugin and the CGI
- Changed [EMail] to [SendMail] in sample Classifieds site
3/10/97
- [ConvertDate] and [Format date] tested up to year 2039
- [Format thousands] added for putting commas or periods into numbers
- Formulas.db feature added for unhackable price, taxrates, shipcost, unitshipcost
- VISA/AMEX/MC check so you can deny certain cards
- MaxFound preference now works
- RequiredFields optional parameter to all commands
- [CloseDatabase] path bug fixed
- Multiple paths to same database bug fixed
3/5/97
- Fixed bug that couldn't find root-level templates, such as /xx.tpl
- Local shopping cart folders (local to template that displays results of
$Add, $Clear, $Remove $ShowCart, or $Purchase)
- Local shopping cart sweeper clears out old carts every hour (whenever
$Add command is issued)
- Quote-comma delimited database file parser interprets "" correctly
now
- Numeric formatting works with comma separators for decimal point (non-US
style, such as [format 6,2f][math]39/7[/math][/format] yields 7,46 instead
of 7.46)
3/3/97
- fixed plugin bug that couldn't find shopping carts folder
- Added Serial Number check and form-based method of entering it when the
time limit runs out
- fixed form method=POST bug in plugin
2/28/97
- Plugins should now work with same URL-style paths as CGI
- Plugin now asks for WebCatalog folder if it can't find it
- Serial# is important now -- if incorrect then WebCatalog reverts to expired
demo
2/26/97
- IMPORTANT! Changed all paths to URL-style, so template= db= and [include]
all work as relative paths from the template being displayed. For example,
"[include ../xx.tpl]" looks up one folder (from the template being
displayed) for the file.
- Modified GeneralStore and Classifieds samples to use new URL-style paths
2/23/97
- Added max=N parameter to ShowNext context. When set to 1, only one ShowNext
hyperlink will be displayed at a time, rather than all links up to last
found item.
- [CloseDatabase db=xx.db] is now equivalent to [CloseDatabase xx.db] because
it's too easy to forget the correct syntax
- [Append db=xx.db] is now equivalent to [Append xx.db] because it's too
easy to forget the correct syntax
2/17/97
- Added [ConvertDate] context for performing complex date calculations
- Added [Format date %m/%d/%y] date formatting ability. The number inside
the context must be the number of seconds since midnight, Jan 1, 1900
2/14/97
- Added [SecureClient]...[/SecureClient] context for backward-compatibility
with WebCatalog 1.6.2
- Added [IsSecureClient] tag to indicate "T" if the remote browser
supports SSL, and "F" if not.
- Added runtime [date] and [time] formats, following extensive ANSI formatting
standards, such as [DATE %m/%d/%y] = 02/19/97 and [DATE %m/%d/%Y] = 02/19/1997
- Added global preference for default date and time formats
- Changed default date format to include century for year (helps prevent
millenium problems)
2/11/97
- Fixed shopping cart date bug.
- Added numeric, date, and time comparisons to search command: if you want
a database field to be treated as a number, then add "FIELDNAMEtype=num"
to the search criteria, as in
$search?template=xx.tpl&PRICEtype=num>PRICEdata=52.95
Similarly, date comparisons look like so:
$search?template=xx.tpl&EXPIREStype=date>EXPIRESdata=6/19/1997
2/8/97
- Fixed several calculation bugs in shopping cart: taxable, shipTotal, etc.
2/4/97
- Added Classified Advertisement sample site
- Fixed parameterized [include] bug
1/31/97
- Added [interpret] context that causes the contained text to be interpreted
as WebCatalog [xxx] tags.
1/29/97
- Quit command actually quits CGI, after writing databases.
- Added more online documentation
1/24/97
- Fixed $purchase bug that caused canEmail, taxable, unitShipCost values
to be lost.
1/22/97
- Added link to online reference in Welcome page
- Added [HTML1], [HTML2], and [HTML3] tags.
- Improved 68K plugin compatibility
- Improved memory usage when running under WebStar 2.0
- Fixed AppleScript bug for plugins under WebStar 2.0
1/22/97
- Added [ISDEMO] tag to show if app is in demo mode
1/21/97
- Fixed 68K CGI [math] context so that doubles calculate correctly
- Added shopping cart folder sweeper that clears out old cart files hourly
1/19/97
- Enhanced database parser so that wrong # of tabs doesn't kill it
- Added frames-based online reference
1/16/97
- Fixed 68K plugin bug that didn't display [THISURL] properly
- Added [IPADDRESS] expansion to plugin versions
1/15/97
- Fixed Append/Replace bug that allowed carriage returns to be written to
database (thus messing up the database format)
- Added [ThisURL] tag to display the path to the current URL (helps with
BeyondRealms/SiteEdit links being created automatically)
- Normalized [ipaddress] so that comparisons work properly: all 4 numbers
are 0-preceded, as in 207.067.003.014
- [showif] and [hideif] now do numeric comparisons if both sides of the
equation are numeric, otherwise text comparison is used. [showif b>a]
is text-based (alphabetical) comparison, [showif 9>19] is numeric (would
be wrong if alphabetical).
- Added 68K version of plugin
- Unknown [xxx] tags now display unchanged, rather than "Error: uknown
tag"
1/10/97
- Added "begins with" comparison to showif/hideif contexts: [showif
Grant~Gr] reads "show if the text 'Grant' begins with the text 'Gr'".
Similar to ^ for "contains".
1/4/97
- Fixed DELETE bug that did not move last record down
- Added [protect group1,group2] context for BeyondRealms compatibility
- Added "InterpretAll" preference that turns off [xxx] interpretation
unless the <!WebCatalog> tag is present in a file
- Template Security: files can now be one level outside of WebCatalog2's
folder without needing <!WebCatalog> tag. This allows us to keep the
install clean by having all WebCatalog files neatly tucked inside a folder.
1/2/97
- ADD to cart command now accepts price, quantity, textA-E as additional
parameters (and requires password for price changes)
- Added [email] context for sending emails. Not tested yet. Syntax is [email
to=person.com&from=you.com&subject=hello]Body of email message[/email]
12/28/96
- First draft of documentation
- Added [append db=xxx.db]field1=xxx&field2=yyy[/append] context for
adding new records to a database
- Enhanced template caching mechanism
- Fixed bug that prevented [include] from working when template caching
was turned off
12/17/96
- Added [format]..[/format] context to help format numbers and text, to
replace old-style [price 6.2]
- Added priceField optional parameter to "ADD" command so you
can specify a different field that contains the price information
- Added ErrorMessages.db database that WebCatalog uses to display all errors
(to facilitate language translations)
12/11/96
- Added [input]..[/input] context to replace old-style [INPUTfieldname]
- Added [ raw ]..[ /raw ] context that ignores all WebCatalog commands inside
it, and displays the text literally with no interpretation
- Enhanced [xxx] tag parser to ignore [ xxx ] (notice spaces)
12/10/96
- Added significant error checking for proper parameters, including checking
for existing order/problem/completed files.
- Changed preference file to database format for remote administration
- Significant leak fixes in equation parser and LineItems context
- Fixed [lineItems] bug that tries to display stuff even when no items are
in the cart.
- Changed [URLfieldname] to new-style [url][fieldname][/url] to enhance
generality and prevent name conflicts
- Fixed AppleScript execution bug that could cause bombs
11/30/96
- Added [boldwords WordList] context
- Fixed some method=POST problems
- Added extended error checking for missing templates and parameters
- Added PURCHASE command
11/27/96
- Fixed bug in [foundItems] that always showed all items regardless of max=N
- Added error check to SEARCH command for template or db not found
11/26/96
- Added [ShowNext] context (only valid inside a [search] context or command),
like so:
- [ShowNext]
- <a href="/WebCatalog.acgi$search?[searchString]">Show
Items [start]-[end]</a>
- [/ShowNext]
- WebCatalog2.acgi$search command now has an extra parameter max=N
that defines how many records should be displayed at once. Perform a search
with template=Test8.tpl (provided in the Test Templates folder) to
see the various uses of [ShowNext].
- Added method=POST compatibility
- Added WebStar plugin version (PPC) of WebCatalog
- Added FileMaker Pro databases that document some features.
11/25/96
- Added [ConvertChars] context that translates curly-quotes to straight
quotes, etc.
- [ConvertChars][text1][/ConvertChars]
11/23/96
11/22/96
- Rebuilt so that WebCatalog2 contains some shared libraries that the rest
of the world doesn't have.
11/21/96
Converting existing databases and commands to WebCatalog2:
WebCatalog2 can open any number of databases (actually 100, but that's a
lot), each of which can have its own field structure. You are no longer limited
to a file called Catalog.txt with 27 fields.
To convert an existing Catalog.txt file, you must put the 27 field names (separated
by tabs) on the very first line of the file (basically record #0 is the names
of the fields). Here is an example of a database with a different field schema:
Contents of AddressList.db file (the .db is a convention only-not necessary):
--------------------------------
name address city state zip
Grant 667 Corte Raquel San Marcos CA 92069
PCS 11770 Bernardo Plaza Court San Diego CA 92128
--------------------------------
Notice that the fields are separate by tabs, as usual, even though it may
be hard to tell by just looking at the lines above using SimpleText.
Because WebCatalog2 deals with more than one database, you must now tell it
which database it is supposed to search when sending it commands, like so:
WebCatalog2.acgi$search?template=results.html&db=AddressList.db&eqnamedata=Grant
Notice that you use the same syntax for searching as always: eqnamedata=Grant
or wocitydata=Diego, but the fieldnames are now determined by you,
not us.
[CatalogItems] has been changed to [FoundItems] to reflect the fact that we
are dealing with general databases now, not just catalogs:
[FoundItems]
[name], [address], [city], [state], [zip]<br>
[/FoundItems]
Handling "Show Next xxx..xxx":
WebCatalog2 gives you much greater control over the appearance of the "Show
Next..." hyperlinks. The "N" in [CatalogItems N] has been moved
to the search command, and now you must explicitly decide where you want the
"Show Next" links to appear (WebCatalog 1.x would put them in for
you). If you execute a search command as follows
WebCatalog.acgi$search?db=database.db&template=test.tpl&max=10
...then [FoundItems] will only display 10 items even if more are found.
Here is what the "test.tpl" template should look like:
--------------------------
[FoundItems]
[someField]<br>
[/FoundItems]
[ShowNext]
<a href="WebCatalog.acgi$search?[SearchString]">Show Items [start]-[end]</a><br>
[/ShowNext]
--------------------------
URL and INPUT modifiers:
[URLfieldname] has gone away! Replace it with [url][fieldname][/url]
[INPUTfieldname] has gone away! Replace it with [input][fieldname][/input]
Converting existing sites from WebCatalog 1.6.1
to 2.0
Summary:
- Put field names at the top of your Catalog.txt file
- Add "db=Catalog.txt" to all search, showcart, purchase, append,
delete, replace, add, and remove commands (see #9 below)
- Change [catalogItems 20] to [foundItems] (and add max=20 to search commands)
- Add [shownext] tags
- Change [URLfieldname] to [URL][fieldname][/URL]
- Change [INPUTfieldname] to [INPUT][fieldname][/INPUT]
- Change [float1 6.2] to [FORMAT 6.2f][float1][/FORMAT]
- Change all <!WebCatalog> tags to <!HAS_PCS_TAGS>
- Change all template and db references to URL-style relative paths.
- If you need search logging, insert WebDNA commands into your search results
templates
- If you use [randomad], use a custom database to implement your own random
ad scheme. Examples can be found at our WebDNA
Examples page
Detail:
1) To convert an existing Catalog.txt file, you must put the 27 field
names (separated by tabs) on the very first line of the file (basically record
#0 is the names of the fields). Copy the following line and paste it into
the first line of your Catalog.txt file:
SKU TITLE DESCRIPTION PRICE TAXABLE CANEMAIL SHIPCOST FLOAT1 FLOAT2 FLOAT3
FLOAT4 FLOAT5 INT1 INT2 INT3 INT4 INT5 TEXT1 TEXT2 TEXT3 TEXT4 TEXT5 TEXT6
TEXT7 TEXT8 TEXT9 TEXT10
2) Because WebCatalog3 deals with more than one database, you must
now tell it which database it is supposed to use when sending it search /
showcart / purchase / append / delete / replace / add / remove commands, like
so:
Results.tpl?command=search&db=Catalog.txt&max=20&eqdescriptiondata=Grant
3) [CatalogItems] has been changed to [FoundItems] to reflect the fact
that we are dealing with general databases now, not just catalogs:
[FoundItems]
[sku], [title], [description]<br>
[/FoundItems]
The old way of specifying a maximum number of returned records [catalogItems
20] has changed so that you must put "max=20" into the search command
itself, as in:
Results.tpl?command=search&db=Catalog.txt&max=20&eqdescriptiondata=Grant
4) WebCatalog3 gives you much greater control over the appearance of
the "Show Next..." hyperlinks. The "N" in [CatalogItems
N] has been moved to the search command, and now you must explicitly decide
where you want the "Show Next" links to appear (WebCatalog 1.x would
put them in for you). If you execute a search command as follows
WebCatalog.acgi$search?db=database.db&template=test.tpl&max=10
...then [FoundItems] will only display 10 items even if more are found.
Here is what the "test.tpl" template should look like:
--------------------------
[FoundItems]
[someField]<br>
[/FoundItems]
[ShowNext]
<a href="WebCatalog.acgi$search?[SearchString]">Show Items [start]-[end]</a><br>
[/ShowNext]
--------------------------
5) [URLfieldname] has gone away! Replace it with [url][fieldname][/url],
as in [url][sku][/url]. This more-general approach gives you the flexibility
of 'URL-izing' anything, so [url]hello there[/url] becomes "hello%20there"
6) [INPUTfieldname] has gone away! Replace it with [input][fieldname][/input],
as in [input][description][/input]
7) The old-style numeric format has changed, so [grandTotal 6.2] becomes
[format 6.2f][grandTotal][/format]. This more-general approach gives you the
flexibility of formatting anything, so [format 6.2f]12[/format] becomes "
12.00"
8) If you are using <!WebCatalog> to mark files that are allowed
to be viewed outside the WebStar folder hierarchy, you need to change them
to the more general <!--HAS_WEBDNA_TAGS-->. If you do not, then WebCatalog
will tell you that you that the file is not allowed to be viewed.
9) Databases and templates are now specified URL-relative to the template
being displayed. In WebCatalog 1.6.1, you specified templates using Macintosh
paths relative to WebCatalog.acgi (template=::hello.html looked "up"
one folder from WebCatalog.acgi to find the file). Now you specify templates
the same way you would in standard HTML, relative to the template you are
looking at (template=../hello.html looks "up" one folder from the
template being displayed).
10) Because WebCatalog can open arbitrary databases now, it doesn't
know what searches are important for you to store in its log file. Using WebDNA
commands it is very easy to add your own custom log information every time
someone searches a database. Just insert something like the following into
your search results template:
[AppendFile file=WebCatalog.log][date] [time] [command] [SearchField]
[/AppendFile]
10) Because WebCatalog can open arbitrary databases now, there is
no longer a need for a custom random-ad database. WebDNA is much more flexible
and a better solution for implementing banner ads. You can find some good
examples of pre-built WebDNA Samples to do this at our samples site