WebDNA Change History

Appendix C: Technical Change History

Current WebDNA Version: 6.2, code name: CICADA

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.


CICADA Overview:

CICADA is the beginning of a revival for WebDNA. This release comes less than 1 year after the acquisition of the WebDNA intellectual property by WSC. It is the first WebDNA version to offer a 64bit optional install (linux). This release is FREE to all current 6.x license owners as a showing of support to the loyal customer base. Along with Company name, licensing and logo changes, below is a comprehensive list of recent changes.

    CICADA Engine Bug Fixes:

    • [Search] - Incorrect search results when using a negative number for search criteria against type=num field data.
    • [Object] - Fixed truncation of long parameter string values.
    • [listfields] - Fixed problem with embedded [switch]/[default] context.
    • WebDNA Sandboxes - Fixed possible race condition with sandbox manager code. Should improve sandbox stability.
    • [return] - Fix for infinite loop when [return] used within a function definition defined within a scope context.
    • [SQLResult] - Fixed problems with displaying floating point and large integer data types.
    • [SQLResult] - Fixed - decimal places lost on output, i.e. 100.00 displayed as 1.
    • MIME Headers - Removed the hard-coded cache control MIME headers
    • OSX Build - Fix for large post not working over SSL.
    • Windows Build - ISAPI filter no longer registers the "read raw data" mode. Filter is also set to 'normal' priority. This should improve compatibility with newer version of IIS.
  • CICADA SiteBuilder Bug Fixes:

    • There has been many small fixes to the StoreBuilder templates, too numerous to break down in line items.
  • Upgraded Builds:

    • i386 and x86_64 (intel/AMD) Linux Support for:
      Ubuntu 7.x and 8.x, Fedora 10x, OpenSUSE 11.1x, CentOS 5.2x and RHEL 5x. (Note: installer script *could* work for many other distros, although only the above have been tested and supported using WSC installers script)
    • Macintosh Intel and Mac OS 10.5x
    • Windows Server 2003 and 2008
  • New Features:

    • Added Secure Order File features (see Admin pages) - All Platforms
    • Cookie Based SiteBuilder Templates - All Platforms


    WebDNA Software Corporation has purchased the intellectual property that is "WebDNA"!

  • "CICADA" (6.1 official release is in process) Check back soon for great new features such as optional encryption on sensitive orderfile variables, SQL bug fixes, "MacTel" compatibility, and much more!

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:
    • 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.
    • It is now possible to fetch a binary file, via [writefile] wrapped around [TCPSend], and using the 'skipheader' option.
      For Example: 
      [tcpconnect host=[host]]
      [writefile file=test.jpg][tcpsend skipheader=T]GET /[path_to_jpg] HTTP/1.0[unurl]%0D%0A[/unurl][!]
      [/!]Host: [host][unurl]%0D%0A%0D%0A[/unurl][!]

2/15/2004 6.0

  • General release of WebDNA 6.0 for all supported platforms
  • Changes / Additions

  • All Platforms
    • Native SQL Support - Currently supports MySQL database servers.
      New Contexts:

      New Global Tags:

      Re-tooled Contexts:

    • New [ListChars] context
    • New [FindString] global tag
    • Improved [Capitalize] code. Now handles words that contain extended ASCII characters.
    • CMS Enhancements:
      - Added checkboxes to the asset lists so that one operation could be performed on multiple files at the same time.
      - New 'Activity' view that displays all files that are checked out or pending approval.
      - New option in 'Migration' form to filter out 'db' files when migrating from staging to production.
    • New 'SiteBuilder' templates (formery 'StoreBuilder') :
      - Greatly improved Website Administration portal that provides:
      • Simple page navigation customization
      • Simply color scheme and graphics layout
      • Save and restore layout/color 'themes'
      • Selectable navigation models, i.e., horizontal main navigation bar versus left hand navigation pane
      • Built in Intranet templates
      • Improved group security model for limiting access to content categories and navigation links
      • Easily add your own custom templates and HTML pages
      • Generate websites from pre-configured WebDNA ISP Host 'packages'
    • New WebDNA 'ISP Hosts' :
      - When building a SiteBuilder folder as a WebDNA Sandbox, there is an option to set the new website up as a WebDNA 'ISP Host'. There are four configurable 'ISP Plan' options. The ISP Hosts and ISP Plans are configurable via new WebDNA admin templates.
    • Added SSL connection option to SharedPOP demo application.
    • ....
    • It is now possible to fetch a binary file, via [writefile] wrapped around [TCPSend], and using the 'skipheader' option.
      For Example:
      [tcpconnect host=[host]]
      [writefile file=test.jpg][tcpsend skipheader=T]GET /[path_to_jpg] HTTP/1.0[unurl]%0D%0A[/unurl][!]
      [/!]Host: [host][unurl]%0D%0A%0D%0A[/unurl][!]
  • 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. <!--HAS_WEBDNA_TAGS--> <HTML> <HEAD></HEAD> <BODY> [!]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.<p> [listfiles path=.] [showif [isfile]=T] <a href=[thisurl]?getfile=[url][filename][/url]>[filename]</a><br> [/showif] [/listfiles] </BODY> </HTML>
    • 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:
    • 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
    • Intranet Edition Templates - New Calendar Application
    • The database and template cache sizes can now be configured via the new 'CacheSizePrefs' file. The default value is 100 for both the database and template cache. The engine must be restarted after making any changes.
    • The maximum number of cart 'line items' has been increased from 100 to 500
    • The [Convertwords] context is now much faster.
    • Database error messages have been improved to report more detail on why a database failed to load (or be accessed). These include:
      Not Enough memory to load database.
      Failed to acquire lock on database
      Database file not found or opened
      Bad database format (with 'Merge' style databases)
    • [Search] context - New FBRK (field break) option for WW, and SW field comparisons. Specifies the delimiters used when doing a word compare in the field data itself. Thus: woDESCRIPTIONdatarq=2&DESCRIPTIONword=WW&DESCRIPTIONfbrk=[url],[/url] in the search string would not find a result if the field data is "400.2", whereas it would if the FBRK option was not specified.
    • New 'Safe-Write' preference - Enabled by default. When enabled, the WebDNA engine creates a temporary file when writing the contents of a database to disk. The temporary file contents are then moved to the original database file after the entire database is completely flushed to disk. This helps to eliminate corruption of the original database file if there is an interruption during the database write process.
    • Improved email logging
  • 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:
  • 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
    • Product name changed from WebCatalog to WebDNA. All documentation has been updated to reflect this change, except when referencing installation path names, urls, and system files that still contain 'WebCatalog'. The 'WebCatalog' binary, 'WebCatalogCtl' script, and 'WebCatalog Prefs' filenames will remain unchanged.
    • New 'Developer' mode - Fully functioning engine but with a limit of three concurrent connections. This limit does not include trigger requests or spawned threads. At any given instance, if the connection limit is reached, additional requests will receive a status 503 (Service Unavailable) response, and a "WebDNA Busy" message. The "WebDNA Busy" message can be replaced by a user defined message, simply by creating a new file in the WebCatalogEngine folder called 'busy_message.txt', which should contain the desired HTML (WebDNA tags will not be processed).
    • Removed 'Standard' multi-thread mode (really not multi-threaded at all). The engine will now always run multi-threaded.
    • New admin setting to set the maximum number of concurrent connections that the WebDNA engine will handle at any given instance. If the limit is reached, additional connections will be queued. Setting the limit to zero will turn the limit code off. A large value does not necessarily mean better performance. Setting the thread limit to high may result in poor performance, as it increases the frequency of 'thread switches'. Mac OS 9 users are encouraged to set this to a value no higher than 10. Faster CPUs will handle a larger value.
    • Removed 64 character limit for [decrypt method=BASE64].
    • New admin preference to direct the output from [math date] code to use the 'Date Display Format' preference.
    • 'EmailSeconds' preference can now be changed on the fly.
    • WebDNA HTML error responses, i.e.'WebDNA not running', now return status code 503
    • WebDNA will now process query string data with POST data.
      For example:
      <form method=post action="sample.tpl?a=1">
      <input type=hidden name=b value=2>
      WebDNA will now accept the query string portion 'a=1' with the POSTED data 'b=2'. The Mac OS9 and OSX/WebSTAR versions of WebDNA have always behaved this way. This has now been carried over to the Windows and UNIX builds.
  • 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:
    • Fixed a memory leak with the database cache code. High volume site would be most affected by the memory leak, as it only occured when more than one thread required access to the same database at the same time.
    • Fixed crash/exception when performing a search with certain types of numerical comparisions against numerical strings containing invalid characters, i.e. '1.2.2' (contains a second decimal).
    • [Delete] tag much faster. Deleting a large number of records from a large database will now take only a few seconds, where it used to take several minutes or even hours to complete.
    • [encrypt method=BASE64&EMAILFORMAT=T] now compatible with more email clients.
    • Fixed a bug where search parameters may be ignored or mismatched if the database contained field names where a 'tailing' sub string of one field name matched the complete name of another field, i.e. 'ID' and 'CATEGORY_ID'. For example:
      For this database (test.db)...
       1	FRED	1
       2	MILLIE	1
       This search would produce incorrect results...
       [search db=test.db&eqCATEGORY_IDdatarq=1&eqIDdatarq=1]
       Returns both 'FRED' and 'MILLIE'.  Only one record (FRED) should have been returned.
  • 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


  • 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

    Changes / Additions

  • New 'File=' and 'EMAILFORMAT' parameters for the [ENCRYPT] context. These are only used for the BASE64 method. The 'File=' parameter specifies a file that is to be encoded using Base64. The 'EMAILFORMAT' parameter forces the resulting encrypted data to be 'broken' into lines that are 76 characters in length. This is the maximum line length allowed for BASE64 Content-Transfer-Encoding. When the 'File=' parameter is used, text between the [ENCRYPT] tags is ignored.

    These new parameters make it easy to send binary file e-mail attachments when using the [sendmail] context. Here is an example:

    [sendmail to=whoever@whereever.com&from=whoever@whereever.com&subject=testing zip attachment&Content-Type=multipart/mixed; boundary="1234abcd"&MIME-version=1.0][!]
    Content-Type: text/plain
    This is the first part : just plain text.
    The next part contains a zip file.
    Content-Type: application/x-zip-compressed; name="test.zip"
    Content-Transfer-Encoding: base64
    Content-Disposition: inline; filename="test.zip"
    [encrypt method=base64&file=test.zip&EMAILFORMAT=T][/encrypt]
  • New payment processor option for WebMerchant (all platforms): Verisign - Payflow Pro.
    The StoreBuilder templates have also been updated to include this new payment processor option

  • New 'Century Break' preference. This setting will override how WebCatalog determines the century, when given a two digit year, during 'date' math calculations. All previous versions of WebCatalog will interpret '00' as '2000' and '01'-'99' as '1901'-'1999'. This new preference will allow you to override that behavior. For example, if the preference is set to '30', then '00'-'30' will be interpreted as '2000'-'2030' and '31'-'99' as '1931'-'1999'. By default, this preference is set to '00' so that the behavior of existing templates will not change. Note: It is suggested to always use a four digit year for date calculations. This new preference is only provided as an aid when date calculations with two digit years is unavoidable.

  • New 'IGNORECASE' parameter for [UNURL] context. In previous versions of WebCatalog, the [UNURL] context will not convert hex codes that contain lowercase letters. So %3A will be converted to a colon, but %3a will not. Setting 'IGNORECASE' to 'T' will force [UNURL] to also convert hex codes that contain lowercase letters. So, [UnUrl IGNORECASE=T]%3a[/UnUrl] will convert %3a to a colon. If the 'IGNORECASE' parameter is not used, [UnUrl] will behave as it always has.

  • WebCatalog will now check for 'write' permission when opening a database. If the database is 'read only', then WebCatalog will generate an error message if an 'Append', 'Delete' or 'Replace' is attempted on that database. This error message will appear in the return text as well as in the ErrorLog.txt file.

  • Windows: $Webcat ISAPI dll now compatible with O'Reilly WebSite Server. Note: The installer will still setup the CGI component only,.this will be changed by the final 402 release.
  • Bug Fixes

  • All Platforms:
    • [Listfiles] context will now work with urlized parameters.
    • Fixed memory leak in [SQL] context.
    • [imagewidth] and [imageheight] will now work on 'progressive' jpeg images.
    • WebCatalog less susceptible to crashing when ending context tags are missing, i.e. [ /RAW ] not found.
    • StoreBuilder: Fixed 'Secure' and 'Public' URL preferences not being used.
    • StoreBuilder: Fixed item quantity not being carried over from a 'Buy Now' action.
    • StoreBuilder: Fixed customer login account - CC number not persistent.
    • StoreBuilder: Fixed lineitem style in email templates.
    • WebMerchant: Fixed 'Address Verification' preference not being used for CyberSource.
  • Windows:
    • Fixed: Exception thrown when performing a 'FlushDatabases' action.
    • Fixed: Exception thrown when an SQL server returns an error.

11/15/2000 4.0.2b7


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


Version 4.0 Changes

Changes from Earlier Versions

    Converting Sites from WebCatalog 1.6.1 to WebCatalog 2.0/3.0


    • Final 3.0.6 unix releases, MacOSX, Linux Intel, Solaris SPARC


    • 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


    • 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


    • MacOS:
      • Modified MIME headers that come back from plugin to include Date, Last-Modified, Expires, HTTP 1.1, and proper Server: fields.


    • 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.


    • 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.


    • 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


    • 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


      • Final 3.0.4 release, both Windows and MacOS


    • $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.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


    • 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


    • 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


    • 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 WebCatalog.
    • Mac:
      • Fixed bug that trashed a database if a remote file-sharing program currently had the file open and write-locked


    • 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


    • 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.


    • 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


    • 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).


    • 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


    • 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


    • 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


    • 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


    • 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


    • 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]


    • 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)


    • 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


    • 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


    • 2.1.3 Release


    • 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


    • 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


    • Added AutoCommit preference to write all changed databases to disk after every page hit
    • Added [CommitDatabase dbpath] to write databases without closing them


    • 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


    • 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


    • Added optional custom conversion table to [ConvertChars]
    • Mac: Changed template extension to .tpl in order to simplify cross-platform development


    • 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


    • 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


    • [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.


    • 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


    • 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


    • 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


    • Added [Capitalize] Context
    • Added error message to [Purchase] that displays credit card check digit error
    • Added [ValidCard] tag to pre-verify credit card numbers



    • 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


    • 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.


    • Win: Added [ListMIMEHeaders] context
    • Win: Added Cookie support for retrieving cookie values set with [ReturnRaw]


    • Mac: Added [ListMIMEHeaders] support
    • Mac: Added Cookie support for retrieving cookie values set with [ReturnRaw]
    • Mac: Began adding PIXO support to plugin


    • 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


    • Win: Added [CountChars] and [GetChars] contexts
    • Win: changed [ListFiles] context so it doesn't show ".." foldernames
    • Win: Added Windows 95 support


    • 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


    • 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


    • 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


    • 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


    • 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


    • 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.


    • 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


    • Mac: Fixed Emailer bug that never got past empty or bad email files
    • Added more preferences to AdminPut and AdminGet commands


    • 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


    • Fixed MIME header problem with Mac that caused Status:200 to appear in some browsers


    • 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)


    • 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


    • 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)


    • 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


    • 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


    • 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


    • 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


    • Increased stack space for plug-ins
    • Get WebSTAR's default page rather than hard code to "index.html"


    • 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


    • 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.


    • Sped up search efficiency inside hidden contexts


    • 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


    • 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


    • Fixed memory leak in PPC CGI


    • Fixed 'creeping template' bug in [ShowNext] contexts
    • Fixed URL-encoding of [ShowNext] contexts


    • 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


    • 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.


    • 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


    • 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).


    • 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


    • 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


    • [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


    • 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)


    • 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


    • 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


    • 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


    • 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


    • 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


    • 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)


    • 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

    Similarly, date comparisons look like so:



    • Fixed several calculation bugs in shopping cart: taxable, shipTotal, etc.


    • Added Classified Advertisement sample site
    • Fixed parameterized [include] bug


    • Added [interpret] context that causes the contained text to be interpreted as WebCatalog [xxx] tags.


    • Quit command actually quits CGI, after writing databases.
    • Added more online documentation


    • Fixed $purchase bug that caused canEmail, taxable, unitShipCost values to be lost.


    • 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


    • Added [ISDEMO] tag to show if app is in demo mode


    • Fixed 68K CGI [math] context so that doubles calculate correctly
    • Added shopping cart folder sweeper that clears out old cart files hourly


    • Enhanced database parser so that wrong # of tabs doesn't kill it
    • Added frames-based online reference


    • Fixed 68K plugin bug that didn't display [THISURL] properly
    • Added [IPADDRESS] expansion to plugin versions


    • 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
    • [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"


    • 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".


    • 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.


    • 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]


    • 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


    • 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)


    • 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)


    • 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


    • Added [boldwords WordList] context
    • Fixed some method=POST problems
    • Added extended error checking for missing templates and parameters
    • Added PURCHASE command


    • 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


    • 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.


    • Added [ConvertChars] context that translates curly-quotes to straight quotes, etc.
    • [ConvertChars][text1][/ConvertChars]


    • Fat Binary


    • Rebuilt so that WebCatalog2 contains some shared libraries that the rest of the world doesn't have.

    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:


    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:

    [name], [address], [city], [state], [zip]<br>

    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


    ...then [FoundItems] will only display 10 items even if more are found.

    Here is what the "test.tpl" template should look like:

    <a href="WebCatalog.acgi$search?[SearchString]">Show Items [start]-[end]</a><br>

    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


    1. Put field names at the top of your Catalog.txt file
    2. Add "db=Catalog.txt" to all search, showcart, purchase, append, delete, replace, add, and remove commands (see #9 below)
    3. Change [catalogItems 20] to [foundItems] (and add max=20 to search commands)
    4. Add [shownext] tags
    5. Change [URLfieldname] to [URL][fieldname][/URL]
    6. Change [INPUTfieldname] to [INPUT][fieldname][/INPUT]
    7. Change [float1 6.2] to [FORMAT 6.2f][float1][/FORMAT]
    8. Change all <!WebCatalog> tags to <!HAS_PCS_TAGS>
    9. Change all template and db references to URL-style relative paths.
    10. If you need search logging, insert WebDNA commands into your search results templates
    11. If you use [randomad], use a custom database to implement your own random ad scheme. Examples can be found at our WebDNA Examples page

    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:

    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:


    3) [CatalogItems] has been changed to [FoundItems] to reflect the fact that we are dealing with general databases now, not just catalogs:

    [sku], [title], [description]<br>

    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:


    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


    ...then [FoundItems] will only display 10 items even if more are found.

    Here is what the "test.tpl" template should look like:

    <a href="WebCatalog.acgi$search?[SearchString]">Show Items [start]-[end]</a><br>

    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]

    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 ftp://ftp.isd.smithmicro.com

User Contributed Notes
WebDNA Change History  

Copyright © 2008 WebDNA Software Corporation, Inc.