Version 2.3 - NO NAME SET
----------------------------------
Core - General
  - IMPROVEMENT: Upgrade Smarty to v3.1.33 and now use composer
      When APC is enabled on the server, smarty can now utilize that for compiled templates
  - Upgrade PHPMailer to v6.0.5 and now use composer
  - BREAKING: Any third party functionality that uses PHPMailer directly may now break due to namespace changes
  - CHANGE: Add more functions to the smarty security policy, and fix incorrect initialization of members.
  - REMOVED: CMSMailer is no longer distributed with CMSMS Core.  And it is no longer considered a system module.
    (will be distributed via the forge for backwards compatibility for some time)
  - REMOVED: MenuManager is no longer distributed with CMSMS Core.  and it is no longer considered a system module.
    (note: as of 2.3 it is still operational, just no longer distributed.)
  - BREAKING: Remove secure option from content pages
  - CHANGE: $config['ssl_url'] is deprecated, and now just an alias for root url
  - CHANGE: $config['ssl_uploads_url'] is now just an alias for uploads_url and is deprecated
  - CHANGE: $config['ssl_image_uploads_url'] is now just an alias for image_uploads_url and is deprecated
  - CHANGE: $config['ssl_css_url'] is no longer used.
  - CHANGE: $config->smart_root_url() is no longer used, and outputs deprecated messages to log.
  - CHANGE: $config->smart_uploads_url() is no longer used, and outputs deprecated messages to log.
  - CHANGE: $config->smart_image_uploads_url() is no longer used, and outputs deprecated messages to log.
  - FEATURE: added new define in cms_config class: CMS_UPLOADS_URL
  - FEATURE: added new define in cms_config class: CMS_ADMIN_PATH
  - FEATURE: added the CMS_ASSETS_URL define and assets_url config entry.
  - CHANGE: Implement new simple_plugin API. Simple plugins are stored in /assets/plugins and must contain the <?php tag.
    (we will try to auto add it on upgrade)
  - REMOVED: GUI functionality for managing UDT's (udt's are replaced by simple_plugins)
  - CHANGE: UserTagOperations class is now merely a compatibility stub and is deprecated
  - CHANGE: Replace OneEleven admin theme with the Marigold fork that uses fontawesome.
  - FEATURE: Sitedown mode now throws a 503 exception and outputs a 503 error code
  - FEATURE: The 503 error handler (maintenance mode) is now an Error Page.
  - BREAKING: Removed many previously deprecated and seldom used methods from the module API
  - BREAKING: Removed many deprecated and seldom used methods from the core API
  - CHANGE: Adds the new pr_root_url config entry.  to return the protocol relative root URI. root_url will always include the protocol.
  - REMOVED: long deprecated passthru parameters to effect $_REQUEST because of potential security vulnerabilities.
  - IMPROVE: Improved error message if there was an error parsing the template (or a duplicate content block).
  - FIX: Problem with content blocks, image blocks, module blocks containing whitespace in the name.
  - FIX: Minor fix to {cms_filepicker} plugin.
  - IMPROVE: Improve the CmsModuleInfo class such that if the module class file is newer it will be loaded.
  - CHANGE: Now generate the moduleinfo.ini file automatically on install or upgrade of a module.
  - CHANGE: Increase the maxlength attribute for password input boxes in myaccount.
  - CHANGE: Move system modules to /lib/modules
  - CHANGE: Now look for third party modules in /assets/modules
  - REMOVE: Remove un-necessary moduleinterface.php from the root directory.
  - FEATURE: Adds a new hook method to the HookManager class to allow returning the first nonempty value.
  - CHANGE: refactor changegroupperm localization technique.
  - FEATURE: Adds new root functions cms_notice, cms_warning, and cms_notice
  - FEATURE: Adds new AuditManager class that is enabled within include.php allows for swapping out auditing methods
        With no audit manager installed, audit messages will be output to the HTTP error log.
  - CHANGE: Revise many places where audit() was being called to call the new methods.
  - CHANGE: audit() method now uses the AuditManager class
  - CHANGE: CMSModule::SetError() and CMSModule::SetMessage() now set session variables, and the strings will no longer be on the array
  - FEATURE: Adds new CMSModule::AddAdminHeadText() method to allow module actions to add dynamic text to the head section of admin requests.
  - CHANGE: Renames a bunch of classes into namespaces, and cleans up a bunch of old, commented out code.
  - CHANGE: Replaces old "admin log" functionality with a new core module that has extra functionality.
  - CHANGE: Refactor mact processing.  get rid of un-necessary variables and duplicated code.
  - CHANGE: Autoloader will now try to load modules.  Modules can still only be instantiated once.
  - IMPROVE: autoloader now handles namespaced module classes if the module is already loaded.
  - FEATURE: Adds new CmsError400Exception class.
  - IMPROVE: exception handling in include.php to handle when showtemplate is false.
  - BREAKING: No longer handle {$actionid}showtemplate=false parameters.
  - BREAKING: No longer send id, returnid, action parameters in the action $params array.
  - CHANGE: Only modules that are not marked as lazy load (the default) will be loaded automatically.
  - BREAKING: The long deprecated $module->smarty property is now removed.
  - CHANGE: For performance reasons, plugin functions should be named smarty_xxxxx instead of smarty_cms_xxx
     - at some future date we will remove support for smarty plugins with function names of smarty_cms_xxxx
  - IMPROVE: Optimize the cms_route_manager for performance
  - FEATURE: Adds ModuleOperations::is_module_loaded() method
  - FEATURE: Allow loading action controller classes with the name Module/Controllers/<action>_action
    The constructor is sent the module, the actionid and returnid parameters
    The invoke method is sent an array of parameters.
    - Adds CMSModule::get_controller() protected method to allow specifying custom controller mechanisms.
  - REMOVE: content.functions.php (last remaining function moved to page.functions.php)
  - IMPROVE: Refactor the cms_module_plugin function for performance).
  - IMPROVE: Refactor the route-lookup functionality for performance.
  - FEATURE: The database connection class now accepts a single scalar for an argument when only one parameter is required in functions like GetOne()
  - CHANGE:
    - Remove the startup_mact_processing config entry, and replace it with content_processing_mode config entry that supports 3 values
      0 - no content preprocessing.  (default)
      1 - do content preprocessing AFTER the template page top
      2 - do content preprocessing BEFORE any template processing.
      This config entry controls only when in the rendering, the default content block will be processed.
  - FEATURE: Adds the {disable_template} plugin.  Only really useful when content_processing_mode == 2
  - REMOVED: all options for smarty caching.  HTML caching should now be done with external tools like varnish or cloudfare
  - CHANGE: All module actions (except for showtemplate=false or other similar requests) create a new smarty template object
    and destroy it when the action is complete.
  - CHANGE: Convert admin passwords to use PHP's builtin password_hash and password_verify methods.
    - Still backwards compatible with older style for upgrades and resetting lost passwords.
    - Users upgrading from very old versions may have to reset passwords
  - CHANGE: smarty template directories for admin requests now includes /assets/templates.
  - CHANGE: Allow svg files to be cached and deflated in the sample htaccess.txt file
  - CHANGE: Now call InitializeFrontend() and InitializeAdmin() from within ModuleOperations::_load_module() on success.  instead of the module constructor.
  - CHANGE: Now call SetParameters from within ModuleOperations::_load_module() and not from the constructor.
  - FEATURE: Adds new {theme_root} plugin for admin templates
  - FEATURE: Adds new {admin_headtext} block plugin for admin templates
  - CHANGE: Module actions can now return output rather than echoing it.
  - FEATURE: Allow login via a module (CoreAdminLogin) now is core admin module
  - FEATURE: Adds a new hook for password strength
  - CHANGE: cms_mailer class now throws an exception if attempting to send an email without setting preferences first.
  - BREAKING: New methods and minor cleanup to admin themes (may introduce some breakage)
  - BREAKING: Remove the {cms_jquery} plugin and the cms_get_jquery function in lib/misc.functions.php
    - Users using {cms_jquery} in frontend templates will need to find alternate solutions
    - See {cms_queue_script} and {cms_render_scripts}
  - BREAKING: Remove the {breadcrumbs} tag that for a long time has just output a warning.
  - FEATURE: Adds {cms_queue_script} and {cms_render_scripts} plugins to allow combining javascript files and rendering them in fewer requests.
  - FEATURE: new Core::ProcessScript and Core::PostProcessScripts hooks
  - FEATURE: Adds {cms_queue_css} and {cms_render_css} plugins to allow combining stylesheet files and rendering them in fewer requests and database queries.
  - FEATURE: new Core::PreProcessCSSFile and Core::PostProcessCSS hooks
  - FEATURE: new Core::OnCacheClear hook when CMSMS clears the cache
  - BREAKING: Upgrade the embedded jquery and jquery-ui scripts.
    - some admin side javascript that relies on very old jquery may need changing
  - FEATURE: When using {cms_render_scripts} adds the ability to put inline javascript into <script type="text/cms_javascript">...</script>
    - javascript in these tags will be deferred loaded.
  - CHANGE: Fix lib/nls files so that UTF-8 locales are searched first.
  - FEATURE: cms_admin_utils::get_icon() and {admin_icon} can now find icons without specifying an extension.
  - SECURITY: checksum verification can no longer fish for files outside of the root directory.
  - CHANGE: Performance Improvement to contentoperations::SetDefaultContent()
  - IMPROVE: Improve input checking to cms_ipmatches.
  - FEATURE: Adds the cmsfile: smarty resource which is similar to the file resource but more restrictive
     (templates must exist BELOW one of the allowed template directories).  This resource also supports the ;top ;head and ;body
     suffixes to allow parsing a subset of the template.
  - FEATURE: The cmsfile: resource is now the default resource (instead of file:)
  - FEATURE: Now allow loading a page template directly from a smarty resource.
  - FEATURE: Adds new config entry $config['page_template_list'] to allow manually creating a page template list of smarty
      resources:. When enabled, and adding or editing content no design selection is possible, and this list will be displayed.
      Note: when using this, implementing {cms_stylesheet} in the file based templates will be problematic.
  - IMPROVE: Organize and refactor the template parsing code.
  - FEATURE: Added the ability to stop processing content, via an exception.  This is useful in situations where output is retrieved from a cache.
  - FEATURE: Added the {content_text} plugin to allow adding simple static text instructions for editors on the edit content page.
      text must be hardcoded.  i.e {content_text text='This is a test'}
  - FEATURE: Added the {assets_url} plugin to provide the complete URL to the assets folder.
  - FEATURE: New cleaned up simplex theme on initial install demonstrates template inheritance and other techniques
  - FEATURE: New default content on initial install
  - CHANGE: in HookManager::do_hook now smartly handle hook handlers that return null or no result, or single parameters
  - FEATURE: {cms_textarea} now supports the readonly and disabled attributes.
  - IMPROVE: {content_image} now allows alt="".
  - IMPROVE: {cms_action_url} will now use the default content page for frontend links IF a returnid is not specified or cannot be inferred
  - IMPROVE: get_page_id_or_alias_from_url() can now throw an exception and improve the way that parameters are merged and cleaned.
  - CHANGE:  RestrictUnknownParams is now OFF by default, AND cleaning is only done if RestrictUnknownParams() is enabled
  - BREAKING: Modules that register content types cannot be lazy loaded or adminonly
  - CHANGE: LazyLoadAdmin() and LazyLoadFrontend() methods.  Modules should not be lazy loaded anymore, however class files should be kept small
  - FEATURE: You can now pass :NOPRETTY: as a value for the prettyurl parameter in create_url (and CreateLink and CreateFrontendLink) to disable
      pretty url determiniation.
  - FEATURE: You can now pass NOPRETTY=1 as an item in  a module's create_url() method's params array to indicate that no attempt at generating a pretty URL
      should be made.
  - FEATURE: cms_action_url plugin now supports the NOPRETTY parameter.
  - FEATURE: cms_action_url plugin now supports the 'alias' parameter.
  - FEATURE: cms_action_url plugin now supports the 'inline' parameter.
  - CHANGE:  use the new assets/configs/hook_mapping.json file to map hooks to handlers.  Can specify modules, simple plugins, or callables
      as handlers to hooks.
  - REMOVE:  Events and Event handlers functionality from the admin panel
  - CHANGE:  Deprecate the whole events class, and methods in the CMSModule class
  - BREAKING: The Events class is now just a lightweight stub to preserve compatibility for most modules.  Some methods have been removed
  - FEATURE:  Now allow caching most core data using the APC cache, by adding $config['cache_driver'] = 'APC' to the config.php
     If not specified, the old file cache mechanism will be used
  - FEATURE:  Now allow specifying the maximum cache TTL in seconds by adding a $config['cache_ttl'] = <seconds> value to the config.php
  - FEATURE:  Site administrators (Modify Site Preferences') can clear the cache (including APC cache) by adding ?__clearcache__ to
     the /admin/index.php request.  Only for logged in admins.
  - IMPROVEMENT: Rationalize the CmsLayoutTemplate code to use a manager class, which takes advantage of the cache.
     some functions have been deprecated.
  - IMPROVEMENT: Rationalize the ContentOperations class to better take advantage of a cache
  - IMPROVEMENT: CmsApp now acts more as a service provider module.  Begin to remove singletons
  - IMPROVEMENT: All core functionality that utilizes a cache can now take advantage of the APC cache
  - CHANGE: remove the php_memory_limit config setting (php.ini, .htaccess, or .user.ini files can handle this).
  - CHANGE: cms_config class does not output ending php tag when writing the file
  - CHANGE: Significant code cleanup... start getting rid of singletons, use CmsApp as a service provider
  - BREAKING: refactor the ContentBase and ContentOperations classes such that all DB operations are done from the ContentOperations class
     some methods were removed from the ContentBase class.  i.e: Delete(), Save(), and some other methods
  - CHANGE: ContentOperations now ALWAYS loads properties for content operations, thus invalidating the 'deep' or 'loadproperties' options in various methods, and modules.
  - IMPROVEMENT: Adds new classes for working with cookies.  Including a signed cookie manager that signs all cookie values and obfuscates keys.
  - CHANGE: cms_cookies now uses the AutoCookie manager which allows storing extracting simple objects arrays and strings from the cookies.
  - REMOVED: News is no longer distributed with the core, and is no longer considered a system/core module.
    (security fixes will be distributed via the forge for some time)
  - CHANGE: The CMSModule::CreateReturnLink() method is deprecated, and now ignores the params array (don't think it ever did work)
  - CHANGE: Refactor the generation of mact urls.
  - CHANGE: Now, by default, when pretty urls are not enabled... generate a signed, encoded LONGER request that is forgery resistant.
  - CHANGE: New config entries to enable generation of old style mact URLs, and to allow processing of old style mact urls.
    - OLD style mact URL's can be processed by default, but this may change in later versions
  - CHANGE: Add and remove some tests from the systeminfo page.
  - CHANGE: Minor improvements to the test functions
  - CHANGE: Improvements to the is_sitedown() stuff, and the get_real_ip() function.
  - REMOVED: the dump plugin because it relied on smarty internals, and was problematic.
  - IMPROVED: Add some minor functionality to the get_template_vars plugin.
  - FEATURE: Now add simple .htaccess file to the lib directory to prevent direct php browsing
  - FEATURE: New config entry "disable_locking" to disable all locking in Content Manager and Design Manager
  - CHANGE: Removes public static methods from the CmsAdminThemeBase class
  - CHANGE: Adds an AdminThemeManager class to handle iterating and loading admin themes.
  - CHANGE: Internal pretty urls are now ON by default.  To disable it you set url_rewriting to none in the config.php
  - CHANGE: enable browser caching by default
  - REMOVED: preference for automatic clearing of cache from siteprefs.  This is now handled by a config entry.
  - FEATURE: Adds the new {cms_set_theme} plugin usable in a page template of a theme to tell the system what the current theme is.
  - FEATURE: Adds {cms_theme_url} and {cms_theme_path} smarty plugins that return the start URL and path of the current theme.
  - FEATURE: Adds the cms_theme smarty resource to read templates from themes located in /assets/themes/thememane
     - Supports putting templates into a directory called 'templates' below the theme directory OR having templates in the root.
     - Supports syntax like:  cms_thme:[theme;]template_name[;section]
       - if the theme name is not specified then the 'current' theme {cms_set_theme} will be used.

PressRoom v1.0
  - New core example module to demonstrate module development techniques.  It allows managing and displaying time limited content.

CMSContentManager - 1.2
  - REMOVED: Gets rid of secure options, flag output and bulk functionaltiy
  - REMOVED: The design dropdown option in the content editor.
  - CHANGE: modified to use CMS_ROOT_URL
  - CHANGE: Change connection timeout to 1 second.
  - CHANGE: processing to be a little more friendly to some environments wrt. content-size header.
  - FEATURE: Adds expand/functionality into reorder content (TODO: needs styling)
  - FEATURE: Adds new 'add child here' icon in the content list.
  - FEATURE: Find functionality in content list can now search on page alias and url.
  - FEATURE: Allow setting the default content page from within the page edit form (for pages where it is possible, and permission allows)
  - FEATURE: New bulk action for when page_template_list is correctly defined in the config to allow setting bulk pages to a template resource.
  - FEATURE: When page_template_list is defined hide the set design and template bulk action
  - FEATURE: Each page can now display some info in the dynamic tooltip that is displayed.
  - FEATURE: Now display a warning in editcontent when locking is disabled
  - FEATURE: Now set the subtitle properly, which helps with the admin theme's title tag
  - FEATURE: Now the template list will include all LayoutManager templates AND all page templates detected from themes in the /assets/themes directory.
  - REMOVED: all support for events, now uses hooks

Installation Assistant - v1.4
  - Now require at least version 2.0.1 to upgrade
  - Now test the default character set
  - Now require at least PHP 7.1 and recommend 7.2+
  - Upgrade to smarty v3.1.33
  - CURL is now a requirement
  - ZipArchive is now a requirement (at least for the installer)
  - Now install default theme from a zip file into the /assets/simplex directory (hardcoded)
  - Now install default content from an XML file exported by CGCU
  - The basic installer no longer emails the admin account information
  - Now write the primary contact email address to the config.php
  - Now enable browser caching by default
  - Now display a message explaining why we want the database password on upgrade and freshen

ModuleManaver v2.2
  - XML import code now lives here.
  - XML export code now lives here.
  - Now output an error message to logs when the is_connection_ok test fails
  - Default connection timeout is now 3 seconds
  - It is now impossible to upgrade or uninstall a module that is missing dependencies
  - Removes all support for events, now uses hooks

FileManager v1.6.4
  - When advanced mode is permitted, and enabled access to a simple text file editor (supports syntax hilighters)
    to allow developers to make simple edits to and also create text files that are writable by the web server.  
  - modified to use CMS_ROOT_URL
  - Add a different icon for navigating up one level.
  - No longer allow uploading any php (or derivative) file.
  - No longer allow renaming any file to have a .php extension (or a derivative).
  - Now use CMSMS error console when displaying filepicker exceptions (no uncaught exceptions)
  - Removes all support for events, now uses hooks

FilePicker v1.0.1
  - No longer allow overriding the filepicker type on the URL.
  - No longer allow uploading any .php files.
  - No longer set the size attribute on the input field, use CSS
  - Removes all support for events, now uses hooks

AdminLog
  - New core module to replace the adminlog.php file

Search  - v1.52
  - FEATURE: Now exports a command for cmscli
  - The search results now contain _content_ and the page id for content pages.
  - Removes all support for events, now uses hooks
  - Adds the use_like parameter
  - Removes the useor parameter.
  - Adds the ajax_getwords action for jquery-ui-autocomplete usage
  - more...

AdminSearch v1.1
 - Rationalize the code a bit (remove un-necessary files).
 - Adds the ability to search text files within the /assets directory (excluding modules)
 - Rename of slave classes to use namespaces.

DesignManager v1.1.6
 - Now properly handle renaming exported stylesheets and templates.
 - Now only reads {Navigator} tags, will not read {cms_module module=Navigator} tags (for a bit).
 - PHP 7 fixes
 - Minor template fixes in design list.
 - FEATURE: Now display a warning in edit template and css when locking is disabled
 - Removes all support for events, now uses hooks

Navigator v1.0.9
 - Adds the title property to each node.

CmsJobManager v0.3
 - Now uses CURL to initiate asynchronous requests
 - Removes all support for events, now uses hooks

Version 2.2.6 - NO NAME SET
----------------------------------
Core - General
  - Fixes to AdminAlerts::load_by_name()

Search
  - Fix notice in PHP 7.1: A non well formed numeric value encountered...


Version 2.2.5 - Wawa
----------------------------------
Core - General
  - Fix minor security issue in the way login information was cached in cookies and the session.
  - Simplify rules around alias editing/generation in fillparams.
    If the alias field exists then we can adjust its value or recalculate an alias.
    Use basic properties, and ownership and permissions to determine if that field exists on the edit form.
  - Minor fixes to the CmsJobManager.


Version 2.2.4 - Little Paradise
----------------------------------
Core - General
  - Improvements to the Hook class.
  - Minor fix to usertagoperations.
  - Changes to the hierarchy selector to disallow circular references.
  - Fix problems with additional editors causing page aliases to be regenerated.
  - Minor fixes to Admin log browser.
  - Minor fixes to Admin login.
  - Add missing call Core::LoginPre hook.
  - Modify myaccount.php to call Core::EditUserPre hook BEFORE the password is set.
  - Fix documentation to CallUserTag.
  - Fix to default handling for content_image block.
  - Improve the help for the {page_attr} plugin.
  - Fix a potential warning in the {anchor} tag.
  - Fix boolean comparison in LoginOperations.

Installation Assistant v1.3.4
  - Fixes endless recursion issue with setting a tmpdir.
  - Fix issue with requiring a database prefix on upgrade.

FilePicker v1.0.2
  - Now allow specifying a 'useprefix' boolean parameter to the action url which will use the current top directory.
  - Add a prefix on all returned strings.
  - Slight modification to the profile class.
  - Now sends the FileManager::OnFileUploaded hook the same way as FileManager does.
  - Adds an exception handler around the change working directory stuff.

FileManager v1.6.5
  - Change upload action to call FileManager::OnFileUploaded hook before creating the thumbnail to allow a hook to rename the uploaded file.
  - Now enable creation of thumbnails on install.

MicroTiny v2.2.2
  - Minor fix for the filepicker if using a default filepicker profile that specifies a top directory.
  - Re-adds the table plugin (went missing when we upgraded tinymce).

ModuleManager v2.1.3
  - Adds audit line displaying status if cannot connect to ModuleRepository.

DesignManager v1.1.4
  - Fixes problems with the cancel button not marking the form as 'clean' (not dirty).


Version 2.2.3.1 - Happy Adventure
----------------------------------
Core - General
  - Fix an issue when parsing multiple content blocks.


Version 2.2.3 - Happy Adventure
----------------------------------
Core - General
  - Fixed a redirect loop problem on mixed HTTP/HTTPS sites when the secure flag was set on some pages.
  - Fixed a problem with prefilters and postfilters not working if placed in /assets/plugins.
  - Now use our own derivative of Smarty Internal Template so that we can send hooks, etc.
  - Improved error message if there was an error parsing the template (or a duplicate content block).
  - Fixes content blocks, image blocks, module blocks containing whitespace in the name.
  - Minor fix to {cms_filepicker} plugin.
  - Improve the CmsModuleInfo class such that if the module class file is newer it will be loaded.
  - Now generate the moduleinfo.ini file automatically on install or upgrade of a module.
  - Increase the maxlength attribute for password input boxes in myaccount.
  - Adds a StartsWith JavaScript shiv for IE11.
  - Revert the protocol-less URI for root_url (more changes coming for 2.3).
  - Get rid of the smart_url config option.
  - Fix a problem when testing for duplicate aliases of the form string-###  where the suffix integer was greater than 100.
  - More fixes to mact preprocessing if {content} was in the top of the template.
  - Minor fix to ExpandXMLPackage to not throw an exception in brief mode if module is not compatible with the current version of CMSMS.
  - adds new cms_entities_array function in misc to convert an array recursively to values.
  - Fixes transposed arguments in UserOperations::AddMemberGroup().
  - Better detection of duplicate content blocks.
  - Revert template_stack change to Smarty_CMS from 2.2.2
  - Improvements to HookManager.

CmsJobManager v0.1.1
  - Optimization of audit logging.
  - Change connection timeout to 1 second.
  - Change processing to be a little more friendly to some environments wrt. content-size header.
  - Prevent processing from the CLI when root_url is calculated.

MicroTiny v2.2.1
  - Minor fix for filepicker plugin.

News v2.51.3
  - For security, no longer urldecode the detailtemplate parameter in detail view.
    This may have some implications for people that are specifying the detailtemplate parameter (with a template with special characters) from within a WYSIWYG (which is not recommended behavior).
  - Convert title and dropdown options and text fields to entities before display.

ModuleManager v2.1.2
  - Now sort modules in the installed tab a bit better.
  - Now handle module 'not available' a bit better.

FileManager v1.6.4
  - Add a different icon for navigating up one level.
  - No longer allow uploading any php (or derivative) file.
  - No longer allow renaming any file to have a .php extension (or a derivative).
  - Fixes an issue when improper/invalid values for root path and uploads path are manually specified in the config.php

FilePicker v1.0.1
  - No longer allow overriding the filepicker type on the URL.
  - No longer allow uploading any .php files.

CMSContentmanager v1.1.6
  - Now double check that the 'default parent' for new pages actually exists.

Navigator v1.0.8
  - Minor english documentation correction.

Installation Assistant v1.3.3
  - Now look for lib/include.php before include.php in step 8 and step 9 when connecting to CMSMS.
  - Fixes to upgrade routine for 2.1.5 wrt. the 'Manage Stylesheets' permission (ignore an exception)


Version 2.2.2 - Hearts Content
----------------------------------
Core - General
 - Additional security improvement in CMSModule::GetTemplateResource().
 - Now Smarty_CMS is no longer derived from SmartyBC (uses our own wrapper class) which prevents all occurrences of {php} tags from running.
 - Adds an admin directory .htaccess file to explicitly disable browser caching of any resources.
 - Fixes a relative path vulnerability in module_file_tpl resource.
 - Fixes a path building issue in CmsModuleInfo.
 - Fixes to parsing and generating moduleinfo.ini files.
 - Disallow any resource specifications with a * or a /.
     * This also means that no file resource specifications with path information will be permitted.
 - Move mact preprocessing to AFTER the template_top has been processed. So order of processing (for module actions on the frontend is)
     a:  template top
     b:  mact preprocessing (if enabled, which is the default)
     c:  template body
     d:  template head
 - Fix sureGetNodeByAlias to check if the input is numeric. If it is, assume that it is a page id, not an alias.
 - Fix alias generation in the ContentBase class to check if the input page title is numeric... If it is, prepend a character to it to ensure that integer casting will return 0.
 - Fix listtags to show tags using smarty_nocache_ function name prefix.
 - Improvements to the {form_start} plugin.
 - Fix silly, old issue in recursive_delete function.
 - Clean up more parameters from the content tag before passing to module action.
 - Fix local file inclusion vulnerability in listtags.
 - Now call get_userid() in debug_to_log instead of check_login()

AdminSearch v1.0.3
 - Now search the metadata field of content pages.
 - Fixes for single quotes in search results.

DesignManager v1.1.3
 - Set title attribute tags for edit/create template, stylesheet, design.
 - Remove debug statements.

MicroTiny v2.2
 - Upgrade tinymce to v4.6.x.
 - Adds new tabfocus and hr plugins.

News v2.51.2
 - Fixes so that all cancel buttons work properly on new News articles.

Navigator v1.0.7
 - Adds a silly __get() method to the NavigatorNode class squash some notifications in the error logs.

ModuleManager v2.1.1
 - Now handlle remote module installs upgrades, and activates via a 2 request process to allow new module versions to be read into memory.

Installation Assistant v1.3.2
 - Correction to assets warning

Search v1.51.2
 - Now do an html entity decode on all content added to AddWords.


Version 2.2.1 - Hearts Desire
----------------------------------
Core - General
 - Improve the Smarty plugin loading to handle non-cachable plugins in the /assets/plugins and /plugins directories.
 - Fixes to transaction functions in database abstraction library.
 - Fix CMSModule::GetTemplateResource to no longer accept eval or string resources.
 - Fix CMSSmartySecurityPolicy so that debug_to_log is no longer an allowed function.

   Many thanks to Daniel Le Gall from SCRT SA, Switzerland for reporting the vulnerabilities.

Installation Assistant v1.3.1
 - On upgrade to 2.2.1 move all files from /plugins to /assets/plugins (they should only be third party plugins at this point).
 - On upgrade chmod the config.php to 444.

MicroTiny v2.1.1
 - Fix temporary JS call URL.

News v2.51.1
 - Fix frontend pagination.


Version 2.2 - Canada
----------------------------------
Core - General
  - Automatically turn on file locking for cached files to attempt to mitigate race conditions.
    NOTE:  On systems using archaic filesystems such as FAT and FAT32 CMSMS may no longer operate.
  - cms_filecache_driver now caches for 2 hours by default and has an improved cooperative locking test
  - Implement new database abstraction library that is compatible with (functionality wise) but improves upon adodb-lite.
  - Implement protocol-less URL's in the config.
  - Page tabs are now focusable (you can tab through page tabs and use enter to select one).
  - Minor fix to the {form_start} plugin.
  - Minor change to the {admin_icon} plugin (default image class).
  - Cache more items that are queried from the database, to reduce mysql load.
  - Minor change to tree operations functionality to reduce memory usage.
  - Fixed problem with order of content blocks when using {content_module} stuff.
  - Adds get_usage_string and the concept of a type assistant to template types.
  - Minor change to auto-alias determination routine.
  - Detect module_custom enhancements in the CmsModuleInfo stuff.
  - Refactor Admin authentication.
  - More fixes to the cms_url class.
  - Optimize the include.php file.
  - Adds built-in asynchronous task processing system.
  - Adds the ability to reduce redundant mentions in the Admin log (runs asynchronously).
  - Refactor the Admin log page to allow for better filtering and pagination.
  - Admin log now uses cms_date_format and cleans output.
  - Notification functions in the CmsAdminThemeBase function are now just stubs and do nothing. Will be removed at a later date.
  - Removed the GetNotificationOutput() method from the module API.
  - Adds classes for creating Alerts. This is much more advanced than the old Notifications system.
  - Minor accessibility tweaks to the OneEleven theme.
  - Fix numerous minor problems with the OneEleven theme.
  - Refactored the OneEleven Admin theme to use new Alerts classes instead of old Notifications.
  - Refactor the OneEleven Admin theme to display an alert icon in the shortcut bar, instead of in the navigation area.
  - Fixed sidenav in the one OneEleven theme now works properly. If sidenav is larger than viewport then don't use fixed... easy.
  - In OneEleven Now revert to small sidebar navigation (still floating) if screen is too narrow.
  - Removed notification settings from MyAccount and Global Settings.
  - Removed pseudocron granularity preferences.
  - cms_alert() and the new cms_confirm() JavaScript functions now return promises.
  - Revises much code to use cms_alert and cms_confirm() instead of the standard, but browser specific functions.
  - Fixes to the cache clearing methodology.
  - No longer check for duplicate content blocks in templates... NEEDS TESTING
  - New core events: ContentPreRender, LostPassword, LostPasswordReset, StylesheetPostRender.
  - Fix problem with the default parameter to the {content} tag.
  - Fix problem with the use_smartycache thing in system information.
  - Fix notice in useroperations.
  - Fixes problems where all files (including dot files) had to be writable before creating a module XML file.
  - Fixes minor notice in user operations.
  - Fixes for namespaced modules.
  - Fixes an issue in CmsLayoutTemplate when creating a template from a type.
  - Fixes an issue where a 404 handler error page would not be rendered correctly if for some reason the route did not specify a page id to load.
  - More fixes to cms_url class.
  - Numerous minor optimizations.
  - Add to content types the ability to set basic attributes for properties from within the page type definition.
  - Fixes problems with pagelink and link content types not being properly editable by additional editors.
  - Adds more type and content cleaning into the content types FillParams method(s).
  - Pass an explicit cacheid in to createtemplate in index.php.
  - Fix an error message in the autorefresh JavaScript class.
  - Fix problems that could result in uid=1 becoming inactive, and not a member of other groups when edited by another user.
  - Fix query problem in CmsLayoutStylesheetQuery with Mysql 5.7.
  - The {content} tag now supports passing data attributes to the generated textarea, for use by syntax highlighter and WYSIWYG modules. i.e: {content data-foo="bar"}.
  - Refactoring of the Admin login code to be cleaner, more efficient, more secure.
  - No longer allow any modules to auto-upgrade on frontend requests.
  - Fix problem with cms_filecache_driver::clear().
  - Introduces the new Hook mechanism to allow optimizing cms_stylesheet a bit further. All core SendEvent calls are now implemented as hooks.
  - changegroupperms can now localize permission names,  and add an info string for each permission. (the listpermissions hook).
  - Adds add_headtext(), get_headtext(),  add_footertext(), get_footertext() methods to the Admin theme class.
  - minor refactoring of admin/index.php, admin/header.php, admin/footer.php and admin/moduleinterface.php.
  - now use hooks so that loaded modules can now add text to the head area of any Admin page output.
  - Change the help for the basic attributes.
  - Adds new 'switch user' functionality for members of the Admin group.
  - Re-factor the content page selector ... now supports two modes (one for a simple list, and the previous dynamic one that is faster for large sites)
    the simple list mode is used for users with limited edit capabilities on pages.
  - Adds a new Smarty plugin {page_selector} to the Admin lib.
  - New arguments to the CreateHierarchyDropdown function (deprecated) and adjust documentation.
  - Content pages now have the ability to control whether or not the page wants any more children.
  - The TemplateType class now has a help callback to optionally allow retrieving help for templates of a particular type.
  - Permissions are now grouped logically by module/originator in ChangeGroupPermissions.
  - Now use HTTPS for the latest version check.
  - Adds the public_cache_url config entry,  and make sure that the css_url uses that by default.
  - Adds many core hooks.
  - Enhance the {page_image} plugin to optionally output a full HTML img tag if there is a value for the respective property.
  - Improve the {content_image} plugin to output nothing if there is no value for the property, and to output any non-internal arguments as attributes to the HTML img tag.
  - Upgrade to an un-modified version of smarty v3.1.31.
  - Move plugins directory to lib/plugins since we now have the assets/plugins directory for custom plugins.  Upgrading should preserve any custom plugins in the /plugins directory.
  - Add new plugins {thumbnail_url}, {file_url} and {cms_filepicker).
  - Add more intelligence to the tableoption handling for DataDictionary::CreateTableSQL.
  - Minor improvements to the asynchronous behaviour of the locking functionality.
  - #11295 - Cannot change the name of a UDT, always creates new UDT.
  - #11080 - Parameter $adding in GetContentBlockFieldInput always FALSE.
  - #11093 - Bad error message in jquery.cmsms_autorefresh.js.
  - #11133 - is_email() fails on domain check.
  - #11235 - munge_string_to_url leaves trailing dashes at the end of munged URL.
  - #11287 - Password reset form's password fields have different lengths.
  - Fix issue with module actions if 'content_en' block name was given on the default content block.
  - Better security when saving content pages.  Most primary fields are cast to their appropriate data type (int, bool, etc).  MenuText, and TitleAttribute can no longer contain html tags like <strong>foo</strong>.
  - Fixes issue with entities in redirecting links
  - The href/page argument to {cms_selflink} is now decoded before resolving to a page id.

Navigator v1.0.5
  - Minor optimizations.
  - Now use pageid in calculations of cacheid.
  - Now output template help to Navigator.

Installation Assistant v1.3
  - Only create dummy index.html files in subdirectories we created.
  - Clear cache after step 9.
  - Upgrade routine now asks for, and tests database credentials.
  - Upgrade routine now rewrites the config.php file (but keeps a backup).
  - Set a few more preferences to reasonable defaults on install. Specifically related to site cleanup and performance.
  - On installation, now insure that tmp/cache and tmp/templates_c directories are empty.
  - Now displays if files are going to be skipped.
  - Adds clear option for development purposes.
  - No longer ask to save database password.
  - On install now create the assets directory structure.
  - On upgrade (for 2.2) now create the assets directory structure and move tmp/configs, tmp/templates, module_custom, admin/custom, etc. within it.
  - When using the expanded installer allow changing the destination directory on step 1.
  - Check for existing files in the installation directory for new installations.
  - Added more notes to aide in diagnosing white screens
  - Modify package .zip files so that extracted files will usually have 644 permission (depends on the unzip routine used).

CmsJobManager
  - New core module to handle queued asynchronous tasks.

Content Manager
  - Minor tweak to bulk delete pages.
  - Minor fix to the active tab when changing a template or design.
  - Now listen to the 'default parent page' user preference.
  - Fix minor XSS problem in the Admin if some loser puts JavaScript into the title field or alias field or menu text field.
  - Now allow filtering pages by owner, editor, template, or design.  Only for Administrators with Modify any page, or Manage all content permissions.
  - Fix problems with auto-refresh being too fast for some operations.
  - Now auto scroll to the first matched page in a find.
  - Additional editors of a page cannot change the content type. Only owners, or users with the Manage all Content permissions.
  - Fix a problem with the call to GetTabElements.

DesignManager
  - Move the designs tab of the main interface into third position.
  - Implement sorting in edit design.
  - Remove option menus (for now) from templates, stylesheets, and designs tab.
  - Modify the template list functionality in edit-design to allow using keyboard control. Space or + to select an item on the left, and right arrow to move.
  - Modify the edit-design functionality to allow clicking on an attached template or stylesheet to edit it.
  - Generic templates now display a usage string.
  - When creating a new template, associate the new template with the default design.
  - Add reset buttons to the filter forms.
  - No longer check for default content block in a template.
  - Adds the ability to export a template to a file within the assets directory, and to import from the assets directory.
  - If a file exists in the assets/templates directory corresponding to a template name, do not allow in-browser editing.
  - Add bulk actions to allow importing and exporting multiple templates.
  - In the template list, if a file exists for a template... display it in the filename column.
  - Adds the ability to export a stylesheet to a file within the assets directory, and to import from the assets directory.
  - If a file exists in the assets/css directory corresponding to a stylesheet name, do not allow in-browser editing.
  - Add bulk actions to allow importing and exporting multiple stylesheets.
  - In the stylesheet list, if a file exists for a stylesheet display it in the filename column.

News v2.51
  - Minor fix to add category.
  - Removes GetNotificationOutput method.
  - Add a task that runs at least every 15 minutes to detect draft articles... create an alert for this.
  - Add an option to never create alerts about draft News articles.
  - Minor optimizations.
  - Adds postdate as parameters in events.
  - now output template help to Navigator.
  - Adds new 'linked file' type field that allows selecting a file using the filepicker.
  - Changes the default summary and detail templates to support the linked_file field type, and uses {thumbnail_url} and {file_url}.

FileManager v1.6.3
  - Move settings to it's own menu item under Site Admin.
  - Fix minor problem with moving a directory.
  - Minor fix to move file functionality.
  - Adds OnFileDeleted event.
  - Adds 'view raw file' icon in each viewable row.
  - Minor formatting changes in file list.
  - Now display clickable path entries for easier navigation.

Search
  - Convert to store all data using the InnoDB engine.
  - Use transactions for the addwords and deletewords stuff for performance.
  - Fix problem with query and record expiry.

AdminSearch v1.0.3
  - Fixes problem with use of 'Use Admin Search' permission.
  - Now searches for matching strings within templates and stylesheets that are stored as files.
  - Now listens to the HasSearchableContent metod when searching content pages.

ModuleManager
  - Now detect if module_custom directories exist and are populated and warn about this before upgrading a module.
  - Minor string changes.
  - Improvements to error handling in the new versions tab.
  - Write a confirmation form for uninstalling a module that displays the UninstallPreMessage or uses a default.
  - Now don't allow disabling / uninstalling myself.
  - Don't hide the upgrades tab when there are no upgrades, but show the number of upgrades in the tab title instead.
  - Now use HTTPS for requests to ModuleRepository.
  - Trigger a hook before exporting a module to XML.

MicroTiny v2.1
  - New version of the tinymce wysiwyg editor.
  - Adds a mailto plugin.
  - Now use the FilePicker module for a filepicker, required rewriting the cmsms_filepicker tinymce plugin.
  - Enable the title attribute on the image plugin.
  - Now uses PUBLIC_CACHE_LOCATION for cache files instead of hardcoding tmp/cache


Version 2.1.6 - Spanish Wells
----------------------------------
Core - General
  - Now attempt to detect if a template name passed into CmsModule::GetTemplateResource() is already a resource string.
  - endswith is now an accepted function in Smarty templates (fixes typo in security policy).
  - Fixes for CmsNlsOperations when using a language detector.
  - Fixes warnings in useroperations.
  - Fixes problem with cms_selflink dir='up' since 2013.
  - Modifies the OneEleven theme to set the meta referrer attribute for security purposes.
  - Modifies the functionality of the CSRF tokens to be more secure (only set the cookie in one location, only set the session variable from the cookie).
  - Increase Admin users list limit.
  - Reduce time limit for daily version check to 3 seconds.
  - cleanValues in Admin log and List Content.
  - Minor fix to the relative_time plugin.
  - Admin menu item URLs can now be built from the remaining members of the object, if not specified.
  - {content_image} and {content_module} now preserve order properly and support the priority attribute.

  - #11198 - Fixes problem with cms_selflink with aliases that starts with a numeric sign.

Content Manager v1.1.4
  - Fix bulk set-non-cachable functionality.
  - Fix a bug wrt content blocks and the adding flag.

Installation Assistant v1.0.4
  - Adds recommended check for ZipArchive.
  - Improves method of determining a temp directory.

ModuleManager v2.0.5
  - Improves functionality if ModuleRepository is not available.

News v2.50.6
  - Minor fix to editing news articles from the Admin interface.


Version 2.1.5 - High Rock
----------------------------------
Core - General
  - Fix fatal error if an extcss stylesheet was placed in the Admin theme.
  - Another minor fix to clearing cached files.
  - Fixes problems where all files (including dot files) had to be writable before creating a module XML file.
  - Fixes minor notice in user operations.
  - Fixes for namespaced modules.
  - Fixes an issue in CmsLayoutTemplate when creating a template from a type.
  - Fixes an issue where a 404 handler error page would not be rendered correctly if for some reason the route did not specify a page id to load.
  - More fixes to cms_url class.
  - Improve the way page aliases are munged when they are supplied.
  - Improve the error generated when a page alias cannot be generated.
  - Minor fixes to the form_start plugin.
  - Minor fixes to generation of moduleinfo.ini.
  - Fix an error message in the autorefresh JavaScript class.
  - Fix problems that could result in uid=1 becoming inactive, and not a member of other groups when edited by another user.
  - Fix query problem in CmsLayoutStylesheetQuery with Mysql 5.7.

  - #11080 - Parameter $adding in GetContentBlockFieldInput always FALSE.
  - #11093 - Bad error message in jquery.cmsms_autorefresh.js.

Content Manager
  - Improve error handling in Edit Content.
  - Fix a problem with the call to GetTabElements.

Design Manager
  - Fix problem with resetting a template back to factory defaults, or creating a new template from factory defaults.

Module Manager
  - Improve the way modules with dependencies are installed and upgraded. (Got rid of the queue stuff).

AdminSearch
  - Use 'Manage Stylesheets' permission, not 'Modify Stylesheets' when searching stylesheets.

Phar Installer
  - Adds missing 'Manage Stylesheets' permission that would not be created on upgrade from 1.12.



Version 2.1.4 - Freetown
----------------------------------
Core - General
  - Fix to the clear_cached_file() method which should fix problems with module installation.
  - Minor tweak to distributed sample htaccess.txt file.

Phar Installer
  - Fixes issues with respect to hanging on step 7 when suhosin PHP addon was installed.
  - Minor PHP7 Fixes.

Module Manager
  - Fixes problems where all files (including dot files) had to be writable before creating a module XML file.


Version 2.1.3 - Black Point
----------------------------------
Core - General
  - Security fix to prevent HTTP_HOST attacks. Many thanks to I-TRACING (www.i-tracing.com) for reporting it!!
  - Remove stub .htaccess files from subdirectories.
  - Update the included sample htaccess.txt file for security.
  - Fix for endless loop when calculating a page alias in utf-8 environments.
  - Fix for endless loop when calculating a page alias and a page name/title ended with -
  - Fixes a notice on the login page.
  - Optimize LoadContentFromId() to be typesafe, and use default page, if the id passed in is invalid.
  - Fix error condition if there were no default default design, or default page template.
  - Fix problem with system verification.

  - #10825 - Admin-account settings don't remember startpage if you set one
  - #10874 - When creating a page and the title has specific characters, CMSMS stops responding
  - #10910 - content and content_module order incorrect Admin page
  - #10911 - 'Use Admin Search' permission not being used in 2.1.2
  - #10921 - Content Field to Display in Name Column not used

AdminSearch v1.0.1
  - Minor fix to permissions checks.

Navigator v1.0.3
  - Improved exception handling on install

News v2.50.5
  - Fix error condition if no results were returned.

Installation Assistant v1.0.3.1
  - Tweaks to README files.
  - Improved error handling in some circumstances.
  - Fix some PHP7 issues.

FileManager
  - #10871 - Filemanager moving folder


Version 2.1.2 - Andros Town
----------------------------------
Core - General
- Minor fix to missing language string stuff
- Fixes to home page preferences
- API documentation fixes (minor)
- Fixes for ajax_content (the Ajax routine behind the parent selector in edit content) to handle ordering inconsistencies
- Remove die statement in is_email
- Minor fix to the relative_time modifier
- Upgrade CMSMailer to 6.2.14
- Now do a check for E_ALL in the system info

News v2.50.4
- Now all field definitions can be deleted
- Minor fix to default action if no results were returned...

ModuleManager v2.0.2
- Revamp module dependency calculations when installing a module
- Minor fix for some notices in install and upgrade modules
- Minor typo fixes
- Minor fixes for PHP7

MenuManager  v1.50.2
- make sure that uninstall cleans up properly

MicroTiny v2.0.3
- minor template fix
- fixes for stylesheet overrides


Version 2.1.1 - Nicholls Town
----------------------------------
Core - General
- Fix the template compiler so that content blocks can be placed within sub templates and detected with the {include} tag
- Fix minor problem with checksum verification
- Fix to the cms_cache_handler class
- Minor fix to SetAllPageHierarchies()
- Correct location where session was started in frontend displays
- Fix the default option for {content_image}
- Modify the locker to use a beacon if supported, when unlocking
- Fix missing permissions when a 1.12 site was upgraded (installation assistant)

CMSContentmanager v1.1
- Minor template changes in edit content wrt. locking
- Adds ability to clear content locks (Admins can clear all locks, regular users can only clear their locks)
- Enhancements to the action to bulk set designs to show only page templates by default, but to optionally show more

DesignManager v1.1.1
- Minor template changes in edit content wrt. locking
- Adds ability to clear template and CSS locks (Admins can clear all locks, regular users can only clear their locks)


Version 2.1 - Bahamas
----------------------------------
Core - General
- Minor performance tweaks to sample htaccess.txt
- Minor fix to the ProcessTemplateFromDatabase module API method.
- Improvements and re-factor the way headers are sent wrt caching
- Add a new method to the ModuleOperations class to allow a module to be within a namespace.
- Enhances the Group class.
- Enhancements and fixes to the cms_url class.
- Modified the $mod->smarty reference to be smarter... it is now deprecated.
- Fixes issue with https requests (#10697)
- Modifies The CmsLayoutTemplate class and CmsLayoutTemplateQuery to allow filtering on listable or non listable
  or setting a template as listable (default) or non listable
- Fixes a problem with styling of the login form if tasks must be run AND a module needs upgrading.
- Fixes to the cloning of templates in CmsLayoutTemplate
- Fixes problem with SetAllHierarchyPositions that cleared the entire cache instead of only the necessary part of it.
- Adds the unloadCancel handler to the lockManager jQuery plugin.
- Moves version.php and include.php inside the lib directory so that they are easier to protect from unwanted direct access.
- Fixes to page alias tests when manually entering a page alias.
- Missing language strings are no longer output to Admin log, but to the debug log.
- Requests for modules that are not installed/enabled, or for invalid actions will now result in 404 errors.
- Fixed problem where restricted content editors could implicitly change the page alias.
- Improvements to the system information page, particularly the bbcode output.
- cms_init_editor, form_start, and cms_action_url plugins are no longer cachable.
- Adds the 'adminonly' option to the {content}, {content_image}, and {content_module} tags to allow only members of the 'Admin' group to manipulate the values of that block.
- Add a trivial check to the sitedown message to make sure that it is not empty.
- Minor fixes for PHP 7

MicroTiny v2.0.2
- Now add page hierarchy to autocomplete text when using the linker.
- Now use $smarty->CreateTemplate for clarity when compling the config template
- Now explicitly assign urls so that they do not get caced by smarty.
- Slightly tweak the default HTML content in the example tab.
- Updated tinymce to the latest 4.2.7 version, included the 'paste' plugin, and turned on 'paste_as_text'.
- Added the ability to enable the table plugin, now distribute the table plugin

CMSContentManager v1.0.2
- Fix problem with pagedefault metadata.
- Fixes for handling no listable templates for a design
- More work with locking.  With only one exception all locking and unlocking is initiated via javascript.
- Minor fix to copycontent

DesignManager v1.1
- Adds ability to toggle the listability of a template.
- Fixes problems with lost changes if there is a syntax error in the template.
- More work with locking.  With only one exception all locking and unlocking is initiated via JavaScript.

News v2.50.3
- Fixes minor issue with pagination in News Admin console.
- Fix errors in the default form template.
- Fixed URL to long issues on redirection after adding/editing article.

Search v1.50.2
- Minor PHP7 fixes.

ModuleManager 2.0.1
- Minor fix to which modules could be uninstalled and deactivated.


Version 2.0.1.1 - Adelaide
----------------------------------
Fix to the $this->smarty magic method in the module class to resolve to the action template or the global Smarty.


Version 2.0.1 - Adelaide
----------------------------------
Core - General
- Improved optimization in ContentOperations::SetAllHierarchyPositions.
- Fixed return type of ContentOperations::GetPageIdFromAlias().
- Help for the {cms_html_options} plugin.
- Change the default page template to use {Navigator}.
- Explicitly force $smarty->fetch() to create a new template, and therefore a new scope. Keep track of scopes in a stack.
- Change prototype to CMSModule::DoActionBase to pass in the current template object.
- SITENAME is now assigned as a Smarty global.
  (fixes some variable scope issues)
- Fix problem with changing content types.
- Fix problem with CmsLayoutTemplateQuery wrt the editable option, that generated an SQL error.
  (resolves problems where people have additional editor access to templates, but no other design manager permissions).
- Fix minor JavaScript errors in plugin (error checking).
- Fix problems where If assign was passed to a {content} tag, do not pass it to the module on a mact request.
- Implements the completely forgotten 403 exception stuff and the IsPermitted content method.
- Improve the cmsms_dirtyform jQuery plugin to support the unload handler and an onUnload callback.
- Fixed the jQuery page selector plugin when the current value points to an invalid page,  and fixes for asynchronous Ajax.
- Adds a globally available cms_busy() JavaScript function for the Admin.
- Fix problem with html entitites in email addresses in user settings.
- Fix problem with {content cssname=string} and quotes.
- Changed cmsms plugins to use $smarty->getTemplateVars() instead of $smarty->get_template_vars() because of scope issues.
- Minor fix to {form_start} when not used in a module.
- Improved error handling for cms_stylesheet.  Now will generate a message in the Admin log, and an html comment on error.
- Module actions can now 'return' their results
-

CMSContentManager v1.0.1
- Fixes for changing content types.
- Adds a title for some contextual help if a template is not available for a content item.
- Clear any locks if an exception occurred while submitting a content item.
- Improvements to error handling with apply and preview.
- Content list now refreshes every 30 seconds to display up-to-date lock information.

DesignManager v1.0.1
- Clear the type_default flag when copying a template.
- Clear any locks if an exception occurred while submitting a template.
- Clear any locks if an exception occurred while submitting a stylesheet.
- Template and stylesheet lists now refresh every 30 seconds to display up-to-date lock information.
- Fixes for design exporting templates with protocol-less URLs in them.

MenuManager v1.50.1
- Changes to createSmartyTemplate calls (now use $smarty->get_template_parent()).

Navigator v1.0.1
- Changes to createSmartyTemplate calls (now use $smarty->get_template_parent()).
- Minor change to the help ($node->children_exist)

Search v1.50.1
- Changes to createSmartyTemplate calls (now use $smarty->get_template_parent()).

News v2.50.1
- Changes to createSmartyTemplate calls (now use $smarty->get_template_parent()).
- Fix problem with custom fields not being assigned in fesubmit.
- Fix minor problem with html entities in the detail template parameter.

FileManager v1.5.1
- Fix minor problem with Smarty scope in the drop zone.


Version 2.0 - Australia
----------------------------------
+++ Initial Release +++
