Symphony 2.1.0
Major security, stability, and speed updates.
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 theempty()
function instead ofstrlen()
- #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 tonull
- 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
toindex.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
Contributors









