These release notes are a work in progress and will be updated regularly through the development cycle, things may change from time to time. Symphony 2.3 supports updating from any 2.2.x release.
This is a major release and may break backwards compatibility with existing extensions. It is recommended that extension developers read the Migration Guide for 2.3 and look out for Dev Notes released by the team to help migrate their extensions to this new release.
- #1321 - Add
PagePostDeletedelegate - Tracking the latest submodule releases
- #1333 - Removal of unused and potentially insecure
General::generatePasswordfunction - #1329 - Vertical drawer styling fixes
- #1328 - Remove references to
AppendElementBelowViewdelegate - #1325 - Fix Utility editor styling
- #1322 - The taglist field now respects the validator setting
- #1320 - Fix styling issue for some fields in the Section Editor
- #1318 - Fix private error on the installer
- #1317 - When changing datasource sources, reinitialise the output parameter naming
- #1316 - Use the updated
Configuration->write()function instead of the deprecatedAdministration::instance()->saveConfig() - #1314 - Only Log message when a language was selected but it could not be found
- Fix compatibility issue between Publish Filtering and the publish pages when sorting
- Process all fields in the Section Editor to get all the errors
- Fix missing sort options setting on the Select Box field
- Update invalid styling
- Add
overflow-wraprule in addition toword-wrapfor future proofing
- #1302 - A new delegate, DataSourcePostExecute to match DataSourcePreExcecute is now available
- #1314 - Fix Dynamic XML namespaces not appearing the Datasource Editor
- #1313 - The Author's language can override the site language once again
- #1307 - Alerts are now ordered by Severity
- #1305 - Fix Notify height crossbrowser (Firefox 12 was too high)
- #1303 - Fix duplicate queries from occurring when filtering on
idorsystem: date - #1299 - Fix error when Datasource did not have an Author
- #1293 - Fix placement of the error message when a field had a duplicate handle
- #1291 - Fix 'Save' access key on the System Preferences page
- #1290 - Fix error when datasource had no included elements
- #1289 - Fix localisation strings
- #1284 - The
DateTimeObj::validatefunction will now attempt to validate the date according to Symphony's region settings - #1280 - Improved the responsiveness of collapsible animations, especially for Safari
- #1279 - Fix regression in the XSLT Utilities screen introduced by Symphony 2.2.5 when saving a utility twice that includes encoded characters
- #1277 - Fix updater not parsing RC rules correctly
- #1274 - Using the With Apply menu on a field that was added after the section was created (and entries existed) would of resulted in an error, this has been resolved
- #1272 - Fix the
$root-pageparameter to be consistent with2.2.x - #1262 - The TimeAgo plugin will now compare in the user's timezone so that it makes more sense
- Fix
JSONclass support for PHP 5.2 compatibility - Pass
$param_poolby reference in theiDatasourceinterface - Ensure that user information is available via
Symphony.Context.get('user') - Make sure Collapsible's namespace for local storage works across backend areas
- Add
save_statesetting to Duplicator which will be passed to Collapsible - The
AddCustomPreferenceFieldsetsdelegate now passes$errorsmaking it possible to do validation on the Preferences page - Deleting datasources or events from the Datasource/Event Index pages now remove them from the pages they were attached to
- Position help text in
.invalidstyling correctly - Only parse language files that end in
.php - Consistent CSS vendor prefixes for FF4, Safari 4, Chrome, IE9 support
- #1270 - Correct the Checkbox's
getExampleFormMarkupoutput - #1267 - Fix installer not setting a default timezone
- #1266 - Don't sort extensions if there are no extensions
- #1264 - Fix PHP5.2 compatibility
- #1258 - Make duplicators listen for
inputandblurevents when updating the header text - #1254 - Add missing namespaces from the javascript plugins
- #1253, #1251 - Make javascript translations more robust
- Fix regression in the Datasource Editor select to show correctly show 'Field Name (Input)' again
- Update fields to use
FieldManager::saveSettings(), a preemptive update for Symphony 2.4 - Fix the default Forbidden page (when no
403page was set in Symphony) - Add sanitizing to
/ajax/translate/ - Tracking latest JIT Image Manipulation and XSS Filter extensions
- #1241 - Fix taglist output parameter
- #1240 - Allow the installer to detect the server timezone instead of always defaulting to GMT
- #1237 - Fix installing extensions on Install if they don't exist
- #1227 - Pagination placement is now correctly after the entries table, not in the header
- #1225 - Fix Symphony error when an invalid date was passed to
DateTimeObj::format - #1224 -
DateTimeObj::standardizeDatenow correctly translates names to English - #1214 - Add Symphony version to the extensions page
- #1211 - Fix underline issue on the Upload field
- #1205 - General alignment and colour improvements for the
.frameclass - The
FieldManager,SectionManagerandPageManagerhave some shiny new functions that attempt to consolidate bespoke queries used throughout Symphony. This is part of a long term to let managers take care of abstraction - Improved backwards compatibility with the Duplicator plugin
- Events created under Symphony 2.3 were not returning their XML, this has now been fixed
- Sanitize
$_GET['symphony-page]for authenticated XSS protection - Add
X-Frame-Options: SAMEORIGINheader as an anti clickjacking protection measure - Fix the reporting of errors for the Date field
- Images are now aligned to the middle of a table cell
- Add
.invalidstate for tabs, improved robustness of tab styling - Tweaks to the Drawer for niceness and neatness
- Fix
Entry::setDataFromPostfunction recording errors - Various CSS fixes and tweaks throughout the system including the Installer, legends, small screen mode and consistent vendor prefixes
- Documentation and copy updates
A big thanks to all those who participated in the Symphony 2.3 Hackathon event and contributed with fixes and testing. Your contributions and testing help make Symphony a better product for us all and the team is very thankful!
- #28 - Dot notation parameters elements now correctly highlight
- #23 - Fix XPath autofocus bug that often occurred in Chrome
- #19 - Added ability to view
?debugas plain XML with?debug=raw - #15 - Fixed indentation issues when viewing the XML
- #12 - Add Recipes support
- Move
jit-trusted-sitesfile from/manifestto/workspace/jit-image-manipulation - Improve compatibility with other servers other than Apache
- Update HTML Purifier to 4.4.0
- Update PHP Markdown to 1.2.5
- #16 - Ensure options are actually sorted by recency as the help text suggests
- When required, force users to select an option instead of defaulting to the first option.
- #1 - Fix XSS Filter failing on Upload fields
- #1054 - The Providers concept is now alive in Symphony. We are initially supporting new Datasource types, starting with the Remote Datasource. More information to come soon
- #991 - The Author field can now output parameters (the Author ID)
- #989 - A new delegate,
EntryPostDeleteis now available - #896 - When Select Box fields are required, force users to select an option instead of defaulting to the first option
- #728 - A new page,
/ajax/handle/?string=Your Stringis available to create handles using Symphony from Javacript - Complete user interface update across the entire backend (errors, forms, alerts and more!)
- CSS3 prefixes standardized throughout the stylesheets, fallback background colors introduced for better compatibility with IE and Opera
- Add
not:filtering for the System: ID on Section Datasources.
- #1193 - Update jQuery to 1.7.2
- #1180 - Correctly parse datasource dependencies when multiple parameters are used
- #1169 - Make directory output consistent with/without trailing slashes in the
General::listDirStructureandGeneral::listStructurefunctions - #1155 - New 'structure' navigation items will be added before Blueprints & System
- #1075 - Add accessors for
AdministrationPage->_context(getContext) andFrontendPage->_param(Params). It is recommended to use these as the variables will become private in the future - #1058 - Use page alerts in the backend when a user attempts to create an entry in a section that has no fields
- #1053 - Allow the '.' in multiple parameters for the /data/params XML
- #1039 - Some sanitising improvements for Section/Author/Page Managers
- #1025 - Show an appropriately worded message when there is no page as request, and no page name is returned for that page.
- #1023 - Improved publish pagination
- #1011 - Installer: permission errors silently fail
- #1000 - Ensure that all values passed to XMLElement, either via constructor or setValue are stored as a string
- #999 - Fix console error for the Pickable plugin
- #995 - Sanitize Select Box values for the Datasource Filter.
- #990 - Re initialize the Tags plugin when duplicators are created
- #986 - Fix UNIQUE KEY on the Author field to work correctly with 'Allow Multiple'
- #977 - Sort data is now stored on the filesystem (Symphony main config file)
- #958 - Make Selectable Windows/Unix compatible
- #939 - Fix odd padding/margin for
.tripleclass - #907 - Revert 'x' icon to Remove Item text in duplicators
- #872 - Partial fix for Symphony breaking on some URL's. This is about as far as we'll go considering it is an edge case and the proposed solution negatively affects performance.
- #792 - Update Mutex class to catch Exceptions. Should prevent issues that were randomly occuring with Dynamic XML Datasources
- #723 - Begin cleaning up datasource include files to use the new Datasource classes (ongoing work)
- #693 - Add DATETIME column for Date fields, drop local/gmt fields
- The
General::sanitizefunction now won't double encode strings if they are already encoded - Improve error message when the Dynamic DS fails to acquire a lock
- Fix the first page being shown as a breadcrumb item when creating new page with no parent
- Fix redirect after new Page creation
- Fix the
PageManager::delete()function. This would previously throw MySQL errors for an unknown column - Fix error with the MySQL
__error()function PageManager::fetchPageTypesnow only returns unique page types- New
General::ensureTypefunction that ensures parameters are of expected types. Currently implemented in theWidgetclass - Remove legacy code from the Symphony Login page (Beta 5 gems)
- Update raw SQL queries to use their relevant Manager functions where possible
- Remove
basefont,isindexandframefromXMLElementclass. These are deprecated elements and shouldn't be in use - Documentation and general backend copy updates
- #1080 -
Widget::wrapFormElementWithErrorhas been renamed toWidget::Errorfor brevity. The old function is still available until a later release, but it recommended to useWidget::Errorin future - #989 - The
Deletedelegate has been renamed toEntryPreDeletefor consistency - The
.compactclass has been deprecated, use.two.columnsand.columnclasses to achieve the same result moving forward
- #868 - Templates' naming conventions
- #866 - All templates can now be overridden by placing the template in the
/workspace/templatesfolder - #840, #759 - Two new plugin's,
TimeAgoandNotifyare available for Javascript developers. These abstract relative time functionality (eg. an hour ago) and allow a easy way to create Symphony Alerts with Javascript - #739 - Introduction of two new delegates, PostQueryExecution and QueryExcecutionError which fire when SQL queries have been executed (and when they fail)
XMLElementnow two new methods,getChild(pos)andgetChildByName(name, pos)
- #979 - Duplicate alert bars after successfully saving
- #976 - Sections reordering AJAX fails with 500 error
- #972 - Improve setting response codes for when Apache is run as CGI instead of a module
- #963 - Fix grammatical error on the installer page
- #962 - Fix taglist being obscured in the Publish area
- #957 - Question mark in ds param output when creating new datasource
- #950 - Show default cursor on the top level navigation instead of the 'hand'
- #947 - Use the
@placeholderattribute to improve usability on the Datasource and Page Editors - #946 - Utilities list in editor uses old blue highlight
- #945 - Make the Alert hyperlinks consistent case
- #938 - Only show the Edit Section button for Developers
- #937 - Add constraint to ensure that Author's email addresses are unique
- #932 - Table layout is now only set to
fixedwhen necessary. Partially reverts Issue 914 - #931 - Ensure success Alert's only appear if there are no Error Alerts
- #929 - Implement Breadcrumbs for both the Pages index and editor
- #927 - Better error handling when field settings cannot be retrieved
- #905 - Add white navigation highlighting
- #731 - Simpler Publish Label implementation
- #724 - Automatically open collapsed fields that have errors
- Make the
ExtensionManagerhandle the namespace forextension.meta.xmlfiles - If multiple extensions subscribe to the same delegate these will now be called in alphabetical order instead of install order.
- SQL Injection prevention for the
PageManagerclass - Authors DS no longer queries for
default_areaif it has not been set - Various documentation updates
Complete UI Overhaul including dedicated pages for Datasources, Events and Utilities, Breadcrumbs to aid usability, the removal of the Footer.
- #879 - Allow
Field::processRawFieldDatafunction to return a$message(breaks backwards compatibility) - #799 - UI: Headline Markup
- #795 - Add extra HTTP verb support to the Gateway class,
POST,GET,PUTandDELETEare all supported - #794 - Added
DataSourcePreExecutedelegate - #776, #616 - Add
text-overflowto all<th>elements on the entries table - #774 - A
PageManagerclass now exists to provide an interface to Pages (and their Page Types). All 'file' based Managers now implement aFileResourceinterface - #761 - The Checkbox field now is available as an Output Parameter
- #759 - A page can now have multiple alerts
- #731 - Core fields now have a Publish Label setting. This is a cosmetic label that is only shown in the Publish area to allow a Field's name to change without having to update all datasources and application logic.
- #728 - Datasources now output multiple params in a new syntax,
$ds-handle.field-name. The old syntax is still supported for the immediate future for backwards compatibility. - #727 -
AuthorManager::fetchByID$limitand$startdo not work - #722 - The
SectionManagerandFieldManagerfetchmethod now supports an array of$idsfor the first parameter - #711 - Abstract REGEX filtering to a dedicated
Field->buildRegexSQLfunction - #695 - The Dynamic XML Datasource can now consume JSON sources.
- #673 - Update jQuery to 1.7.1
- #622 - The Installer and Updater have been streamlined and updated. Extensions are now installed during installation, localisation is improved and the updater logic is cleaner.
- All Javascript errors that occur on the backend are now logged to the Symphony log using
window.onerror - The
FrontendPageclass now hassetEnvwhich allows the environment to be updated by extensions - Two new Symphony accessors,
Symphony::Log()andSymphony::Profiler()are now available. Direct access to these variables is now private - Navigation DS is no more efficient by only querying for columns it uses and checks to see if a page has children
- Translations are now organised in a more performant way by only using regular expression where required (breaks backwards compatibility)
- #923 -
DateTimeObj::validateshould validate timestamps too - #918 - File Upload as first Column does not link when no file is uploaded
- #916 - Fix broken regular expression in the
Sessionclass - #909 -
General::listStructureparameter$strip_rootis broken - #895 - Minor bug when running event with
expect-multiple - #841 - Publish page filter '*' results in a Fatal Error
- #830 - Add numero and degree symbols to transliterations
- #826 - The
$current-pathparam now no longer includes the query string - #808 - Invert order of the
<title>elements - #769 - Fix indentation of Dynamic Datasources to be consistent
- #751 -
General::realiseDirectoryis no longer subject toumasknuances - #749 - Reset
entry_idtonullwhen using Event's Allow Multiple filter. This allows an event to contain new and existing entries - #745 - Configuration cleanup,
allow_page_subscription,strict_error_handling,character_set,character_encodingandruntime_character_set_alterhave been removed - #743 - All core fields now explicitly set their table collation/character set to be UTF-8
- #741 - Don't sanitize the value before creating a handle when grouping on the Input field.
- #737 - Correct inconsistent styling for select box field under section editor
- #700 - Remove help cursor when hovering over captions.
- Hiding a Section will no longer result in Author's seeing a Forbidden page when they attempt to view a entry from that Section. This reverts back to
2.1.xbehavior. - Documentation updates, including #754, #824
- #783 - Deprecated
DateTimeObj->getTimeAgo() - Removed
AddElementToFooterdelegate. - Removal of a number of deprecated and redundant properties and functions, dev notes #1 has the details