Changes for the Labyrinth Core

5.06	19/05/2011
	- abstracted input CGI to Labyrinth::Query::CGI.
	- abstracted output CGI to Labyrinth::Writer::Render::CGI.
	- abstracted template parser to Labyrinth::Writer::Parser::TT.
	- all above in order to allow PSGI packages and other template parsers
	  to be used.
	- documentation updates.
	- reworked CookieLib to use new Labyrinth::Query::CGI package.

5.05	11/04/2011
	- fixes and code cleaning from CPAN Testers Blog site.

5.04	13/03/2011
	- Abstracted GD and ImageMagick drivers into their own distributions.

5.03	05/01/2011
	- removed unused reference to Text::Format.

5.02	03/01/2011
	- added better handling of MIME Types from CPAN Testers sites.

5.01	01/01/2011
	- moved MasterCheck from plugins to core

5.00	01/01/2011
	- first official open source release.
        - sessions can now be deleted by isolated script not part of logins.

4.19	13/09/2010
	- fixed RSS body content.
	- update Phrasebook.pm to use Data::Phrasebook.

4.18	20/08/2010
	- merged Request.pm differences for DBI and .ini file configuration.
	- plugins split away from core.
	- documentation patches.

4.17	11/03/2010
	- rewrote requests to use database rather than ini files.
	- rewrote plugin framework to load on demand.
	- removed file lookups.
	- added parameter validation to RSS feeds.
	- alternate data sources for RSS body text .
	- RSS permanent links split for articles and site links.
	- auto commit now an option to DBUtils.
	- comments can be ignored or removed in MLUtils.
	- '#' is valid in a URL.
	- 'noscript' added to the list of valid tags.
	- defaults applied to 'who' when saving IPs.
	- added UserID lookup in Users.

4.16	06/03/2009
	- fixed DTUtils.pm undefined error.
	- simplified Metadata searches and combined photo/page searches into
	  a single table using nested selects
	- updated MLUtils.pm with new XHTML compatibility fixes.
	- removed unused Exporter references from several modules.
	- removed excessive use of 'use vars' where it wasn't needed.
	- reduced unncessary function calls
	- reduced unncessary database calls
	- added protection for bad image calls (IMDriver.pm/GDDriver.pm)
	- moved Plugins management to Plugins.pm
	- remove whitespace before </p> in MLUtils.pm
	- added demoroniser code to MLUtils.pm

4.15	31/05/2008
	- upgraded to latest TinyMCE - v3.0.8
	- fixed session update functionality
	- fixed names of db access parameters

4.14	14/05/2008
	- aded further attribute (MLUtil.pm)
	- MetaCloud now allows multiple lookups (Metadata.pm)
	- added guest user lookup (Session.pm)
	- added badcommand option (Writer.pm)
	- constraints abstracted in CPAN module (Constraints.pm)
	- new date format (DTUtils.pm)
	- added links and perma fields (RSS.pm)
	- remove any remaining actions on a reset request (Request.pm)
	- added host settings (Globals.pm)
	- added further log messages when mail not configured (Mailer.pm)
	- added picture storing ability to Venues.pm
	- added IPAddr.pm
	- added GetUserGroup to Groups.pm
	- added NAME to menu option fields to allow each option to have a 
	  unique identifier to be used within CSS (Menus.pm)
	- rework of trail creation from menus (Menus.pm)
	- rework of hits listings (Hits.pm)
	- rework of guestbook, adding IPAddr functionality (Guestbook.pm)

4.13	13/12/2007
	- trim trailing whitespace from code
	- incorporate session/menu changes from smart site
	- map awkward quoting characters to sane ASCII versions
	- include the ability to server binary (PDF) files (Writer.pm)
	- include Order and Product plugin rewrites from smart site
	- include Authenticated Downloads plugin
	- fix Mailer hooks from Labyrinth.pm
	- Allow for more caller information via Audit.pm
	- bad login now throws BADUSER error (Session.pm)
	- incorporate language code into session from OD360
	- include RealmCheck and RealmID to realm support

4.12	03/12/2007
	- complete review of code to ensure that database result sets are
	  being returned and used correctly.
	- removed further unnecessary template variables (eg 'norecs') when no
	  results sets. TT logic can figure it out!
	- changed RSS to use name/email from settings
	- fixed BookReviews to use PUBLISHER for admin access
	- fixed image processing for BookReviews.pm
	- added ISBN drivers to prerequisites (also added Amazon back in)
	- fixed additional links to be saved and update for O'Reilly
	  (BookReviews.pm)

4.11	26/09/2007
	- added TagCloud support to Metadata.pm, Articles.pm and Diary.pm
	- fix to MLUtils.pm to add further legal tags
	- Change Labyrinth::Images to Labyrinth::Media
	- add several media file support functionality, including archive
	  extraction
	- removed all references to 'norecs', TT logic can figure it out!

4.10	09/08/2007
	- performance improvements within Globals and Variables
	- name change: Specific.pm => Support.pm
	- added extra debug info for DBUtils.pm
	- added more default legal HTML tags in MLUtils.pm
	- fixed session management with guest user
	- fixed articles listings
	- major rework of News.pm (removal of snippet, added better support
	  for front page and archived news).
	- added more functionality to Hits.pm, changing the way hits are
	  recorded and presented

4.09	07/06/2007
	- added categories to links (Links.pm)
	- 'users' template container used for data from Users.pm
	- show/hide/ban/delete users functionality improved
	- fixed closed_tag_dependent bug (MLUtils.pm)
	- moves TechTalk.pm to Events/TechTalk.pm
	- abstracted out social/technical specific code to Events/Meetings.pm
	- changed the LoadSettings to use Config::IniFiles to read the settings
	  config file. This means that lists can now be used for settings.
	- fixed new abbreviations - no longer supports regexs
	- fixed VenueSelect blank reference
	- fixed $where in Album::Page::Admin when undef

4.08	30/05/2007
	- when logging in the next command sets 'home-'+realm as the next
	  command. The default assumes a normal 'public' user. (Session.pm)
	- added Survey plugins
	- added server date/time template variables (Content.pm)

4.07	28/05/2007
	- more date/time formats (DTUtils.pm)
	- more POD in core Images.pm
	- urlregex moved to Variables.pm and stored in $settings{urlregex}
	- emailregex added to Variables.pm and stored in $settings{emairegex}
	- RSS.pm added to core
	- Wiki.pm and WikiText.pm added to plugins
	- better HTTP handling in Writer.pm, including returning 404 status
	- fixed page/photo id checks in Hits.pm
	- added <pre> as another tage where <p> doesn't to preceed it
	- fixed bad URL capture
	- fixed several areas when saving user data, no existing checks for a
	  new user and absolute default realm is 'public'
	- added ipaddr to tvars
	- added %closetag_is_dependent to allow for <a name="a" />
	- improvement to menu option deleting
	- added more entries to %safe_tags (MLUtils.pm)

4.06	10/05/2007
	- better handling of plugins by abstracting out into Plugin.pm
	- added url regex to Constraints.pm
	- added ipaddr code
	- added Media functionality to core Images.pm (name may change)
	- added more entries to %safe_tags (MLUtils.pm)
	- improved Metadata.pm interfaces
	- removed last remaining forum references

4.05	08/03/2007
	- lots of fixes!

4.04	21/02/2007
	- created Variables.pm to stop cyclic dependency, simplifying Globals.pm
	  in the process.
	- improved Writer.pm so valid XHTML is correctly parsed out.
	- as a result of the above extended MLUtils.pm and fixed several
	  hidden content bugs in the templates.
	- Croak moved to Writer.pm as it's a better fit in the chain.
	- removed unnecessary references to Globals.pm, Session.pm & Specific.pm
	  from plugins that don't use them.
	- SafeHTML => CleanTags in several plugins.
	- undef body bugfix to images in paragraphs (Articles.pm)
	- initialise event types (Events.pm)

4.03	04/02/2007
	- Testing with Selenium has highlighted some areas of the core code
	  that needs a little more tightening, together with various areas of
	  plugin code.
	- a fix to prevent anyone trying to access realm code directly
	  (Labyrinth.pm)
	- removal of Carp dependancy and general code clean up (Audit.pm,
	  DBUtils.pm, DIUtils, Phrasebook.pm, Request.pm, GDDriver.pm,
	  IMDriver.pm, Specific.pm)
	- Carp::croak replaced with Croak, which provides better error
	  messaging both to logs and to the user.
	- PathMove and Croak added to Globals.pm
	- GroupSelect updated and GroupSelectMulti added (Groups.pm)
	- update of copyright/author/name documentation
	- ddmmyy/printsafe/url/realname match functions updated with better
	  regexes and returns undef if no match (Constraints.pm)
	- removed \n in select/option HTML strings (DTUtils.pm, Globals.pm,
	  Groups.pm, MLUtils.pm)
	- better session logging (Session.pm)
	- Mailer.pm improved to avoid cyclic dependancy
	- added AccessLevel checks for admin functions (Plugin::Base.pm)
	- added UserSelect (Users.pm)
	- made UserName cache names correctly (User.pm)
	- better error checking in public facing method, to prevent anyone
	  trying to access anything they shouldn't do. (various plugins)
	- improved dropdown calls and deletion (Plugin::Groups.pm)
	- RSS code made to reflect the configuration file (Plugin::News.pm)

4.02	26/01/2007
	- dates => ddmmyy, email => emails (Constraints.pm)
	- DB connection error fix - now displays a nice message to the user and
	  doesn't reveal any sensitive info (DBUtils.pm)
	- StockType added to gather data from DB (Globals.pm)
	- major rework around stock types, such that the default (DRAFT) is
	  always id=1
	- in CGIFile force lower case extension for uploaded file (Globals.pm)
	- try and keep dimensions up to date (Images.pm)
	- tidy up of code (Phrasebook.pm, Request.pm, Session.pm)
	- scalars are not references! (Base.pm)
	- default alignment = none (Specific.pm)
	- added redirection code (Writer.pm)
	- added new date format string (DTUtils.pm)
	- added Standard plugin set to the manifest

4.01	12/01/2007
	- additional documentation
	- better handling when a plugin fails (Labyrinth.pm)
	- added ? to list of acceptable characters for simplewords
	  (Constraints.pm)
	- settings now automatically passed to tvars for PROJECT, HTTP & CMS
	  sections (Globals.pm)
	- fixed bugs in CleanTags (MLUtils.pm)

4.00	10/01/2007
	- implemented proper plugin functionality for Scooter Do & Style Stop
	  websites
	- general code cleaning and additional documentation
	- added more date formats (DTUtils.pm)
	- fixed undef range bug in YearSelect (DTUtils.pm)
	- ported core functionality out of plugins (Images.pm, Metadata.pm,
	  Users.pm)
	- fixed undef issues with protocol and cgiroot values (Globals.pm)
	- DB errors now trip MESSAGE rather than ERROR (Globals.pm)
	- new functions CleanLink & CleanWords to fight spam (MLUtils.pm)
	- fixed an undef error case (Phrasebook.pm)
	- Login/Logout require direct reference (Session.pm)
	- FreshPassword moved to new Users.pm
	- improved session handling, now even guests have a key (Session.pm)
	- fixed undef key for session key bug (Session.pm)
	- removal of specific realm changing code (Specific.pm)
	- addition of FolderSelect to prepare for full website management
	  (Specific.pm)
	- fixed AuthorCheck/AccessUser bug where permission is 0 (PUBLIC)
	  (Specific.pm)
	- removed unused error codes (Writer.pm)
	- Evaluates Perl for BADPAGE (Writer.pm)

3.00	03/11/2006
	- More general improvements to the system from writing DanDan's website
	- Added more caller info (Audit.pm)
	- fixed AUTOLOAD bug (DBUtils.pm)
	- simplified regex for script extraction from ENV variable (Globals.pm)
	- removed strip from automatic CGI parameters parsing (Globals.pm)
	- filters added to parserules file (Globals.pm)
	- script & randpicwidth added to automatic tvars list (Globals.pm)
	- formatted all HTML code to meet standards
	- LinkSpam added to protect spam attacks (MLUtils.pm)
	- broken url regex down to more understandable components (MLUtils.pm)
	- added more realm handling code (Specific.pm)
	- fixed AuthorCheck to cope with records without a userid field
	  (Specific.pm)
	- fixed FieldCheck to cope with added items (zero or blank id fields)
	  (Specific.pm)

2.00	10/10/2006
	- complete overhaul of code from implementing the Slim Pickins site

1.00	00/00/0000
	- first version of Labyrinth, rebuilt basic core elements