Symphony 2.1 was labeled Symphony 2.0.8 throughout the Release Candidate period. The version number was bumped before release to align with release procedure plans moving forward.

New Features

  • Switched to SHA1() instead of MD5() for user passwords
  • Added version display to the UI
  • Enabled checkbox output grouping
  • Updated jQuery to 1.4.2

Bug Fixes

  • #104: Session::gc() will, in addition to removing expired sessions, remove any session that is empty
  • #113: Added a fallback in the Lang::createFilename() function
  • #172: Dynamic XML Data Sources will no longer encode parameter values
  • #226: Multiple filters Errors in response
  • #228: Improved robustness of General::getPostData()
  • #229: Fix bug when sorting a section with a filter applied
  • #235: Default timezone set earlier in the code to avoid problems with systems that have no default timezone setting
  • #238: Fixed frontend file upload
  • #245: Extensions cannot be uninstalled or disabled if any Event, Data Source or Field they provide is in use.
  • #246: Fixed blank admin page issue
  • #252: Updater will remove the old public:maintenance_mode setting
  • #253: Add pagestablenest_children to config on Update
  • #254: Ensure script has a src attribute
  • #260: Fixed author field. Incorrect number of variables where being passed into the Author() constructor.
  • #261: If curl is not available, and sockets are used instead, the URL scheme is not provided
  • #265: Removed unneeded AuthorManager instance
  • #270: Tracking latest version of Markdown extension (1.11)
  • #276: Fixed trailing slash issue
  • #280: Fixed entry delegate triggering for ‘With Selected’ menu
  • #281: Default page template output’s $page-title, preventing XSLT errors on new pages
  • #283: Fixed query counting and logging
  • #286: Allow Headers in Gateway class
  • #289: Fixed faulty exception handling in section DS
  • #291: Field::checkPostFieldData() uses the empty() function instead of strlen()
  • #292: filesize() throws errors if the file doesn’t exists, or cannot be read
  • #293: When removing a file from an upload field, and not replacing it with a new file, the old file is correctly deleted
  • #294: Initialising Datasource::_dependencies to an array
  • #296: Params array passed by reference into FrontendParamsPostResolve delegate, which allows extensions to add/edit the contents
  • #297: Added ‘©’ (copyright character) to list of symbol transliterations
  • #299: Fix for DSs with no included elements
  • Show quoted text -
  • Swapped the arguments being passed to trigger_error()
  • Set appendFormattedElement()’s $mode argument default to null
  • Accommodated ‘rand’ dsParamORDER for backwards compatibility
  • Manager::about() will check that the about function of formatter/datasource/event and be called before attempting to call it
  • Made Lang::createFileName() a little stricter to avoid problems on some servers
  • Fixed some warnings and slash issue when redirecting
  • $parent_link_suffix is always a GET parameter and never needs a trailing slash
  • Accommodate super-long select options
  • Fix non working redirect when submitting multiple entries
  • Fixed the error caused by the checkRequirement function in installer being ‘public’
  • Fixed Navigation DS SQL. It was not returning distinct results, which resulted in duplicate page elements in XML
  • Updated the Administration::saveConfig() function so it accesses the Configuration object correctly
  • Fixed constants in Gateway class
  • Removing error suppression from is_file calls
  • Fixed incorrect use of Field::processRawFieldData()
  • Properly trigger the Session::destroy function
  • Prevent writing empty Sessions
  • Updated GC function so it can better identify empty sessions for deletion
  • Optimisation: Fixed major bottle-neck. In default install, this cuts down script processing time by 30% and eliminates approximately 11000 unnecessary calls to the PHP pow() function
  • Optimisation: Prevent Extension Manager from making unnecessary queries
  • Optimisation: Extension query reductions

Minor Updates

  • Code cleanup
  • Added missing calls to the translation function
  • Made file type iteration index independent
  • Eliminated deprecated reference assignments
  • Remove unnecessary requires from Updater
  • Use jQuery Callbacks for AJAX request
  • Removed ‘role_id’ from the author table schema
  • Will not use custom session handler read/write code when session.auto_start is on
  • Removed the ‘calendar’ attribute of the Date field
  • Made the default for ‘displayeventxmlinsource’ ‘no’ in the installer
  • Made instance of Log class static in Symphony
  • Improved the probability that the Session garbage collection will trigger
  • Remove General::repeatStr function
  • Refactored precision_timer() to utilise PHP5 functionality
  • Use shorthand array_push() to reduce function overhead
  • Overwrote appendFormattedElement to make sure checkbox values are not translated on output
  • Trim section delete confirmation message
  • Removed the GeneralExtended class from installer
  • Moved cache preventing headers from bundle.php to index.php. Allows scripts to include the Symphony engine without getting unwanted headers set
  • Added some better exception handling to the EntryManager::edit() function
  • Ability for Cookies to be HttpOnly
  • Improved GC REGEX

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details