Try the beta version of the new SilverStripe documentation

For the next 2 weeks you can use the new documentation website and give us your feedback.


2.4.0-rc2 (2010-04-30)


  • Improved permission handling in the "Security" section: "Access to all CMS sections" not automatically checks all inherited permissions
  • Fixed usage of file, image and link selection in the CMS with multilingual sites (Translatable)
  • Fixed core unit tests for PostgreSQL
  • Fixed a core bug in PostgreSQL concerning the ordering and grouping of DataObjectSet results
  • Allowing the new "SiteConfig" interface to save TinyMCE content, enabling easier usage of default content which doesn't belong to a single page
  • Updated to accurately reflect the current API in different releases, with a nightly rebuild to keep it that way


Features and Enhancements

  • [rev:103730] use FileSystem class to create cache directory to unsure the right permissions are set
  • [rev:103710] MemberLoginForm::performLogin() now uses the authenticator_class variable set in subclasses of MemberLoginForm, without having to overload performLogin()
  • [rev:103708] create cache directory when it does not exist before running the cache build test
  • [rev:103581] Added i18n::set_default_locale() to set standard locale (which is different from "current locale" retrieved through i18n::get_locale())
  • [rev:103466] make the getTree ajax call more generic so it get local from its containing form, rather than hard-coded "Form_EditForm_Locale" cos the field is not only used in "EditForm"
  • [rev:103465] to make the FileIFrameField and TreeSelectionField easy to use in CMS with Translatable on.
  • [rev:103328] Automatically checking all "CMS section" checkboxes in PermissionCheckboxSetField.js when "Access to all CMS interfaces" is selected. Saving these permissions individually also resolves certain edge cases like #5438.
  • [rev:103250] added tests for checking the change password functionality, including the resulting redirection (from #5420)
  • [rev:103229] allow ChangePasswordForm to redirect to BackURL (from #5420)
  • [rev:103198] allow onAfterPublish and onBeforePublish handlers directly on Page classes (#5112)
  • [rev:103047] allow to check for any changed fields on the DataObject, this is expected behaviour when isChanged function is called without parameters (#5421, patch by walec51)
  • [rev:102899] added language (Ticket #5390)

API Changes

  • [rev:103792] changed the modulus offset to 1 to correctly order sets


  • [rev:103803] Rebuilding test database for postgresql in SearchFormTest and TranslatableSearchFormTest to avoid stale index information in the database
  • [rev:103745] static publisher for a site that resides in a subfolder of webroot
  • [rev:103734] Fix linkCount .js in AssetAdmin deleteRecord (ticket #5486)
  • [rev:103706] Use correct quoting for BrokenLinksReport (ticket #5474)
  • [rev:103674] #5485 PermissionCheckboxSetField javascript would always uncheck all CMSACCESS* permission checkboxes on initialize event
  • [rev:103620] Fixed ordering by aggregate columns for DataObject::get() calls with joins.
  • [rev:103613] Fixed unlimitedRowCount() for grouped queries
  • [rev:103612] Ensure that group by of many-many queries with extraFields is set correctly.
  • [rev:103591] ModelAsController test failed for projects which do not support nested urls. This fix stores the original configuration and enables 'nested-urls' at the beginning of the tests and reset the state in tearDown.
  • [rev:103588] #5362: Fixed duplicate removal on DataObject:get() with join argument for all databases.
  • [rev:103582] Choosing i18n::default_locale() in Member->populateDefaults() instead of "current locale". This fixes a bug where a new member created through admin/security automatically "inherits" the current locale settings of the admin creating it.
  • [rev:103552] CSSContentParser now reports better errors by using simplexml_load_string() instead of SimpleXMLElement directly
  • [rev:103519] Prevent duplicate HTML IDs in ModelAdmin
  • [rev:103518] Fixed redirection in PageCommentInterface to use Link() instead of URLSegment (fixes 4200, thanks ktauber)
  • [rev:103461] Renamed Nested URLs are automatically redirected to their new location with 301 HTTP status code in ModelAsController/ContentController (fixes #5393, thanks cbarberis)
  • [rev:103451] Fixed CurrencyField->jsValidation() regex escaping (fixes #5462, thanks mobiusnz)
  • [rev:103450] DateField with setConfig('dmyfields') now validates TRUE for empty values (fixes #5458)
  • [rev:103448] Allow EDIT_SITECONFIG permission selection in admin/security (fixes #5459)
  • [rev:103341] Don't show error when adding default SiteConfig records after upgrading a site.
  • [rev:103336] Using try/catch in MemberTableField->saveComplexTableField() similiar to parent implementation, which means trying to save a Member duplicate doesn't end up in a fatal error (fixes #5444)
  • [rev:103255] static publishing now uses the last non-null theme, OR the value defined in StaticPublisher::static_publisher_theme.
  • [rev:103240] r101093 broke casting of values from the failover object. Add lookup to the failover for casting info, and add test
  • [rev:103226] made the invalid password message translatable; disallow new blank password (as it makes it impossible to login); Member::checkPassword now returns ValidationResult - handle that properly (#5420, patch submitted by walec51)
  • [rev:103214] the decorator was not completely removed, which caused trouble for tests running later in the same batch
  • [rev:103183] default sort column now quoted
  • [rev:103182] default sort column now quoted
  • [rev:103127] realtime publishing now enabled by default
  • [rev:103099] Only replace double slashes in SS_HTTPRequest->__construct() for relative- its a failsafe against wrongly formatted URLs like 'admin//assets' instead of 'admin/assets', but breaks absolute URLs with 'http://' prefix
  • [rev:103092] disallow numeric actions - numeric array indexes are incorrectly picked up as allowed actions (#5331)
  • [rev:103083] make the javascript-producing functions behave in the same way. Now they will return a javascript snippet and the caller is responsible for adding it to a FormResponse. Removes the duplication in AJAX response which happened when FormResponse::add has been used before the call to JS helper functions (#5359)
  • [rev:103037] correct mollom field mapping
  • [rev:103012] added optional separator for http_build_query in HTTP:setGetVar(). this fixes sorting columns in ModelAdmin (ticket #5325).
  • [rev:102730] Fixing RquestHandler->checkAccessAction() on PHP 5.2 - ReflectionMethod->class returns inconsisent results in older PHP versions. (see r102003)
  • [rev:102712] Fixed CTF sorting in ModelAdmin results (was failing because of missing 'ResultAssembly' GET parameters
  • [rev:102686] Float should always be not null and default 0 in the database
  • [rev:102545] Using i18n::get_locale() in ContentController->ContentLocale() to ensure the correct locale can be used in templates withouth Translatable enabled (broken in r97207, thanks DesignCity) (from r102544)
  • [rev:102460] #5316 Float and Double should never try to save NULL as the "null" value
  • [rev:102436] #5320 ManyManyComplexTableField::getQuery() now uses T-SQL compatible syntax CASE WHEN instead of IF THEN which works in multiple databases as well
  • [rev:102386] delete from published site never calls canDeleteFromLive(). (via marcus #5364)
  • [rev:102320] fixed invalid HTML output from page comments template
  • [rev:102300] SSViewer now allows cli to do a flush on non-dev environments
  • [rev:102265] Fix Salad tests
  • [rev:102237] exchanged MySQL CONCAT function with ANSI compliant operator
  • [rev:102160] allow HTMLEditorFields to save in SiteConfig, fixes #5246
  • [rev:102156] fallback to the standard authenticator before throwing user_error as in some cases auth method is not passed back to the login form
  • [rev:102094] Fixed bug with SiteTree::onBeforeWrite() that broke subsites.
  • [rev:102084] #5343: Call DataObject::onBeforeWrite only once for SiteTree
  • [rev:102081] #5337: Allow decoration of DataObject
  • [rev:102074] Fixed SiteTree::page_type_classes() to exclude 'SiteTree' even if on array position 0 - slight difference in return values from Postgres to MySQL (fixes #5336)
  • [rev:102072] Logging in with an invalid email returns no error message (fixes #5332, thanks ajshort)

Minor changes

  • [rev:103821] Fixed TranslatableSearchFormTest for postgresql (strict type assertions)
  • [rev:103819] Fixed TranslatableTest for postgresql database driver (mostly ordering issues)
  • [rev:103818] Fixed CMSMainTest for postgres by not hardcoding fixture IDs
  • [rev:103799] Removed mysql specific functionality from DataObjectSchemaGenerationTest and moved it to a new MySQLDatabaseTest
  • [rev:103798] Fixed TranslatableTest for postgresql database driver (mostly ordering issues)
  • [rev:103787] update unit test for checking whether a DataObject has been changed or not without providing a field name
  • [rev:103763] Unsetting state in FilesystemPublisherTest (regression from r103745)
  • [rev:103744] Allowing querystring arguments in sapphire/Makefile
  • [rev:103692] Restored docblock of SQLQuery::unlimitedRowCount()
  • [rev:103640] Fixed AggregateTest for MSSQLDatabase (wrong date formatting)
  • [rev:103606] recache tables if cache is empty
  • [rev:103558] sort page comment table by Created field - show newest entries first
  • [rev:103555] added moderation message for non-ajax mode
  • [rev:103533] Fix to ModelAdmin, part of r103519
  • [rev:103520] add more in-line documentation and fix the typo: should => should not
  • [rev:103515] Database quoting in TreeDropdownField (fixes #5484)
  • [rev:103485] Documentation
  • [rev:103398] Fixed phpdoc documentation
  • [rev:103397] Fixed phpdoc documentation
  • [rev:103391] Fixed phpdoc documentation (from r103390)
  • [rev:103388] Fixed phpdoc documentation (from r103385)
  • [rev:103386] Fixed phpdoc documentation (from r103384)
  • [rev:103345] Reverted accidental commit of date_default_timezone_set() to Pacific/Auckland (see r89164)
  • [rev:103337] Returning ValidationResult from Member->onBeforeWrite() to ensure the ValidationException is compatible with MemberTableField (related to r103336)
  • [rev:103322] Enum DBField class should default to ExactMatchFilter to avoid wrong results with overlapping Enum values in LIKE queries (see #5434)
  • [rev:103226] typo
  • [rev:103093] fixed the error message on class conflict (#5439, patch submitted by rorschach)
  • [rev:102909] Using canView() instead of deprecated can('view') in ContentController
  • [rev:102901] reverted wrong change
  • [rev:102518] Fixed undefined variable in SiteTree::can_edit_multiple() (broken in r83442) (from r102516)
  • [rev:102149] Fixed phpDoc @package and @subpackage for MySQLDatabaseConfigurationHelper
  • [rev:102077] added abstract datetime helper functions
  • [rev:102071] Removed unnecessary sapphire/thirdparty/.gitignore, as the directory doesnt contain svn:externals any longer (fixes #5334)
  • [rev:102045] Fixed spelling mistake in ConfigureFromEnv class documentation

./sscreatechangelog --version 2.4.0-rc2 --branch branches/2.4 --stoprevision 102039


Comment policy: Please use comments for tips and corrections about the described functionality.
Comments are moderated, we reserve the right to remove comments that are inappropriate or are no longer relevant. Use the Silverstripe Forum to ask questions.

blog comments powered by Disqus