ExSite v3.2 goes live at ExsiteWebware.com.
Integrated Calendar module with the SimpleRegistration module. You can now tie any registration form to any event, and the Calendar module will automatically invoke the SimpleRegistration module to take the registration when the user indicates they want to register online.
Installed Feedback module, for simple communication with site administrators (or others) via a web form.
Upgraded Zine module, with better support for inter-page services, and improved security.
Fixed precompiled templates, which were not working like they were supposed to. Updated the form validation methods.
Editor link tool now allows you to create links to library content, eg. documents.
Added exception pages that can be used for throwing site errors or otherwise handling exceptions. We use these to do authentication challenges on member-only pages, for instance.
Installed Classified Advertising module, which solicits for and displays classified ads under a number of categories. The module is web-service friendly, and can display ads for the local site, or "global" ads across all sites. Ads are automatically expired, and subject to approval by the administrator.
Updated Member manager. New version tracks unlimited member attributes, without requiring any database modifications. It also has member status management tools.
Installed Photo Gallery tool, to display a library in a thumbnail grid. Clicking on a thumbnail brings up a pop-up with the full-size image.
Fixed Rollback function in the Website Manager.
Fixed bug in News module that prevented it from running as an inter-page service.
Fixed bug in publish.cgi that was throwing IE into a refresh loop.
Installed Time library with various time conversion utitlities.
Installed new SiteBuilder module, for simplified website creation by casual users. This is primarily for web services, where members of the public are creating instant websites to deliver some service to their particular market. Some of the functionality was taken from MySite, whose site building functions will be superceded by this.
Updated Wizard tools to allow wizards to self-terminate (ie. no do() method on last step of wizard).
Installed new BannerAd module, for managing pay-per-click, pay-per-impression, fixed-duration, or regular text and graphic banners.
Installed new general-purpose E-commerce module, to serve as a clearing house for all payment gateway transactions. The E-commerce module is normally invoked by another module that requires payment for some service; the E-commerce module handles the communications with the payment gateway, and confirmation of the transaction. The calling module simply waits for the confirmation status to appear in %share, to know what the payment status is.
Installed Publish module, to consolidate various publishing links into a single control panel.
Updated SimpleMenu module to automatically configure the parameter input when inserting menus through the editor's dynamic content tool. Also added a new "submenu" option to the menu types.
Installed WebDir module, to manage hierarchical web indexes. Includes tools for the public to suggest links, and flag links as broken or inappropriate. New links are subject to administrator approval.
Updated session management to make it more developer-friendly. Sessions are now tied hashes, linking to a user key in a DBM file which stores the session data persistently between requests. Loading and saving of session data is handled automatically by ExSite; all the programmer has to do is use the %session hash like a normal perl variable. If session handling is not enabled, the %session hash gracefully degrades to work like %share (ie. stores data for the request, but not persistently).
Installed PrintFriendly module, which can convert any page into a printer-friendly format.
Installed Security module, which simplifies many system security operations, such as managing administrator keys, site services, members, and MySite access type.
Installed new authentication and security code, allowing for MD5 password storage, reversible-encryption password storage, and session-based authentication handling.
Improved AJAX support in dynamic content substitutions. Modules can now use direct substitution (no AJAX), indirect substitution (use AJAX to insert the initial content, but regular page refreshes thereafter), and double-indirect substitution (use AJAX for the initial substitution, and also for subsequent relinks back into the same module).
Installed SlideShow module, which supercedes the old PhotoAlbum module. The new SlideShow has various improvements, including AJAX slideshows, and graphical prev/next/start buttons.
Improved thumbnail handling in the CMS libraries.
Simplified the MySite control panel, by hiding the lesser-used page management functions. They can be restored by clicking on the [+] options link in the MySite control panel.
Added a table editor to the HTML editor. Allows you to modify attributes for tables, rows, columns, and cells, as well as insert and delete rows, columns, and cells.
Revamped the style of the ExSite control panels and administrator interface. Standardized report generation with ExSite::ReportBuilder class (which can be thought of as the view component to ExSite::Report's model component). New icons and layout for the CMS ("Website Manager") module.
Added attribute handling to kernel. Attributes are arbitrary key/value pairs that can be attached to any record in the database. This effectively allows you to extend the schema of the database, without modifying the database structure itself. Attributes can be given datatypes so that they are managed using all the datatype handling logic that regular database fields benefit from.
Changed logout logic to only redirect to a homepage if the homepage has been published.