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
PagePostDelete
delegate - Tracking the latest submodule releases
- #1333 - Removal of unused and potentially insecure
General::generatePassword
function - #1329 - Vertical drawer styling fixes
- #1328 - Remove references to
AppendElementBelowView
delegate - #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-wrap
rule in addition toword-wrap
for 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
id
orsystem: 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::validate
function 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-page
parameter 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
JSON
class support for PHP 5.2 compatibility - Pass
$param_pool
by reference in theiDatasource
interface - 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_state
setting to Duplicator which will be passed to Collapsible - The
AddCustomPreferenceFieldsets
delegate now passes$errors
making 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
.invalid
styling 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
getExampleFormMarkup
output - #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
input
andblur
events 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
403
page 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::standardizeDate
now 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
.frame
class - The
FieldManager
,SectionManager
andPageManager
have 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: SAMEORIGIN
header 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
.invalid
state for tabs, improved robustness of tab styling - Tweaks to the Drawer for niceness and neatness
- Fix
Entry::setDataFromPost
function 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
?debug
as plain XML with?debug=raw
- #15 - Fixed indentation issues when viewing the XML
- #12 - Add Recipes support
- Move
jit-trusted-sites
file from/manifest
to/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,
EntryPostDelete
is 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 String
is 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::listDirStructure
andGeneral::listStructure
functions - #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
.triple
class - #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::sanitize
function 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::fetchPageTypes
now only returns unique page types- New
General::ensureType
function that ensures parameters are of expected types. Currently implemented in theWidget
class - 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
,isindex
andframe
fromXMLElement
class. These are deprecated elements and shouldn't be in use - Documentation and general backend copy updates
- #1080 -
Widget::wrapFormElementWithError
has been renamed toWidget::Error
for brevity. The old function is still available until a later release, but it recommended to useWidget::Error
in future - #989 - The
Delete
delegate has been renamed toEntryPreDelete
for consistency - The
.compact
class has been deprecated, use.two.columns
and.column
classes 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/templates
folder - #840, #759 - Two new plugin's,
TimeAgo
andNotify
are 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)
XMLElement
now 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
@placeholder
attribute 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
fixed
when 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
ExtensionManager
handle the namespace forextension.meta.xml
files - 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
PageManager
class - Authors DS no longer queries for
default_area
if 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::processRawFieldData
function to return a$message
(breaks backwards compatibility) - #799 - UI: Headline Markup
- #795 - Add extra HTTP verb support to the Gateway class,
POST
,GET
,PUT
andDELETE
are all supported - #794 - Added
DataSourcePreExecute
delegate - #776, #616 - Add
text-overflow
to all<th>
elements on the entries table - #774 - A
PageManager
class now exists to provide an interface to Pages (and their Page Types). All 'file' based Managers now implement aFileResource
interface - #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
$limit
and$start
do not work - #722 - The
SectionManager
andFieldManager
fetch
method now supports an array of$ids
for the first parameter - #711 - Abstract REGEX filtering to a dedicated
Field->buildRegexSQL
function - #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
FrontendPage
class now hassetEnv
which 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::validate
should validate timestamps too - #918 - File Upload as first Column does not link when no file is uploaded
- #916 - Fix broken regular expression in the
Session
class - #909 -
General::listStructure
parameter$strip_root
is 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-path
param 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::realiseDirectory
is no longer subject toumask
nuances - #749 - Reset
entry_id
tonull
when 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_encoding
andruntime_character_set_alter
have 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.x
behavior. - Documentation updates, including #754, #824
- #783 - Deprecated
DateTimeObj->getTimeAgo()
- Removed
AddElementToFooter
delegate. - Removal of a number of deprecated and redundant properties and functions, dev notes #1 has the details