diff --git a/.travis.yml b/.travis.yml index 986445dcf..b235b4be8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,6 +40,7 @@ before_script: - composer self-update || true - phpenv rehash - phpenv config-rm xdebug.ini + - echo 'memory_limit = 2G' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support - "if [ \"$BEHAT_TEST\" = \"\" ] && [ \"$CMS_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss; fi" - "if [ \"$BEHAT_TEST\" = \"1\" ] && [ \"$CMS_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension; fi" diff --git a/cache/Cache.php b/cache/Cache.php index 672355261..cf5518c2f 100644 --- a/cache/Cache.php +++ b/cache/Cache.php @@ -146,7 +146,7 @@ class SS_Cache { * @param string $frontend (optional) The type of Zend_Cache frontend * @param array $frontendOptions (optional) Any frontend options to use. * - * @return Zend_Cache_Core The cache object + * @return CacheProxy|Zend_Cache_Core */ public static function factory($for, $frontend='Output', $frontendOptions=null) { self::init(); @@ -175,8 +175,8 @@ class SS_Cache { $backend = self::$backends[$backend_name]; $basicOptions = array( - 'cache_id_prefix' => md5(BASE_PATH) . '_' . $for . '_', - ); + 'cache_id_prefix' => md5(BASE_PATH) . '_' . $for . '_', + ); if ($cache_lifetime >= 0) { $basicOptions['lifetime'] = $cache_lifetime; @@ -188,8 +188,14 @@ class SS_Cache { require_once 'Zend/Cache.php'; - return Zend_Cache::factory( + $cache = Zend_Cache::factory( $frontend, $backend[0], $frontendOptions, $backend[1] ); + + if (!empty($frontendOptions['disable-segmentation'])) { + return $cache; + } + + return Injector::inst()->createWithArgs('CacheProxy', array($cache)); } } diff --git a/cache/CacheProxy.php b/cache/CacheProxy.php new file mode 100644 index 000000000..07a75a33e --- /dev/null +++ b/cache/CacheProxy.php @@ -0,0 +1,123 @@ +cache = $cache; + + parent::__construct(); + } + + public function setDirectives($directives) { + $this->cache->setDirectives($directives); + } + + public function setConfig(Zend_Config $config) { + return $this->cache->setConfig($config); + } + + public function setBackend(Zend_Cache_Backend $backendObject) { + return $this->cache->setBackend($backendObject); + } + + public function getBackend() { + return $this->cache->getBackend(); + } + + public function setOption($name, $value) { + $this->cache->setOption($name, $value); + } + + public function getOption($name) { + return $this->cache->getOption($name); + } + + public function setLifetime($newLifetime) { + return $this->cache->setLifetime($newLifetime); + } + + public function getIds() { + return $this->cache->getIds(); + } + + public function getTags() { + return $this->cache->getTags(); + } + + public function getIdsMatchingTags($tags = array()) { + return $this->cache->getIdsMatchingTags($tags); + } + + public function getIdsNotMatchingTags($tags = array()) { + return $this->cache->getIdsNotMatchingTags($tags); + } + + public function getIdsMatchingAnyTags($tags = array()) { + return $this->cache->getIdsMatchingAnyTags($tags); + } + + public function getFillingPercentage() { + return $this->cache->getFillingPercentage(); + } + + public function getMetadatas($id) { + return $this->cache->getMetadatas($this->getKeyID($id)); + } + + public function touch($id, $extraLifetime) { + return $this->cache->touch($this->getKeyID($id), $extraLifetime); + } + + public function load($id, $doNotTestCacheValidity = false, $doNotUnserialize = false) { + return $this->cache->load($this->getKeyID($id), $doNotTestCacheValidity, $doNotUnserialize); + } + + public function test($id) { + return $this->cache->test($this->getKeyID($id)); + } + + public function save($data, $id = null, $tags = array(), $specificLifetime = false, $priority = 8) { + return $this->cache->save( + $data, + $this->getKeyID($id), + $tags, + $specificLifetime, + $priority + ); + } + + public function remove($id) { + return $this->cache->remove($this->getKeyID($id)); + } + + public function clean($mode = Zend_Cache::CLEANING_MODE_ALL, $tags = array()) { + return $this->cache->clean($mode, $tags); + } + + /** + * Creates a dynamic key based on versioned state + * @param string $key + * @return string + */ + protected function getKeyID($key) { + $state = Versioned::get_reading_mode(); + if ($state) { + return $key . '_' . md5($state); + } + return $key; + } +} \ No newline at end of file diff --git a/core/Diff.php b/core/Diff.php index a1c5fd6e7..39f61b757 100644 --- a/core/Diff.php +++ b/core/Diff.php @@ -278,15 +278,17 @@ class _DiffEngine if (empty($ymatches[$line])) continue; $matches = $ymatches[$line]; - reset($matches); - while (list ($junk, $y) = each($matches)) + $y = reset($matches); + do { if (empty($this->in_seq[$y])) { - $k = $this->_lcs_pos($y); - USE_ASSERTS && assert($k > 0); - $ymids[$k] = $ymids[$k-1]; - break; - } - while (list ($junk, $y) = each($matches)) { + $k = $this->_lcs_pos($y); + USE_ASSERTS && assert($k > 0); + $ymids[$k] = $ymids[$k - 1]; + break; + } + } while (false !== ($y = next($matches))); + + while (false !== ($y = next($matches))) { if ($y > $this->seq[$k-1]) { USE_ASSERTS && assert($y < $this->seq[$k]); // Optimization: this is a common case: @@ -797,18 +799,19 @@ class Diff $content = str_replace(array(" ","<", ">"),array(" "," <", "> "),$content); $candidateChunks = preg_split("/[\t\r\n ]+/", $content); - while(list($i,$item) = each($candidateChunks)) { + $item = reset($candidateChunks); + do { if(isset($item[0]) && $item[0] == "<") { $newChunk = $item; while($item[strlen($item)-1] != ">") { - list($i,$item) = each($candidateChunks); + $item = next($candidateChunks); $newChunk .= ' ' . $item; } $chunks[] = $newChunk; } else { $chunks[] = $item; } - } + } while (false !== ($item = next($candidateChunks))); return $chunks; } diff --git a/core/manifest/ConfigManifest.php b/core/manifest/ConfigManifest.php index 6bb5485b3..caf63f716 100644 --- a/core/manifest/ConfigManifest.php +++ b/core/manifest/ConfigManifest.php @@ -110,7 +110,7 @@ class SS_ConfigManifest { /** * Provides a hook for mock unit tests despite no DI - * @return Zend_Cache_Frontend + * @return Zend_Cache_Core */ protected function getCache() { @@ -118,6 +118,7 @@ class SS_ConfigManifest { 'automatic_serialization' => true, 'lifetime' => null, 'cache_id_prefix' => 'SS_Configuration_', + 'disable-segmentation' => true, )); } diff --git a/core/manifest/SilverStripeVersionProvider.php b/core/manifest/SilverStripeVersionProvider.php index c0e6ecf9f..b1cd92426 100644 --- a/core/manifest/SilverStripeVersionProvider.php +++ b/core/manifest/SilverStripeVersionProvider.php @@ -83,7 +83,11 @@ class SilverStripeVersionProvider $lockData = array(); if ($cache) { - $cache = SS_Cache::factory('SilverStripeVersionProvider_composerlock'); + $cache = SS_Cache::factory( + 'SilverStripeVersionProvider_composerlock', + 'Output', + array('disable-segmentation' => true) + ); $cacheKey = filemtime($composerLockPath); if ($versions = $cache->load($cacheKey)) { $lockData = json_decode($versions, true); diff --git a/dev/DevelopmentAdmin.php b/dev/DevelopmentAdmin.php index 55584cb20..5458a71de 100644 --- a/dev/DevelopmentAdmin.php +++ b/dev/DevelopmentAdmin.php @@ -76,7 +76,8 @@ class DevelopmentAdmin extends Controller { // Backwards compat: Default to "draft" stage, which is important // for tasks like dev/build which call DataObject->requireDefaultRecords(), // but also for other administrative tasks which have assumptions about the default stage. - Versioned::reading_stage('Stage'); + Versioned::reading_stage(Versioned::DRAFT); + Versioned::set_default_reading_mode(Versioned::get_reading_mode()); } public function index() { diff --git a/dev/Profiler.php b/dev/Profiler.php index 435c553bb..ef0327ef2 100644 --- a/dev/Profiler.php +++ b/dev/Profiler.php @@ -161,7 +161,7 @@ class Profiler { echo"============================================================================\n"; print( "Calls Time Routine\n"); echo"-----------------------------------------------------------------------------\n"; - while (list ($key, $val) = each ($this->description)) { + foreach ($this->description as $key => $val) { $t = $this->elapsedTime($key); $total = $this->running[$key]; $count = $this->count[$key]; diff --git a/docs/en/02_Developer_Guides/08_Performance/01_Caching.md b/docs/en/02_Developer_Guides/08_Performance/01_Caching.md index ca76d60da..1a680d0ae 100644 --- a/docs/en/02_Developer_Guides/08_Performance/01_Caching.md +++ b/docs/en/02_Developer_Guides/08_Performance/01_Caching.md @@ -90,6 +90,20 @@ e.g. by including the `LastEdited` value when caching `DataObject` results. // set all caches to 3 hours SS_Cache::set_cache_lifetime('any', 60*60*3); +### Versioned cache segmentation + +`SS_Cache` segments caches based on the versioned reading mode. This prevents developers +from caching draft data and then accidentally exposing it on the live stage without potentially +required authorisation checks. This segmentation is automatic for all caches generated using +`SS_Cache::factory` method. + +Data that is not content sensitive can be cached across stages by simply opting out of the +segmented cache with the `disable-segmentation` argument. + +```php +$cache = SS_Cache::factory('myapp', 'Output', array('disable-segmentation' => true)); +``` + ## Alternative Cache Backends By default, SilverStripe uses a file-based caching backend. diff --git a/docs/en/04_Changelogs/2.0.1.md b/docs/en/04_Changelogs/2.0.1.md deleted file mode 100644 index 9aa04ba18..000000000 --- a/docs/en/04_Changelogs/2.0.1.md +++ /dev/null @@ -1,46 +0,0 @@ -# 2.0.1 (2007-04-17) - -SilverStripe 2.0.1 was released on '''17 April 2007''' and had the following changes: - -## Overview - - * Improved layout of UserDefinedForm submissions in CMS - * Don't show name field on root folder in Assets section - * Mime types fallback for servers don't have /etc/mime.types - * mb_string module is now an optional dependency - * Added strong_create method to Object, as useCustomClass was not working correctly - -## Bugfixes - - * Sapphire - * Text->FirstParagraph() now only shows the first paragraph - * Fixed HTMLText->Summary() - * Fixed layout issues on IE7 for TreeDropdownField - * Don't show Akismet errors to user - * Removed overloaded MemberTableField->sourceItems() that was causing problems - * Fixed UserDefinedForm submission emails - * Fixed UserDefinedForm permissions - * If a file extension doesn't have a maximum upload size associated with it, then allow uploads of any size - * Fixed a bug with the TreeMultiselectField that prevented it from displaying the checkboxes - * Made Scheduled tasks concrete so they can be instantiated - * TableField fixes - * Fixed security vunerability in search - * GD::color_web2gd() was using incorrect substr - * Fixed last link css - * Fixed duplicate checkbox fields in UserDefinedForm - * Fixed css in UserDefinedForm - * CMS - * Fixed sizing of tabs in CMS - * Fixed popup for single asset in Files & Images section - * Fixed link to CMS on default homepage - * Fixed permissions table in Security section - * Fixed el no properties error in IE - * Pressing the flash button a second time now hides the dropdown - * Installer - * Fixed MySQL version check - * Merge with existing .htaccess file - * Test that mod_rewrite is working - * Added option to delete installer files after successful install - * Fixed PHP4 parse error so installer loads and shows correct error message - * Apache test passes if apache is used but apache php functions are not available - * SilverStripe needs at least PHP version 5.0.4 diff --git a/docs/en/04_Changelogs/2.0.2.md b/docs/en/04_Changelogs/2.0.2.md deleted file mode 100644 index c1ae17d74..000000000 --- a/docs/en/04_Changelogs/2.0.2.md +++ /dev/null @@ -1,155 +0,0 @@ -# 2.0.2 (2007-07-14) - -SilverStripe 2.0.2 was released on '''14 July 2007''' and had the following changes: - -## Overview - - * BlackCandy is the new default theme - * Added pagination for page comments - * Updated date field in CMS-edited forms to use CalendarDateField - * Added 'open in new window' checkbox to link inserter - * Added dimension fields when inserting images - -## Features and Enhancements - - * Much more API Documentation - * Modules must now have _config.php files in order to be loaded - * New Classes - * PermissionProvider - * Improved Classes - * CalendarDateField - * Added a calendar icon - * CheckboxSetField - * Prepared for use editing a many-many join in the CMS, popualted with a SQLMap object - * ClassInfo - * Added implementorsOf() - * ContentNegotiator - * Added set_encoding() to choose a character set other than utf-8 - * DatabaseAdmin - * Removed populate() as it was a security risk, the initial content is now loaded via requireDefaultRecords() - * DataObject - * Added add_extension() for adding decorators in _config.php - * DataObjectDecorator - * Added extraDBFields() for modifying the decorated data objects, adding extra database fields - * Email - * Added send_all_emails_to() - * Added cc_all_emails_to() - * Added bcc_all_emails_to() - * Replaced sentLiveErrorsTo() with send_errors_to(), for more flexibility - * Form - * Added current_action() - * Added single_field_required() - * FormField - * Added Required(), so that you can put asterisks into a form template if you wish - * GenericDataAdmin - * Updated to use new permission model - * LeftAndMain - * Added second argument to setApplicationName() so that the name in the top corner and the name shown elsewhere can be 2 different strings - * Permission - * Added get_codes() - * Profiler - * Added trace argument to show() - * Added profiling scaffolds - * Added ?profile_trace=1 url variable tool to show a trace on the profiler - * Sorted the output of profiler - * Improvements to profiling information - * TableField - * Added option to aid putting TableFields inside the ComplexTableField popup - * TreeDropdownField - * Added setTreeBaseID(), for showing a sub-tree in your field - * Javascript - * Added event.setStyle to prototype_improvements.js - * Add class text field to image properties dialog in TinyMCE - * Added ?debug_behaviour=1 URL option for debugging behaviour calls with Firebug - -## Bugfixes - - * CMS - * Forms in newsletter & security section were incorrectly submitting when enter was pressed - * Fixed search in MemberTableField - * Don't show popup when validation fails in Security section - * Fixed bug where scrollbars aren't shown in the CMS - * Let CMSMain be used to manage objects without Sort - * The help button now redirects to http://userhelp.silverstripe.com - * Version displayed in CMS now works correctly - * Fixed CMS action button support when text size increases - * Added message when report is empty - * fixed (overrides) to CSS to avoid larger font-size due to em values - * Fixed tree scrolling and resizing issues - * Fixed sizing issues with CMS right content area - * Fixed bug with image insertion - * Fixed bug where new pages weren't being highlighted in the CMS - * Fixed bug where the last page in the site tree wasn't being highlighted in the CMS - * Fixed reordering of groups in security section - * Improvements to image inserter - * Sapphire - * Reduced warnings when E_NOTICE is enabled - * Fixed validation of date fields in a user defined form - * Fixed multiple security groups being created when logging in with default admin - * Fixed permissions for administrating page comments - * Fixed ContentController::PageComments() method to die if spammers are POSTing form data when comments are disabled - * Fixed permission checking on PHP 5.0.5 - * Fixed 'cannot access protected property' error in Security section on PHP 5.0.5 - * Fixed javascript validation of forms - * Fixed error when asp_tags = On - * Fixed bug where you have a non-required field with numeric validation - * Added a limit of 20 steps in Breadcrumbs generation - * Changed SiteTree.Title length from 100 to 255 - * Fixed random password generator in Member::createNewPassword() - * Fixed BatchProcess to not display an error if no objects could be processed - * Fixed a bug where a user is redirected incorrectly after logging in - * Changed temp-folder selection to not leave temp files lying around, and put silverstripe temp files into a silverstripe-cache folder - * Made guid of PageComments in rss feed unique - * Removed duplicate XML class - * Fixed bugs caused by missing html elements - * Fixed code to remove need for short_open_tag - * Fixed FileSize generation for sizes of just over 1 meg - * only show $messageBlock in FormField::FieldHolder() if $Message is existing - * fixed rightTitle and id in FormField::FieldHolder() - * Fixed ?isDev=1 mode - * Set default of sendWarnings on Debug::send_errors_to - * Fixed formatting of error emails sent from ajax requests - * Removed debug plumbing from the results of Debug::backtrace() - * Simplified return data of htmlEmail, an inconsequential internal optimisation - * Create assets folder if it doesn't exist when uploading a file - * Fixed bug in SiteTree::NestedTitle() - * Don't append /home to the home page URL - * Small fix for windows installations - * Fixed efficiency problems in Versioned::get_latest_version - * Fixed File::sync(), to let it recurse into new directories in a single execution - * Fixed bug with getting form action that was breaking form submission and complextablefield pop-up - * Fixed SQLMap iteration - * Simplified EmailField validation error message - * Fixed some bugs in the debug emailer - * Reduced amount of ajax-refetching that the TreeSelectorFields do - * Fix macron support in reports - * Improved debug message (remove big blocks of redundant data) - * Allow for the disabling of default buttons. Apply this to CMSMain and GenericDataAdmin in the administration, so that we don't default to clicking the *DELETE* button. - * Added default value to first arg of permissionFailure(); it's not actually used! - * Improved handling of EditableFormFields on new UserDefinedForms - * Improved search results message shown on first load - * Made calendar control register a date change when the calendar is used - * Set some good defaults in DataObjectSet::TotalPages() if they have not been set - * Changes to support forum - * Require authenficiation to do a db/build on live sites - * Close directories before trying to remove them - * Fixed a bug where CheckboxSetField wouldn't save if there was a method the same as the field name - * Fix multiple "broken" in class attribute of HTML Content - * Fixed bug with TreeDropdownField when you clicked the expand link 3 or more times, it wouldn't close - * Fixed bug when editing properties of new text fields - * Fixed duplicate of UserDefinedForm objects - * JSParty - * Fixed a bug where you couldn't always edit the bottom of an WYSIWYG editor field - * Ensure that WYSIWYG context menu always appears on the screen - * Javascript performance improvements - * Fix weird bug in behaviour to do with class.applyToChildren - * Improved console.log alternative - * Installer - * Added option of installing either the default template, or the tutorial template - * mod_rewrite check now works with http authentification - * Workaround for 'URL file-access is disabled in the server configuration' using curl for mod_rewrite test - * Better error message if the installer can't detect the web server - * Added an alternative .htaccess configuration - * Less file permissions required by the installer - * Made deleting the installer files more prominent, it now deletes all the installations files, not just php. - * MySQL password is now a hidden field. diff --git a/docs/en/04_Changelogs/2.1.0.md b/docs/en/04_Changelogs/2.1.0.md deleted file mode 100644 index 404e55286..000000000 --- a/docs/en/04_Changelogs/2.1.0.md +++ /dev/null @@ -1,171 +0,0 @@ -# 2.1.0 (2007-10-02) - -SilverStripe 2.1.0 was released on '''2 October 2007''' and had the following changes: - -## Overview - - * Comment administration section, and comment moderation - * Allow CMS users to limit view/edit access to a page - * Show an rss link for page comments on each page - -## Upgrading - -### Too many redirects - -A problem occurs of 'too many redirects' or the page just doesn't load (home page) because of these situations: - - * Access tab for home page has 'logged in users only', OR - * NO radio buttons have been set. This happens when upgrading site from old DB. - -It's caused by a redirect to Security/login on the home page controller, which is blocked off, so you can't actually -login, so it infinitely loops a redirect. See http://open.silverstripe.com/ticket/1488 - -## Features and Enhancements - - * Theme support - * Widget support - * Better extension API - * Unit testing framework - * More API documentation - * Added support for __ss_environment.php files - * New classes - * BankAccountField - * BBCodeParser - * HasManyComplexTableField - * HasOneComplexTableField - * ManyManyComplexTableField - * NewsletterType - * RestfulService (from mashups module) - * Improved classes - * ComplexTableField - * Validation in popup - * ContentController - * Added project() - * Controller - * Added redirectedTo() - * Convert - * Added raw2htmlatt() - * Added raw2mailto() - * DatabaseAdmin - * Drastically improved database build performance - * DataObject - * Added ID,ID,ID syntax for populating many-many joins - * DataObjectDecorator - * Allow member CMS fields to be added - * DataObjectSet - * Added getRange() - * Date - * Added past_date() - * Director - * Added set_dev_servers() - * Added set_test_servers() - * Added redirected_to() - * Refactored CMS page-URL accessing to use ->AbsoluteLink(), which can be overridden by defining alternateAbsoluteLink() - * Debug - * Optionally hide backtrace-headers in message() and show() (applied in 'showqueries') - * Email - * MimeType-fallback (from /etc/mime.types) - * Improved validation in is_valid_address() - * FieldSet - * Added insertAfter() - * Form - * Automatic filesystem backup of POST-data - * FormField - * Support for right-aligned titles - * Custom CSS-classes by addExtraClass() and removeExtraClass() - * Group - * Added Description field - * HtmlEditorField - * Allow classes other than 'typography' to be set - * Image - * Added PaddedImage() - * ImageField - * Added readonly transformation - * PageCommentInterface - * Added anchors to page comments, and made rss feed link to them - * Permission - * Added $strict flag to check() - * Allow passing of an array of permission codes to get_members_by_permission() - * Added get_groups_by_permission() - * PhoneNumberField - * Improved validation - * Security - * Added basicauthlogin() - * SecurityAdmin - * Added EDIT_PERMISSIONS permission code - * TableField - * Validation and RequiredFields - * TableListField - * Added sorting, highlighting, formatting - * Improved styling - * TreeDropdownField - * Improved styling - * Varchar - * Added RTF() - * ViewableData - * Added `<% if HasPerm(PERM_CODE() %>` for templates - * Javascript - * Implemented showIndicator() and hideIndicator() - * Improved statusMessage() to clear manually instead of fixed interval - * Added hideStatusMessage() - -#### Bug Fixes - - * CMS - * Fix specific newsletter bug - * Don't show classes user doesn't have permissions to change to in class dropdown - * Fix reading of Live pages in CMSMain - * Fix double page reading after changing the class - * Fix insert flash - * Fix version regex for release candidates - * Fix delete in Files and Images section - * Fixed saving root folder causes error - * Fixed "non-numeric ID" error that occurs when visiting newsletter section for a newsletter that doesn't exist (caused by session sometimes) - * Fixed CMS sort subpages bug - * Sapphire - * Improved spam detection - * Support for running SilverStripe in safe mode and under open_basedir restrictions - * PHP notice fixes - * Use normal authentification rather than basicauth for db/build - * Fix CSS of profiler pop-up - * Changed DropdownField $emptyString syntax from '0' to '' - * Fixed IE6 DOM-parsing bug caused by FormResponse::load_form() - * Triggering previewwrite for 'delete' and 'replace' SQL-actions - * Changed record-insertion in DataObject - * Boolean accepts database-default - * Fixed Permission::get_members_by_permission() - * Added memory_limit to publishall() - * Fix many-many component set relation setting - * The Link for a RedirectorPage points to its target - * Add SQL_ prefix in place it was missing in Email - * Added a check to make sure record exists before calling hasMethod on it in CheckboxSetField - * Fixed bug in DataObject::addStaticVars() - * Check for string 'true' as well as boolean in SiteTree::MetaTags() - * Fix AllNewsletters value not being passed to OptionSetField in SubscribeForm - * Improved the encapsulation of ErrorPage publication - * Fix redirect back after failing login - * Fixed renaming of .tar.gz and .tar.bz2 files - * Fixed validation of DateField, EmailField and NumericField - * Fix livesite bug for visibility handling difference between PHP5.2.0 and PHP5.1.6 - * Changed colouring of db/build to be more appropriate for the actual meaning of the messages - * Fixed redirection from /home/ to /./ in IE6 - * Use the homepage as a model for the security base-page, so that things like the current subsite are factored in - * Sorted permission codes in Permission::get_codes - * Changes to support gallery module - * Added missing has_many in DataObjectDecorator - * Replace empty strings in SQL queries with NULL - * JSParty - * TinyMCE has been updated to 2.1.1.1 - -Installer - - * New installer look based on BlackCandy - * Use the new theme system - * Add first and last name fields - * Added ability to set servers that will be in dev mode - * When the posix module isn't present, throw a warning instead of dying - * Warn if PHP version is less that 5.2.0 in support of GoPHP5 (http://www.gophp5.org) - * Added favicon to installer and default template - * Optional reporting of version information to SilverStripe - * Installer now runs with short tags disabled - * open_basedir and safe mode fixes diff --git a/docs/en/04_Changelogs/2.1.1.md b/docs/en/04_Changelogs/2.1.1.md deleted file mode 100644 index c737f2d5e..000000000 --- a/docs/en/04_Changelogs/2.1.1.md +++ /dev/null @@ -1,22 +0,0 @@ -# 2.1.1 (2007-11-02) - -SilverStripe 2.1.1 was released on '''2 Nov 2007''' and had the following changes: - -## Bug Fixes - - * CMS - * BBCode help link now works inside CMS - * Fixed invalid 'cursor: normal' CSS in cms_left.css - * Ensure ComplexTableField CSS is loaded in CMS - * Fixed blank comments showing in Comment Admin - * Ensure behaviour is applied correctly to new fields in a UserDefinedForm - * Fixed fatal error in Newsletter Admin on some servers - * Sapphire - * Fix infinite redirects when upgrading from 2.0.2 - * Use the hostname, not the ip address, in dev/test mode tests - * Changed the include of the BBCodeParser so it works on more systems - * Fixed saving of HasOneComplexTableField and HasManyComplexTableField when value is undefined - * Removed extra comma in TableListField.js - * Fixed redirection of login when login fails - * Fixed bug where removing a comment via ajax removed all comments from display - * Fix $_SESSION not saving correctly on some servers diff --git a/docs/en/04_Changelogs/2.2.0.md b/docs/en/04_Changelogs/2.2.0.md deleted file mode 100644 index 80577b52c..000000000 --- a/docs/en/04_Changelogs/2.2.0.md +++ /dev/null @@ -1,341 +0,0 @@ -# 2.2.0 (2007-11-28) - -SiverStripe 2.2.0 was released on '''28 November 2007''' and had the following changes: - -## Upgrading - -### Login Form - -Check that you have a Layout/Page.ss file for your site, or alternately have a Security_login.ss template. -Your template file needs a $Form variable for it to work. This is where the login form gets included. Without either of -these, the Security/login form will be blank. - - -### Form Actions HTML/CSS - -Check css/js and subclassed templates of Form.ss for changed markup. A global search for "p.Actions" should cover both -js/css changes. - - :::ss - // before -

- // after -

- -See http://open.silverstripe.com/changeset/43562 - -### Form Security Token - -There has been a hidden 'SecurityID' field added to SilverStripe generated forms by default, with the purpose to stop -CRSF attacks. If you wish your form not to be tied to a specific session, and able to be able to be executed by URL -without the SecurityID, you can disable it on your form with - - :::php - $form->disableSecurityToken(); - - -The other issue to be aware of is constructing the URL to execute the form manually, as is done in javascript sometimes. -If the security token is enabled, you need to add its value to the URL, eg: - - :::js - updateURL += ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : ''); - - -### Custom Section in CMS - -Special attention will need to be given to custom sections on a case-by-case basis. - -As we have changed the design of the CMS, the top bar for your custom sections is no longer needed. We've moved the -buttons that it once held down to the bottom. - -![](/_images/cms22screenie.jpg) - - -### Classes added to 2.2 that may conflict - -Sitemap.php - - -## Features - - * New look for CMS - * Support for authentification by OpenID (auth_openid module included with installer) - * Google Sitemaps support - * Internationalisation support - * German translation - * Dutch translation - * Chinese (simplified) translation - * Spanish translation - * French translation - * Croatian translation - * Polish translation - * Portuguese (Portugal) translation - * Support for multilingual content - * Added a Statistics area showing the following reports - * Page views - * User activity - * Trends - * Operating Systems - * Browsers - * Added an image editor, allowing a user to rotate, crop and resize an image from within the CMS - * Added profile popup in CMS - * Added a 'Sent Status Report' tab to Newsletters with the following reports - * Sending to the following recipients failed - * Sending to the following recipients bounced - * The newsletter has never been sent to following subscribers - * Sending to the following recipients was successful - * Sending to the following recipients did not occur because they are blackListed - * Add 'Send to only people not previously sent to' option for sending newsletters - * Added SWFUpload library as default method of uploading files - * Added photo upload in from the Site Content section - * Added the ability to search the Site Content tree - * Added the ability to publish selected pages - * Added a list of unused assets in the Files & Images section, and the ability to delete unused thumbnails - * Usability improvements - * Move action buttons to bottom right of screen - * Moved insert image/flash/link to pane on right - * Removed right frame headers as the buttons have been moved and they only contain redundant information - * Use a javascript dialog box for confirming unsaved changes instead of the slow loading model one - * Reworked the tabs in the Newsletter section to be less confusing - * Cancel button added to Send Newsletter window - * External logo link opens in a new window - * Left sections in Site Content 'Site Tree', 'History' and 'Reports' now use expandable sections rather than tabs - * Relabeled 'Site Tree' to 'Site Content & Structure', 'History' to 'Page Version History' and 'Reports' to 'Site Reports' in left sections of Site Content - * Relabeled 'Files & Images' left frame to 'Folders' - * Added tooltips to site content tree, showing the page type - * In the 'Page Version History', use a checkbox lable 'Compare mode (click 2 below)' instead of a dropdown - * Renamed 'Save draft' button to 'Save' - * The 'Save' button text changes to 'Saving...', and the 'Publish' button text changes to 'Publishing...' when they are clicked - * Added save indicator to all 'Save' buttons, the 'Save & Publish' button and the 'Unpublish' button while they are being submitted - * Added a go button to the 'Site Reports' dropdown - * Relabeled 'Name' field to 'Folder Name' in Files & Images section - * Renamed the 'Save' button to 'Save folder name' in Files & Images section - * Relabeled 'Send newsletters from' field to 'From email address' in Newsletter section - * Removed the 'Move Files' button from Files & Images section, implemented multi-file drag & drop moving - * Add 'Newsletter Settings' tab to Newsletter type edit form for consistency with other forms - * Make the status message shown after sending a newsletter always include the # of emails sent - * Added delete confirmation for items in Newsletter left tree - * Added delete confirmation for items in Security left tree - * Make 'Add new draft' the default action for 'Create...' in the Newsletter section - * Replace the 'reorganise' button with 'Allowing drag & drog reordering' checkbox - * Delete and Unpublish buttons turn red on hover - * Added the ability to align images 'left on their own' - -## Enhancements - - * New classes - * Authenticator, allowing multiple authentification methods - * ConfirmPasswordField - * DropdownTimeField - * i18n, for internationalisation - * LanguageDropdownField - * LoginForm, base class for login forms for each authentification method - * MemberAuthenticator, providing username/password authentification - * MemberLoginForm, refactored from old LoginForm form - * PopupDateTimeField - * ToggleField - * OpenIDAuthenticatedRole, which is an extension to Member that adds OpenID authentification columns - * OpenIDAuthenticator, providing OpenID authentification - * OpenIDLoginForm, providing OpenID sign in - * PageView, which saves the details of each page view for statistics - * Statistics, which provides static methods for statistics - * Translatable, for multilingual content - * New third party libraries - * PHP OpenID (http://openidenabled.com/php-openid/) - * Browscap (http://garetjax.info/projects/browscap/) - * Plotr (http://www.solutoire.com/plotr/) - * SWFUpload (http://profandesign.se/swfupload/) - * Improved classes - * CalendarDateField - * Refactored part of Field() into HTMLField() so it can be used in PopupDateTimeField - * ComplexTableField - * Improved pagination in popup - * Better transformation of save-button (replaced indicator with "saving..." label) - * CompositeField - * Added SmallFieldHolder() to properly render fields in a FieldGroup - * Added insertBeforeRecursive() - * Allow empty children - * Added Field() - * Added linebreaks for HTML - * ConfirmedFormAction - * Respect $extraClass - * ContentController - * Save statistics on page views - * Added LangAttributes(), for use in XML header - * Draft/Archived content can only be viewed by users with permission to access the CMS - * Core - * Added _t() for internationalisation - * Check if TEMP_FOLDER is already defined before defining it, allowing the user to set the temporary folder themself - * DataObject - * Added merge() - * Director - * Added extend_site(), which allows modules to register a function that will be run on every page load - * redirectBack() now redirects to the base URL if neither the referrer nor the _REDIRECT_BACK_URL is set - * Added support for translatable URLs - * Added is_cli() - * Added set_status_code() and get_status_code() - * Email - * Define 'EMAIL_BOUNCEHANDLER_KEY' in sapphire/_config.php and require its value to be sent as 'Key' $_GET var in pings to /Email_BounceHandler to prevent fake email bounce pings - * Display an error on duplicate bounce logs instead of a blank screen - * If the contents of the X-SilverStripeMessageID header is sent to /Email_BounceHandler in the 'SilverStripeMessageID' _GET variable, then it will be logged in the Newsletter_SentRecipient table so that the bounce report will show up on the 'Sent Status Report' tab of the Newsletter - * Bounced newsletter recipient emails and blacklisted by default - * FieldSet - * Added insertBeforeRecursive() - * FileSystem - * Added $file_create_mask and $folder_create_mask, which are used whenever creating new files/folders in sapphire - * Form - * All Forms now have a hidden SecurityID field to prevent CSRF attacks - * Added disableSecurityToken() to disable the SecurityID field - * Added securityTokenEnabled() - * Changed `

` to `

` - * Renamed PureName() to Name() - * GD - * Added rotate() - * Added rotatePixelByPixel(), allowing rotation where the imagerotate function is unavailable - * Added crop() - * Added getWidth() - * Added getHeight() - * Hierarchy - * Versioned now automatically add suffixes, so Hierarchy no longer needs to - * HTTP - * Added register_modification_timestamp() - * Added register_etag() - * ImageField - * Improved layout - * Int - * Added support for default value - * ManifestBuilder - * Refactored getClassManifest() for clearer ignore rules - * Ignore i18n language files - * Ignore folders that have a '_manifest_exclude' file - * Member - * Automatically login user if the 'remember login' cookie is set - * Added createNewPassword(), which generates a random password, optionally using a word list - * Added support for password encryption - * Added Locale field to store user preferred language - * Added the ability for Member decorators to augment MemberFormFields() - * MemberLoginForm (refactored from old LoginForm) - * Save the email address in the session to reuse when the login fails - * ModelAsController - * Added support for translatable URLs - * Object - * Added require_developer_login(), which allows you to check if the user has permission to use URL debugging tools - * ?debugmethods=1 now requires developer login - * PageComment - * Added the ability to have BBCode in comments (disabled by default) - * PasswordField - * Always show five stars in performReadonlyTransformation(), so it is impossible to use the information of the password length for brute-force attacks - * Permission - * Added declare_permissions() - * Added get_declared_permissions_list() - * Added traverse_declared_permissions() - * Added Permission_Group class, used to group permissions together for showing on an interface - * Added $admin_implies_all, if this is false then the 'ADMIN' permission doesn't imply all permissions - * Refactored Permission::checkMember(), should be faster now because the non-strict checking is now only executed if the user doesn't has the permission - * Added deny(), giving the ability to define 'deny permissions' - * RecipientImportField - * Added default 'GenericEmail.ss' template - * RestfulService - * Added caching - * RSSFeed - * Added support for conditional GETs - * Security - * Added support for password encryption - * Added set_word_list() and get_word_list(), to set the location of the word list used in Member::generateNewPassword() - * Session - * Added save(), which copies the current controllers session to $_SESSION - * SiteTree - * Changed references to 'stage site' to 'draft site' in TreeTitle() - * Use Translatable interface by default - * Add content language in MetaTags() - * Add delete class to unpublish and rollback buttons - * SSViewer - * Added support for internationalisation in templates, using `<% _t() %>` - * Added $Iteration in templates, which keeps track of the number of iterations in a control block - * TableListField - * Prevent onclick event in td.markingcheckbox from showing the popup - * TabSet - * Remove tabset div to reduce wasted space on tabs - * Added insertBeforeRecursive() - * ToggleCompositeField - * Refactored from TogglePanel - * Added icons and used 'cursor: pointer' to make it obvious that it is clickable - * Versioned - * Added the ability to versionise suffixed tables that have names that are not DataObject descendants - * Added canBeVersioned() - * Added extendWithSuffix() - * Added hasVersionField() - -## Bugfixes - - * Sapphire - * E_NOTICE fixes - * Fixed incorrect deprecated message in Convert::raw2xml() - * Don't show and error message and quit the script when @ is used to suppress the error - * Changed width of HTMLEditorFields to prevent horizontal scrollbars in IE7 - * Added checks in DataObjectSet::First() and DataObjectSet::Last() to prevent errors on an empty $items array - * Fixed incorrect treatment of Member::logout() as a static method in Security::logout() - * Ensure Priority is set in SiteTree::onBeforeWrite(), otherwise an invalid SQL statement will be generated when the page is published - * Only highlight broken links in HTMLEditorFields once, to prevent execution timeouts when there are lots of identical broken links - * Fixed bug "Fatal error: Access to undeclared static property: Controller::$db in ../sapphire/core/Object.php(282) : eval()'d code on line 1" - * Fixed DataObjectDecorators not supporting indexes and defaults - * Fixed ReportField generating invalid HTML - * In Member::setBlacklistedEmail() call this->write() so that the BlacklistedEmail field state will be saved to the Member database table - * Fix Email_BlackList::isBlocked() to check the BlockedEmail field instead of non-existant Email field so that it will actaully return true when an email is blocked - * Fix layout problems with search box in IE by only generating a label tag if TItle is set in FormField::FieldHolder() - * Fixed Permission::check() not p[assing $strict to Permission::checkMember() - * Fixed HTTP::gmt_date() - * Fix validation of Member extensions - * Removed DriversLicense references from LoginForm (project specific clutter) - * Added check for existence of #sitetree in RelationComplexTableField.js - * Fixed VirtualPage creation - * Fixed lighttpd flushing bug - * Fixed CustomRequiredFields - * Fix bugs with ComplexTableField when it is used outside of the CMS - * Fixed error saving when value is undefined in HasOneComplexTableField and HasManyComplexTableField - * Fixed saving error in FileIFrameField - * Added a security fix for Security::check_default_admin() - * Fixed caching in DataObject::getManyManyComponents() to take into account different SQL parameters - * Geop::ip2country() now throws an E_USER_NOTICE instead of an error when it cannot run geoiplookup - * Added if() check around a foreach loop that was causing errors when there were no entries in an RSS feed - * Fix inheritance in ManyManyComplexTableField - * Fixed FormField::setRightTitle() not showing because of a typo - * Create assets folder if doesn't eixts on ErrorPage publish - * Fixed submission of ImageField when no file was selected - * Catch errors in ContentController::deleteinstallfiles() - * Fix generation of group codes on creation of a Group - * Fix title on LabelledLiteralField - * Fix ImageField deleting the Image instead of unlinking it from the page - * Set TimeField value to null when a bad value is passed - * Don't return a span when the Title doesn't exist in DropdownField - * Fix bug where NumericField couldn't have 0 as a default value - * Call Page_Controller->init() when rendering Security/changepassword etc to respect any Requirements called in there - * Fixed an error when a CheckboxSetField is submitted with no checkboxes ticked - * Fixed exporting of TableListField to use commas for CSV files - * ?previewwrite no longer works on live sites - * Fixed incorrect CSS in TableListField.css - * Fixed incorrect namespacing in TableListField::BaseLink() - * If a CreditCardField is completely blank, then it's not invalid. Required-fields should be used to check for values. - * CMS - * E_NOTICE fixes - * New pages are created in the database straight away, which solves a number of issues - * Fixed Email link not working in page history - * Unsaved changes detection now works in Security section member tables - * Fix typo in LeftAndMain::addTreeNodeJS() by renaming 'select' parameter to 'selected' because 'selected' is what is used in the method body - * Delete image thumbnails after deleting an image - * Use 'html>body' instead of just 'html>' so that #sitetree correctly gets assigned width:auto on Mozilla browsers (prevents Folders being selected from 500px away on file drag and drop) - * Display a useful error message if getCMSFields() returns null - * When 'Duplicate this page' is clicked, first silently (without confirmation) save the page, then duplicate it so the new page is identical to the other page - * Fix errors when importing recipients to newsletter mailing list - * Fixed blocking during resize in IE6 - * Don't show a 'No template selected' error when sending a test Newsletter if no template has been selected since templates for Emails are optional - * Fixed bug 'for newly created newsletter drafts, content of newsletter sent is not what is shown on screen' - * Don't save new Newsletter drafts as soon as they are created to prevent TinyMCE Javascript errors in IE - * Add if((typeof tinyMCE != 'undefined')) statement around call to tinyMCE.init() to prevent "Error: 'tinyMCE' is undefined" error in IE7 on Newsletter Recipient import - * Don't allow a deleted draft to be edited in the Newsletter section - * Fix a bug where newsletter drafts will be added, but not show up in the left tree (because of a Javascript error), if no selection has been made - * If there are no newsletter types, and 'Add new draft' is chosen, create a newsletter type to prevent errors - * Fix changed icon only showing after Save button is clicked twice - * Fixed VirtualPage creation - * Fix 'Sort subpages' not working correctly - * Use classes instead of the align tag to align images diff --git a/docs/en/04_Changelogs/2.2.1.md b/docs/en/04_Changelogs/2.2.1.md deleted file mode 100644 index 5b031355a..000000000 --- a/docs/en/04_Changelogs/2.2.1.md +++ /dev/null @@ -1,33 +0,0 @@ -# 2.2.1 (2007-12-21) - -SilverStripe 2.2.1 was released on '''21 December 2007''' and had the following changes: - -## Features and Enhancements - - * Translations - * Added Italian translation - * Added Russian translation - * Added Slovak translation - * Added Turkish translation - * Added Bulgarian translation - * Added Czech translation - * Added Hungarian translation - * Added Portuguese (Brazil) translation - * Added Swedish translation - * Added Chinese (Taiwan) translation - * Added support for sapphire to Portuguese (Portugal) translation -#### Developer Tools - - * Added augmentDefaultRecords(), so DataObjectDecorators can extend requireDefaultRecords -Bug fixes - - * Sapphire - * Hardcoded array of encryption algorithims in Security::get_encryption_algorithms(), as a bug in MySQL causes corruption in dumps with enums with commas - * Fixed bug with google sitemap on translated sites - * Removed title from SecurityID fields, as some forms show labels on HiddenFields - * Fixed Object::uninherited() for PHP 5.1.2 - * Added empty array to member so that roles can add their own has_one relations - * CMS - * Added SecurityAdmin_rightbottom.ss - * Javascript - * Upgraded TinyMCE to 2.1.3 diff --git a/docs/en/04_Changelogs/2.2.2.md b/docs/en/04_Changelogs/2.2.2.md deleted file mode 100644 index ffb4d463e..000000000 --- a/docs/en/04_Changelogs/2.2.2.md +++ /dev/null @@ -1,396 +0,0 @@ -# 2.2.2 (2008-05-22) - -SilverStripe 2.2.2 was released on '''22 May 2008''' and had the following changes: - -## Features and Enhancements - - * Set svn:externals for new phpinstaller release tags/2.2.2 (changeset 54973) - * Disable / fix flash uploading (changeset 54959) - * Fixed php/code snippets in forum posts (changeset 54619) - * BUGFIX #2504 - Fixed translation interface not working in CMS (changeset 54472) - * Removed references to 'mot' folder in code (changeset 54407) - * #2501 + #2500 - Fixed notice-level errors in editable forms (changeset 54402) - * #2482 - Fixed newsletter unsubscribe (changeset 54215) - * #2447 - Bug in editing comment (changeset 54212) - * Don't mark a test site as being in dev mode if set_test_servers matches (changeset 53373) - * FEATURE: added phpdoc comments to the API calls for customising CMS rebranding (changeset 53216) - * BUGFIX: Ticket #2449 - Fixed unsubscribe function - because it's extending ContentController without a data record, we have to hack this by using null in the parent::__construct() - This however, should be refactored to have a data record (page in the CMS) (changeset 53210) - * MINOR: PHP notice fix - undefined variable (changeset 53204) - * MINOR: Fixed some php notices (changeset 53188) - * BUGFIX: Removed display: none for "nolabel" class - this is custom project code, and shouldn't be in sapphire! (changeset 53175) - * BUGFIX: Ticket #2455 - Check variable exists before accessing Password index (changeset 53160) - * BUGFIX: Removed undefined variable $mem - we include ini_set for memory_limit in main.php instead (changeset 53156) - * _t call for EXPORTCSV problem fixed (changeset 53106) - * DataReport EXPORTCSV field missing (changeset 53105) - * API CHANGE Removed deprecated/incomplete Synchronise class - please do not use for production purposes (changeset 53101) - * Made has_one, has_many, and many_many methods more reliable (changeset 53075) - * Fix drag&drop in assets and security (changeset 53073) - * Make double-redirects a warning rather than an error, since they are usually benign. (changeset 53066) - * Don't redirect from /home to / if you've already called a redirection. (changeset 53066) - * Fixed ContentController where ->dataRecord is empty (changeset 52719) - * Don't strtolower ->action, as it had too many side-effects. (changeset 52452) - * #2387 - Fields specified in DataObjectDecor not saved in some cases (changeset 52448) - * Newsletter import: only send a change notification email if there are changes to be sent (changeset 52434) - * #2378 - Fixed newsletter import (changeset 52432) - * Fixed Authenticators to work with r52400 (changeset 52401) - * #2299 - Fatal error in specific version of PHP (changeset 52400) - * BUGFIX re-initializing tabstrip javascript after ajax-reload in AssetTableField popup (#2309 AssetTableField popup fails after saving) (changeset 52399) - * Fix to ManifestBuilder when running site on windows in a directory containing \r or \t or \n (changeset 52398) - * #2388 - Fixed CMS search. (changeset 52395) - * BUGFIX disable third party browscap by default (#2336) (changeset 52394) - * formatting (changeset 52393) - * Upgraded SWFUpload to improve CMS uploads (changeset 52392) - * Show security id errors on test sites as well as dev (changeset 52391) - * Improved behaviour of contentcontrollerInit when extensions are applied to subclasses of SiteTree (changeset 52350) - * fix comment admin not working correctly (changeset 52309) - * Added LeftAndMain::set_loading_image() for replacing the image shown when the CMS is loading (changeset 52298) - * Fix pagecomment links and feeds (changeset 52296) - * fix links in RSS feeds (changeset 52295) - * don't cache in overridden instance_get(), as the fields are different for subclasses (changeset 52293) - * #2314 - Fixed SQLMap implementation so that Group::map() returns appropriate data, and the group dropdown on the access tab works. (changeset 52224) - * #2362 - Fixed change password form (changeset 52213) - * Add scrollbar to RHS link inserter, so you can see everything (changeset 51973) - * Fix to anchor insertion (changeset 51963) - * fix php notice (changeset 51938) - * Make Object::hasMethod() and Object::__call() case-insensitive, and added tests for it (changeset 51462) - * Test for hasMethod (changeset 51461) - * Fixes to TestRunner for latest PHPUnit/PHP (changeset 51459) - * API CHANGE Allow for tests that don't use the database - don't define a static SapphireTest:: (changeset 51150) - * Fixed typo in r51150 (changeset 51151) - * Fixed HomepageForDomain behaviour when entering multiple domains (changeset 51436) - * API CHANGE Added RestfulService::httpHeader() for setting custom headers on REST requests (changeset 51203) - * API CHANGE Added RestfulService::basicAuth() for setting authentication for REST requests (changeset 51203) - * API CHANGE Added param to RestfulService::connect(), to allow for requesting of multiple URLs from a single RestfulService object. (changeset 51203) - * Updates to usability & IE support of link insertion (changeset 51081) - * #2265 Installer falsely claims modrewrite fails (mamp) (merged from trunk, r50698) (changeset 51070) - * #2282 Undefined index in install.php (merged from trunk, r50698) (changeset 51069) - * #2266 Fresh install of SilverStripe? doesn't let you upload or view images to insert, until you first go into Files and Images area (merged from trunk, r50695) (changeset 51068) - * Cleaned up ChangeLog (changeset 51064) - * updated changelog for 2.2.2 (changeset 51042) - * Added delete from stage button to CMS (changeset 50852) - * Added Translations for Danish (Denmark) - thanks to Jesper and Dennis (changeset 50824) - * Added Translations for Esperanto - thanks to Wojtek, Donald, Evan and Joop (changeset 50824) - * Added Translations for Finnish (Finland) - thanks to Elias, Vesa and Nina (changeset 50824) - * Added Translations for LOLCAT - thanks to Wojtek (changeset 50824) - * Added Translations for Sinhalese (Sri Lanka) - thanks to Nivanka, Himali and Lakshan (changeset 50824) - * Updated several translations in cms/auth_openid/sapphire (changeset 50824) - * Added package names for i18n files (changeset 50824) - * Reverted patch from r47694 which introduced conditional statements in lang-files (changeset 50824) - * Added Translations for Danish (Denmark) - thanks to Jesper and Dennis (changeset 50824) - * Added Translations for Esperanto - thanks to Wojtek, Donald, Evan and Joop (changeset 50824) - * Added Translations for Finnish (Finland) - thanks to Elias, Vesa and Nina (changeset 50824) - * Added Translations for LOLCAT - thanks to Wojtek (changeset 50824) - * Added Translations for Sinhalese (Sri Lanka) - thanks to Nivanka, Himali and Lakshan (changeset 50824) - * Updated several translations in cms/auth_openid/sapphire (changeset 50824) - * Added package names for i18n files (changeset 50824) - * Reverted patch from r47694 which introduced conditional statements in lang-files (changeset 50824) - * Added Translations for Danish (Denmark) - thanks to Jesper and Dennis (changeset 50824) - * Added Translations for Esperanto - thanks to Wojtek, Donald, Evan and Joop (changeset 50824) - * Added Translations for Finnish (Finland) - thanks to Elias, Vesa and Nina (changeset 50824) - * Added Translations for LOLCAT - thanks to Wojtek (changeset 50824) - * Added Translations for Sinhalese (Sri Lanka) - thanks to Nivanka, Himali and Lakshan (changeset 50824) - * Updated several translations in cms/auth_openid/sapphire (changeset 50824) - * Added package names for i18n files (changeset 50824) - * Reverted patch from r47694 which introduced conditional statements in lang-files (changeset 50824) - * #2283 Permissions are a bit broken - what happened to all the CMS permissions? (changeset 50957) - * #2310 MemberTableField Popup breaks after saving (changeset 50954) - * #2310 MemberTableField Popup breaks after saving (changeset 50954) - * BUGFIX fixed csv export in MemberTableField by checking for valid database columns when building SELECT statement (changeset 50952) - * FEATURE added hasDatabaseField() (changeset 50949) - * BUGFIX properly setting $childID in form for newly created items to avoid duplicates after subsequent saving (the form reloaded without the ID connection) (changeset 50947) - * Make RSS feed work with objects that don't support AbsoluteLink, such as the forum (changeset 50921) - * fixing typo in parameter name $validate --> $validator (changeset 50641) - * made $messageType parameter of Validator::validationError optional, and added API docs to explain what (apparently) is going on (changeset 50645) - * fixing bug with in-memory child objects not having their parent ID field updated via the ->add() method (changeset 50815) - * #2302 - Fixed double-escaping of CTF popup page-navigation links (changeset 50903) - * reverted r49775 (accidental removal of "add" feature, its actually not redundant functionality) (changeset 50854) - * fixed xhtml error (forgot closing `

`) (changeset 50849) - * updated en_US master entities (changeset 50844) - * updated en_US master entities (changeset 50844) - * updated en_US master entities (changeset 50844) - * fixed PHP notices (changeset 50840) - * fixed PHP notices (changeset 50838) - * formatting, fixed PHP notices (changeset 50836) - * fixed PHP notice (changeset 50829) - * documentation (changeset 50814) - * #2285 - Fixed widget editor (changeset 50812) - * added $searchable_fields in preparation for a more generic search implementation, currently limited to Member.php and MemberTableField.php (mainly to fix bugs caused by r49774 and r47856) (changeset 50805) - * fixed weird indentation formatting in Member.php (changeset 50805) - * Fixed default-setting for link anchor (changeset 50786) - * Added 'anchor' option to link inserter (changeset 50783) - * Fixed svn:externals (changeset 50776) - * Moved externals to used HTTP for 3rd-party friendliness (changeset 50764) - * fixed typo (changeset 50729) - * added database indexes for AuthorID and PublisherID (changeset 50723) - * #2265 Installer falsely claims modrewrite fails (mamp) (changeset 50697) - * #2295 - DataObjectSets cannot be iterated over multiple times concurrently (changeset 50683) - * #2280 - Fixed XML parsing errors in CTF (changeset 50488) - * #2287 - Removed notice-level error when geoip's not installed (changeset 50487) - * Fixed newlines in to-do report (changeset 50361) - * #2277 - Fixed notice-level error on controllers that are direct subclasses of controller (changeset 50352) - * Added support for password and old_password encryption mechanisms if you're using MySQL (changeset 50290) - * Small fix for session bugs on Lightspeed server (changeset 50245) - * A bit of a hack to fix double-escaped URLs in the CMS. (changeset 50214) - * Fixed CMS bottom-navigation after publish, when using the subsites module (or other alternateAbsoluteLink implementors) (changeset 50205) - * Fixed password emailing for edited members (changeset 50200) - * Allow use of on controller extensions (changeset 50180) - * Fixed 4.1-sort-by-group-aggregate query rewriter for sort functions containing columns, eg, ORDER BY if(A,B,C), X (changeset 50179) - * Fixed notice level error (changeset 50047) - * Fixed bug with BasicAuth enabled on an old database, it was preventing you from visiting db/build (changeset 50031) - * Fixed MySQL 4.1 support for situations where we are sorting by a group aggregation function (changeset 49999) - * Fixed notice level error (changeset 49999) - * fixed caching in getManyManyComponents (see r43848) (changeset 49946) - * removed redundant error strings (changeset 49922) - * Added a default exception handler. Any uncaught exceptions thrown from application code are now scooped up by the Debug::fatalHandler (changeset 49906) - * (changeset 49906) - * Still some small problems with displaying stack traces of exceptions because the context array from trigger_error looks quite different from that of Exception::getTrace (changeset 49906) - * (changeset 49906) - * Also fixed a couple of echo/print bugs in Debug::friendlyError. From the looks of the code there may be more bugs to cleanup here. (changeset 49906) - * Fixed Controller::allowed_actions documentation (changeset 49896) - * Added to main CMS controllers (changeset 49895) - * Removed warning in group admin (changeset 49894) - * Improved allowed_actions support for subclassed controllers, such as CMSMain extends LeftAndMain (changeset 49893) - * Removed use of deprecated setExtraClass (changeset 49892) - * Moved _ss_environment.php include to very top (changeset 49891) - * Added deprecation note to BulkLoaderAdmin (changeset 49890) - * added $casting for BaseHref() (changeset 49843) - * fixed sql-injection (changeset 49834) - * Updated AssetAdmin to use TreeTitle() in place of Title for tree generation (changeset 48425) - * > Updated TreeTitle() to allow use of alternateTreeTitle() in decorator (changeset 48425) - * > Updated File to allow the insertion of extra columns by decorator (changeset 48425) - * Updated subject line of warning/error emails (changeset 49732) - * Moved folder admin form to Folder::getCMSFields() to let you more easily manipulate the form with a decorator (changeset 49804) - * Disabled notice level error until more of the core is compliant (changeset 49803) - * Moved CMS page-disabled logic into SiteTree::CMSTreeClasses(), so that it can be more easily customised for specific sites (changeset 48376) - * Added Member->SetPassword, a field that lets you have a write-only password field (changeset 46525) - * Used Member->SetPassword to create a password column on the MemberTableField for SecurityAdmin (changeset 46525) - * Send 'changed password' emails when a user is first created as well as edited (changeset 46525) - * Fixed DataObjectSet::insertFirst() - it now uses a numeric key rather than null (changeset 45750) - * Create Group::canEdit(), which can be used to filter the SecurityAdmin group list (changeset 45748) - * Redirect to legislation section when there are only legislation pages (changeset 45654) - * Allow selection of folder when inserting files / images (changeset 45654) - * Minor bugfixes (changeset 43980) - * Added additional checks so that the email doesn't get sent to new members, or on the test site. (changeset 43384) - * Used Object::create() to create email instances sent by the system. (changeset 43342) - * Added BaseHref() to Member_ChangePasswordEmail so that the email shows the domain name of the current subsite. (changeset 43340) - * Tidied up lost password form. (changeset 43339) - * Added Member::$notify_password_change (changeset 43336) - * Added missing ChangePasswordEmail.ss (changeset 43335) - * Saving the member with a changed password now sends an email to the member. (changeset 43334) - * Updated AssetAdmin to use TreeTitle() in place of Title for tree generation (changeset 48425) - * > Updated TreeTitle() to allow use of alternateTreeTitle() in decorator (changeset 48425) - * > Updated File to allow the insertion of extra columns by decorator (changeset 48425) - * Updated core to allow for subsites restriction of filesystem: Folder::getCMSFields() is now responsible for generating the folder form. (changeset 48401) - * Folder::syncChildren() now exclusively uses DB::query() calls instead of DataObject::get(). (changeset 48401) - * Moved CMS page-disabled logic into SiteTree::CMSTreeClasses(), so that it can be more easily customised for specific sites (changeset 48376) - * Removed redundant Add Member button at the top-right (changeset 46526) - * Added Member->SetPassword, a field that lets you have a write-only password field (changeset 46525) - * Used Member->SetPassword to create a password column on the MemberTableField for SecurityAdmin (changeset 46525) - * Send 'changed password' emails when a user is first created as well as edited (changeset 46525) - * Changed call to ViewableData::castingHelperPair to fix sort not being set by getNewItem (changeset 43365) - * Added LeftAndMainSubsites->augmentNewSiteTreeItem that allows extensions of LeftAndMain to provide the current SubsiteID for the new item. (changeset 43321) - * CMSMain->getNewItem now calls $this->extend('augmentNewSiteTreeItem', $newItem); (changeset 43321) - * Changed DataObject to be a subclass of ViewableData instead of Controller, so that it can't be hacked by visiting Page/write. (changeset 49767) - * reverted accidental delete in r49761 (changeset 49766) - * e-This line, and those below, will be ignored-- (changeset 49766) - * (changeset 49766) - * A svn://svn.silverstripe.com/silverstripe/open/themes/blackcandy/trunk/blackcandy_blog (changeset 49766) - * reverted accidental delete in r49760 (changeset 49765) - * revert accidental commit in r49763 (changeset 49764) - * readding blackcandy (reverted r49761, r49762) (changeset 49763) - * Removed unused blackcandy blog (changeset 49762) - * Removed unused themes (changeset 49761) - * #2200 - Allowed subclasses in ComponentSet::add/remove (changeset 49715) - * #1878: wakeless: Supress disabled errors on live site (changeset 49709) - * Merged r49479 from branches/2.1.1-madebyme (changeset 49658) - * Merged r46528 from branches/2.1.1-madebyme (changeset 49657) - * Bypass debug handler for E_USER_NOTICE as well as E_NOTICE (changeset 49593) - * #2203 - ManifestBuilder regex (changeset 49448) - * fix caching in complex table field (changeset 49447) - * added setFields()/setActions() (changeset 49386) - * formatting (changeset 49386) - * reverted accidental commit (changeset 49352) - * added gwgtn theme files (changeset 49349) - * Added SS_DEFAULT_ADMIN_USERNAME/PASSWORD defines to conf/ConfigureFromEnv.php (changeset 49308) - * #177 - Don't let people create a page name the same as a class name (changeset 49193) - * Disabled unused files list, as it uses way too much memory (changeset 49192) - * #1921 - Make DataObject::write() call the recursive write on components, even when the dataobject itself hasn't changed (changeset 49187) - * #1956 - Show Title in RSSFeed (changeset 49184) - * simon_w: #1954 - Added object caching methods (changeset 49182) - * #1951 - Fix newsletter subscription form (changeset 49181) - * Removed clone behaviour from Form::Fields() (changeset 49180) - * Added SubscribeSubmission template to get subscribeforms to work (changeset 49177) - * Added default SubscribeForm.ss (changeset 49176) - * Fixed ManifestBuilder execution in restrictive openbasedir environments (changeset 49172) - * #1987 - Fixed sitename/?url=sitename bug (changeset 49151) - * #2016 - Added all the types of error pages (changeset 49150) - * #2137 - Changed email encoding from iso-8859-15 to utf-8, in compliance with other parts of SilverStripe and IMC recommendations (changeset 49149) - * fixed i18n::get_owner_module() calls on classes with _s (changeset 49148) - * Improvement to link-insertion logic when selecting text that doesn't have a link (changeset 49147) - * #1881 - Duplicated words in error message text (changeset 49066) - * documentation (changeset 49033) - * documentation (changeset 49032) - * fixed typo in doc comment (changeset 48972) - * fix sql error on comments section (changeset 48970) - * #2088 - Notice level error on compare versions (changeset 48969) - * #2005 - Fixed seamonkey browser recognition (changeset 48968) - * fix upload folder (changeset 48857) - * #2212 / #2201 - Fix notice-level errors in PageView updates (changeset 48941) - * mrickerby: #2201 - fixed PageView's recording of referrers. (changeset 48912) - * For some project we need server run some scheduled task yearly, such as upgrade high school students for GSO. (changeset 48906) - * updating form in ctf-popup after saving (including validation-errors and fields that have may changed on the serverside, e.g. ImageField) (changeset 48874) - * not all cms panel has sitetree, so better check if($('sitetree')) exsit, otherwise IE broken with all genericDataAdmin panel. (changeset 48869) - * adding "delete" class to DeleteImageForm (changeset 48865) - * compressed ImageField layout to fit in CTF-popup (removed "click here to remove" label) (changeset 48855) - * removed iframe-borders for IE (changeset 48855) - * fixed "object not found" error in ie6 (somehow Observable is not applied to sitetree at window-load) (changeset 48847) - * Polishing EducatorAdmin's Students Tab (changeset 48844) - * locking down URLs: image/iframe, image/flush, image/transferlegacycontent (changeset 48835) - * Recover ExportForm for genericDataAdmin Which is needed for CRM CreateCommunication (changeset 48792) - * Add ability to choose which file to upload to in a FileField (changeset 48785) - * Fixed illegal reference to this (changeset 48688) - * Put MenuTitle in the CMS LHS tree instead of Title (changeset 48462) - * (changeset 48451) - * Fix incorrect text boxes being set on an ajax request (changeset 48178) - * Allow many-many complex table fields to be used on the reverse side of the join (belongs many many) (changeset 48082) - * Removed ranking tools from DataObjectSet (changeset 47743) - * implemented equal values (changeset 47459) - * (changeset 47454) - * Added simple to-do list facility to SiteTree (changeset 47172) - * Added title attributes to the SilverStripeNavigator messages (changeset 47156) - * Fix bug when duplicating pages with reorganise enabled (changeset 48507) - * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) - * Added 'duplicate page and children' context-item in addition to 'duplicate just this page' (changeset 48503) - * Fixed context menus in CMS (changeset 48474) - * Fixed 404 on spacer.gif (changeset 47190) - * Fixed bug in todo list reprot (changeset 47174) - * Added simple to-do list facility to SiteTree (changeset 47172) - * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47157) - * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) - * #2005 - Fixed fatal error due to browscap.ini capitalisation error (changeset 48514) - * Updated windmill tests - sleeps and waits (changeset 48431) - * Added in_array_recursive() to ArrayLib, for recursively checking an array with nested arrays (changeset 48423) - * fix the bug that initialises with preloaded selected items with right hide/show (changeset 48419) - * Added sapphire/conf/ConfigureFromEnv.php for making use of _ss_environment.php (changeset 48359) - * Fixed formatting of code, and added some documentation on what the source for this field should be (changeset 48326) - * (changeset 48313) - * Fix sorting in complextablefield (changeset 48257) - * wakeless: #2144 - More memory-efficient version of admin/publishall (changeset 48242) - * #1736 - Make Security::get_encryption_algorithms() a dynamic function again. (changeset 48227) - * Fixed comment. (changeset 48200) - * Fixed bug: Page class wasn't shown in add-page dropdown (changeset 48176) - * Fixed admin credentials setting from 'make install' and 'make test' (changeset 48175) - * Added the contents of assets/ to svn:ignore (changeset 48175) - * Added Windmill test for editing content (changeset 48173) - * Re-enabled session_regenerate_id() (changeset 48172) - * renamed escapeFlagForField() to escapeTypeForField(), updated documentation (changeset 48168) - * Deprecated use of DBField 'Text' for saving HTML-Content (added check in HTMLEditorField->saveInto()) (changeset 48164) - * Added ViewableData->escapeFlagForField() to determine if the record-field needs escaping (currently only 'xml' supported) (changeset 48164) - * Refactored session_regenerate_id to make it easier to disable in some circumstances. (changeset 48161) - * Temporarily disabled session_regenerate_id so that Windmill can work. (changeset 48161) - * Removed notice level errors for better cli-script operation (changeset 48153) - * Better error for cli-install errors, uses exit(1) to stop make (changeset 48152) - * Added note about Makefile so that people don't think they should use that for normal installation. (changeset 48133) - * Allow calling of installer by running 'make install' from an environment with an _ss_environment.php file. This is important for continuous integration. (changeset 48132) - * formatting (changeset 48113) - * formatting (changeset 48112) - * removed dropDatalessFields() - needs serious refactoring before going into core again (changeset 48110) - * removed dropDatalessFields() - needs serious refactoring before going into core again (changeset 48109) - * renamed $wantDefaultAddRow to $showAddRow (changeset 48105) - * fixed escaping errors in default homepage content (changeset 48104) - * Added Makefile so that you can execute 'make test' in sapphire and it will run tests. (changeset 48100) - * Added support for array in _ss_environment.php for specifying URLs to use for cli-script.php (changeset 48100) - * Improved the Behaviour.addLoader() method to play more nicely with tools such as windmill (changeset 48086) - * fix bug: when no source items found, the table should still show and it should works as adding new records (changeset 48085) - * Fixed the $hide_ancestor static on SiteTree subclasses so that it actually works. (changeset 48056) - * Fixed login test (changeset 48049) - * Added initial windmill test (changeset 48042) - * Fix php notice (changeset 47985) - * FIx php notice (changeset 47982) - * Fix autocompletion in Security Admin (changeset 47956) - * #892 - Error attaching an existing folder to an ImageField (changeset 47948) - * Fix spelling mistake (changeset 47947) - * Remove having clause as it can't be used (changeset 47946) - * simon_w: #2122 - Bug in PageComments class (Security) (changeset 47937) - * #2058 - Installer does not escape passwords in _config files (changeset 47910) - * converted TODO into @todo for better PHPDocumentor support (changeset 47891) - * Fix i18n errors (changeset 47890) - * #2094: Make ContentNegotiator send XHTML to the W3C validator (changeset 47882) - * Fix externals (changeset 47881) - * Fix DataObjectSet constructor breaking with associative arrays (changeset 47880) - * simon_w: #2118 - When removing a value from an enum, set affected rows back to the default (changeset 47877) - * simon_w: #2098: Fixed notice level error (changeset 47876) - * #1874 - generated .htaccess lacks "Rewritebase" (changeset 47875) - * fix wrong warning info: Director -> Debug (changeset 47858) - * rbarreiros: 019 - Lost Locale when translatable string not found (changeset 47857) - * rbarreiros: #1907 - Patch for more i18n strings (changeset 47856) - * #1959 - You can't reorganise pages without creating pages (changeset 47855) - * Don't fail in i18n::include_by_class if the module isn't translatable (changeset 47854) - * Remove debug message (changeset 47847) - * Added $SecurityID for templates (changeset 47846) - * lperera: #1975 - Improvements to RestfulService (changeset 47844) - * #2003: Don't close img and br tags on HTMLText.Summary (changeset 47843) - * Fix syntax error (changeset 47842) - * Error checking in i18n::include_by_class shouldn't complain if mysite/lang doesn't exist - only if a module doesn't have internationalisation options. (changeset 47841) - * Reverted 47595, are it broke $defaults (changeset 47840) - * rbarreiros: #1918 Translate newsletter and other strings (changeset 47839) - * Fix building manifest before database is created (changeset 47838) - * #1352 - Better handling of memory limit (changeset 47836) - * #1212 - Show the saved value of EditableEmailField.SendCopy (changeset 47832) - * #1352 - Better handling of memory limit (changeset 47831) - * Allow insertion of `` tags that refer to external domains (changeset 47827) - * Add alt= to any images that don't have alt tags (changeset 47827) - * Improvements to API docs (changeset 47826) - * documentation (changeset 47815) - * allowing object-parameters in DataObjectSet and ArrayData, added ArrayData::object_to_array() (changeset 47808) - * added is_associative() (changeset 47807) - * added lc_XX locale for LOLCAT (changeset 47813) - * Improved API documentation (changeset 47806) - * Improved API documentation (changeset 47805) - * Moved test control files into sapphire/testing, so that sapphire/tests can be ignored by the documentor. (changeset 47804) - * Use lighter version of browscap.ini (changeset 47802) - * #1088 - attachments cannot be emailed from mac or windows systems (changeset 47800) - * #172 - Reorganise : new page (changeset 47797) - * Fix php notice (changeset 47792) - * API Documentation updates (changeset 47773) - * Added tests for DataObject (changeset 47767) - * Take orderby clause into account when caching in DataObject::get_one() (changeset 47756) - * Fix caching in DataObject::get_one() (changeset 47755) - * Remove HAVING clause from methods where it doesn't make sense to have them (changeset 47754) - * set $template and $itemClass to public (according to parent implementation) (changeset 47748) - * fixed formatting (changeset 47748) - * fixed getParentIdName() call in DetailForm() - paramter-order was wrong (changeset 47747) - * better checking in saveComplexTableField() to avoid PHP-notice (changeset 47747) - * Fix YAML many_many/has_many relationships (changeset 47746) - * YAML comma seperated => lists should work on has_meny relationships as well (changeset 47739) - * Added package tags and docblock info for API documentation (changeset 47733) - * Fixed whitespace (changeset 47733) - * Updated API documentation package tags (changeset 47732) - * Fixed some whitespace (changeset 47732) - * Removed unnecessary file CMSHelp (changeset 47729) - * Removed unnecessary class Staged (changeset 47725) - * Fix stack trace on objects that don't extend the Object class (changeset 47723) - * PDODatabase got the wrong end of the stick - Database::createDatabase() shouldn't need any arguments. Fixed this in the core class and MySQLDatabase, but PDODatabse still needs fixing. (changeset 47698) - * Fixed TestRunner (changeset 47699) - * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) - * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) - * wakeless: #1976 - DataObject queries the database for child elements when it hasn't been serialized (changeset 47695) - * #1666 - Interface translations don't show in footer (changeset 47694) - * Fix title and description in RSS feeds (changeset 47688) - * Update copyright to 2008 (changeset 47657) - * update copyright to 2008 (changeset 47654) - * Update copyright to 2008 (changeset 47653) - * Added release date (changeset 47430) - * Updated Changelog (changeset 47262) - * Updated ChangeLog (changeset 46870) - * add function fieldByName (changeset 47479) - * made breadcrumbs-delimiter configurable (changeset 47634) - * Reversed isset() change which was causing some side effects (changeset 47602) - * Fixed PHP notice undefined index - $messageSet['alreadyLoggedIn'] (changeset 47600) - * Fixed ID undefined PHP notice error (changeset 47595) - * removed DetailForm() (was just needed to set custom class which is now in $popupClass), updated saveComplexTableField() to reflect parent class code (changeset 47593) - * added $popupClass to avoid duplication, getting basedataclass for existing children in DetailForm() (in case we're dealing with different subclasses) (changeset 47592) - * more solid ID-detection in php() (changeset 47591) - * additional checks before foreach() loop (changeset 47589) - * fixed PHP notice in implementorsOf (changeset 47588) - * #2069 Locale file /lang/en_US.php should exist (Windows) (changeset 47587) diff --git a/docs/en/04_Changelogs/2.2.3.md b/docs/en/04_Changelogs/2.2.3.md deleted file mode 100644 index b02ca6e60..000000000 --- a/docs/en/04_Changelogs/2.2.3.md +++ /dev/null @@ -1,36 +0,0 @@ -* BUGFIX: Don't allow calling of magically added methods via URL unless explicitly listed in allowed_actions (changeset 64988) -* BUGFIX: Fixed HTTP/1.0 support (changeset 64722) -* Fix typo (changeset 64643) -* Fix accept button in CommentAdmin not working (changeset 64640) -* Fix CMS export (changeset 64639) -* MINOR: PHP notice fixes (changeset 64638) -* MINOR: fix php notice (changeset 64637) -* Allow default value to be set on CountryDropdownField (changeset 64636) -* Add ability to disable 'None' option and to choose the title field in TypeDropdown (changeset 64635) -* BUGFIX: Allow disabling of updateCMSFields() on SiteTree so subclasses that want decorators to have access to (changeset 64634) -* their added fields can call it themselves. (changeset 64634) -* MINOR: Fix PHP notices (changeset 64625) -* Show '(Choose)' text on TreeDropdownField when a non-existent object is selected, as can happen when related data is removed (changeset 64355) -* When calling Folder::findOrMake(), set the Title as well as the Name of new folders (changeset 64354) -* Allow updating of File detail CMS fields by defining updateCMSFields in a decorator (changeset 64353) -* Add macron about native name of maori (changeset 64130) -* Added ->itemWriteMethod parameter, to adjust the way that CTFs write (for instance, to save and publish instead of just save) (changeset 64128) -* BUGFIX: Form::sessionMessage() didn't set type (changeset 63966) -* Fixed sorting in TableListField and subclasses (changeset 63524) -* Removed hard-coded limits in ConfirmedPasswordField. This should be configured in a member password validator (changeset 63405) -* BUGFIX: Fixed tree.js to work with TreeMultiselectField (changeset 63343) -* ENHANCEMENT: Use get variable rather than session for Security::permissionFailure()'s BackURL, as it's more reliable (changeset 63030) -* BUGFIX Set ID of lostpassword page to -1 so we don't get top level pages (changeset 62107) -* as its children (changeset 62107) -* BUGFIX Revert r61631 for Translatable but kept SiteTree changes instact from that revision since they are still useful (changeset 61815) -* API CHANGE: Decorators on SiteTree can now define updateCMSActions (changeset 61625) -* API CHANGE: Decorators on SiteTree can now define updateCMSActions (changeset 61624) -* BUGFIX: Don't show publish button when editing translatable page, as it is broken (changeset 61624) -* BUGFIX: search is now html valid! (changeset 60980) -* merged from trunk (changeset 60651) -* BUGFIX: Fix typedropdown not working when there are no records of that (changeset 60240) -* dataobject. (changeset 60240) -* commented out line 121 that put line breaks (changeset 60194) -* add missing semicolon (changeset 60026) -* Fix null title value on tiny mce inserted images (changeset 60025) -* Overwriting Date.php to output US Date format (changeset 59710) \ No newline at end of file diff --git a/docs/en/04_Changelogs/2.2.4.md b/docs/en/04_Changelogs/2.2.4.md deleted file mode 100644 index 8ac7a6b66..000000000 --- a/docs/en/04_Changelogs/2.2.4.md +++ /dev/null @@ -1,43 +0,0 @@ -# 2.2.4 (2009-03-20) - -## Features and Enhancements - - * ![rev:65263] Default permission failure message set can be changed - * ![rev:73365] Text->FirstParagraph?() now works for `

` containers in HTML, as you may not always have paragraph tags. - * ![rev:73272] Added Director::is_relative_url() and Director::is_site_url() - * ![rev:69634] After a javascript validation error from a form submission, focus on the first errored field - -## Bugfixes - - * ![rev:73367] Allow translation of front-end content into all languages, not just common ones (Merged from r64943) - * ![rev:73347] Removed canEdit() call that doesn't exist in SecurityAdmin::savemember() - * ![rev:73319] Added missing action 'DeleteImageForm' to Image::$allowed_actions - * ![rev:73305] Added missing action 'EditImageForm' to Image::$allowed_actions - * ![rev:73302] Fixed too strict permission checking on Image::$allowed_actions. Replaced broken * permission check with explicit method names - * ![rev:73298] Fixed array to string conversion caused by patch committed in r73272 - * ![rev:73295] Validating $_FILES in Image::loadUploadedImage() (Original patch was applied to Upload->validate() in trunk - r73254) - * ![rev:73294] Validating $_FILES in Folder::addUploadToFolder() (Original patch was applied to Upload->validate() in trunk - r73254) - * ![rev:73292] Fixed undefined variable $backURL that should've been $_REQUEST['BackURL'] - * ![rev:73282] Using $allowed_actions in ImageEditor (Merged from r73248) - * ![rev:73280] Using $allowed_actions in Image_Uploader (Merged from r73255) - * ![rev:73279] Validating $_FILES in File::loadUploaded (Original patch was applied to Upload->validate() in trunk - r73254) - * ![rev:73278] Existence check for Member autologin token (Merged from r73253) - * ![rev:73276] Checking for Director::is_site_url() before redirecting in Controller->redirectBack() and MemberLoginForm (Merged from r73252) - * ![rev:73273] Added isDev() and Permission::check() directives to DatabaseAdmin (Merged from r73251) - * ![rev:73272] Validating $_FILES array in Director::direct() - * ![rev:73271] Using auto-escaped get_by_id() in CommentAdmin and SecurityAdmin (Merged from r73247) - * ![rev:72220] changed target blank to only exist by default for files - * ![rev:69598] Corrected layout of Security/lostpassword and Secuirty/changepassword pages to not show a glitchy main menu, ie, matches Security/login - * ![rev:69138] Fix readonly checkbox fields always setting the field to true - * ![rev:65490] Fixed usability issue with CalendarDateField required field validation. Slightly over-coupled; resolve that in the jQuery validation rewrite. - * ![rev:65258] Fixed ComplexTableField showing export link correctly - * ![rev:65219] Fixed i18n entity problem with TableListField_Item.ss - * ![rev:69594] Corrected changed-password email layout - * ![rev:67482] Merged db/build fix for auto_increment - * ![rev:65473] Preserve BackURL get-variable on failed log-ins - * ![rev:65488] Removed 'Welcome back, FirstName', message that appears if you log-in, out, then in again - * ![rev:66552] Make sure only fields that exist can be autocompleted on MemberTableFields, and never autocomplete on password. (merged from branches/2.3) - * ![rev:69440] forced tinymce to keep iframes in html rather then deleting them - * ![rev:66769] Reverted r66440 - this was causing too many bugs - * ![rev:66479] Fixed error on CommentAdmin - * ![rev:66440] Merged r57599 from branches/roa diff --git a/docs/en/04_Changelogs/2.3.0.md b/docs/en/04_Changelogs/2.3.0.md deleted file mode 100644 index 7d70ed146..000000000 --- a/docs/en/04_Changelogs/2.3.0.md +++ /dev/null @@ -1,2132 +0,0 @@ -# 2.3.0 (2009-02-23) - -## Upgrading - -### Translatable Problems - -**Don't use Translatable for multilingual database content. Don't upgrade to 2.3.0 if you're already using -Translatable.** - -The [Translatable extension](/developer_guides/i18n) is currently marked as -unstable for the initial 2.3 release. **If your site uses more than one language for page content, don't upgrade to this -release.** We're working on bugfixes which will be contained in a minor 2.3.x release soon. Check our [releaseannouncements](http://groups.google.com/group/silverstripe-announce) for updates on Translatable bugfixes. - -### BasicAuth disabled on test sites by default - -Basic auth isn't enabled by default on test sites. If you need this, put this in your _config.php - - if(Director::isTest()) BasicAuth::enable(); - - -### /silverstripe and /cms no longer work as aliases to /admin - -Removed certain URL aliases for CMS interface to allow for common page URLs like "silverstripe" or "cms". Please use -/admin as the main URL to access the CMS. See http://open.silverstripe.com/ticket/3267 - -### SiteTree Access tab now lets you select multiple groups - -In order to do this, `SiteTree->ViewersGroup` and `SiteTree->EditorsGroup` have been changed from has_one relations -to many_many relations. - -Your group-assignements for "Who can view this page" and "Who can edit this page" should be automatically migrated upon -calling `dev/build`. See [#2847](http://open.silverstripe.com/ticket/2847) - -### Newsletter moved into new module - -Newsletter functionality has been moved into its own module called **[newsletter](http://addons.silverstripe.org/add-ons/silverstripe/newsletter)**. If you were -previously using this as a feature out of the box with SilverStripe, then you will need to download the userforms module -to continue using it. - -If you **don't** require the functionality, it's safe to delete these database tables: - -* Newsletter -* NewsletterType -* SubscribeForm -* UnsubscribeRecord - -#### auth_openid removed from default installation - -The auth_openid module has been removed from default installation. Please install the module separately from -[silverstripe.org](http://silverstripe.org/auth-openid-module/) - -### GenericDataAdmin and RelatedDataEditor moved into new module - -GenericDataAdmin functionality has been moved into its own module. If you were previously using this as a feature out of the box with -SilverStripe, then you will need to download this module to continue using it. - -### User Defined Form moved into new module - -User Defined Form has been moved into its own module called **[userforms](http://addons.silverstripe.org/add-ons/silverstripe/userforms)**. If you were previously -using this as a feature out of the box with SilverStripe, then you will need to download the userforms module to -continue using it. - -//Important note: If you **do** have an existing page of User Defined Form type in your CMS site tree, it's best to -install the module first as shown above. If you run dev/build?flush=1 without installing userforms, you'll lose the User -Defined Form page type until you install it then run dev/build?flush=1.// - -If you **don't** require the User Defined Form functionality, it's safe to delete these database tables: - -* EditableCheckbox -* EditableCheckboxOption -* EditableDropdownOption -* EditableEmailField -* EditableFileField -* EditableFormField -* EditableMemberListField -* EditableRadioOption -* EditableTextField -* SubmittedFileField -* SubmittedForm -* SubmittedFormField -* UserDefinedForm -* UserDefinedForm_Live -* UserDefinedForm_versions - -### PostBackup - -PostBackup has been moved into a module. See [postbackup -module](http://open.silverstripe.com/browser/modules/postbackup/trunk). - -### /db/build/?flush=1 is now called /dev/build - -Flushing the manifest with `?flush=1` doesn't need to be explicitly added. - -### Core API Changes - -* Removed ViewableData->setVal(), use ViewableData->setValue() === -* Removed Director::isLiveMode(), use Director::isLive() === -* Removed DataObjectSet->append(), use DataObjectSet->push() or DataObjectSet->merge() -* Removed Controller->LinkTo(), use Controller->join_links() -* Removed DataObject->getLastWriteFields(), use DataObject->getChangedFields() -* Removed Convert::raw2attr(), use Convert::raw2att() -* Removed Member->isAdmin(), use Permission::check('ADMIN') -* Removed Debug::warning(), use user_error("your message", E_USER_WARNING) -* Removed SiteTree->canView_page(), Use instance-specific SiteTree->canView() instead by checking for `$this->ID`. -* Deprecated URL parameter ?buildmanifest=1 (please use ?flush=1) -* i18ntextcollector is executed from a new URL. Use http://mysite.com/dev/task/i18nTextCollectorTask instead of -http://mysite.com/i18ntextcollector - -### Director::addRules() - -If you have made your own custom director rules with `Director::addRules`, you will need to add a double-slash into -the rule, to separate the part of the URL that specifies "this is how I get to this controller" from the part that -specifies "these are arguments to the controller". - -In other words, change this: - - :::php - Director::addRules(50, array( - 'admin/ImageEditor/$Action' => 'ImageEditor', - )); - - -To this: - - :::php - Director::addRules(50, array( - 'admin/ImageEditor//$Action' => 'ImageEditor', - )); - - - -### Decorators - -* Renamed DataObjectDecorator->extraDBFields() to extraStatics() (see -[r65065](http://open.silverstripe.com/changeset/65065)) - -* DataObjectDecorator->updateCMSFields() is now called from DataObject->getCMSFields(), instead of only SiteTree -instances - -* Changed return values for DataObjectDecorator->updateCMSActions() to FieldSet, rather than an array. - -### Data Model - -* Removed Datetime class, use SSDatetime instead (it was conflicting with PHP 5.2 integrated classes) -* Removed Text->Att(), use Text->ATT_val() instead - -### Forms - -* Removed NoScriptField, use LiteralField -* Removed EncryptField, use PasswordField -* Removed NamedLabelField, use LabelField -* Removed NoScriptFormAction, use unobtrusive scripting -* Removed FormField->setExtraClass(), use FormField->addExtraClass() -* Removed deprecated ComplexRequiredFields, `RequiredFields` and custom javascript instead -* If you have created your own FormField classes, FormField::performReadonlyTransformation() and -FormField::performDisabledTransformation() must return new form fields, e.g., cloned instances, or unit tests will fail. - -### Templates - -* '''$Top''' in templates has changed its behaviour; if you call $Top from inside a template that is rendered -separately (eg, a Form template), it will point to the top element of that template execution (in this case, the Form -object) rather than the top element of the outermost template (which would presumably be the page in question). This -was a bug that we have fixed, but some people may rely on it. See http://open.silverstripe.com/ticket/2781 - -* A `` element has been added before any `
` in all SilverStripe forms. SearchForm.ss and Form.ss are -where it has been added. This now validates the form HTML for W3C compliance. Please verify that your forms visually -look okay after upgrading. Legend can be set by calling ''->setLegend('my legend here')'' on your Form object. - -### CMS menu API - -We have deprecated the LeftAndMain menu customisation API. - -* Don't set any menu-item static variables any more. -* For the most part, you won't need to add anything to _config.php to add CMS menu items; just define the static -variables `$menu_title` and `$url_segment` on your `LeftAndMain` subclasses. - -* If you want to add a menu item that's not a subclass of `LeftAndMain` (eg, help or a link to a webstats package), -use `CMSMenu::add_menu_item()` - -* To remove a menu item, use `CMSMenu::remove_menu_item()`. It identifies items by classname rather than arbitrary -$code value. - -### ContentNegotatior is now disabled by default, mostly - -The ContentNegotatior system was a bit of voodoo that confused a lot of people, so we have disabled it by default for -regular templates. It will still enabled by default for templates that include the `` header, because these -are the only templates that benefit from it significantly. - -If you want to enable it for your HTML4 templates, then you can do so by calling `ContentNegotiator::enable()`. Note -also that the DOCTYPE altering, which was a frequent cause of pain, only executes if your original template had the -`` header. - -### Other API Changes - -* Removed deprecated File::loadallcontent(), use Upload class -* Image->URL returns relative instead of absolute URL. Use Image->AbsoluteURL instead. -* Moved DataReport and SQLReport into the ecommerce module. If you're using these classes, please see the -[ecommerce modules](http://addons.silverstripe.org/add-ons?search=ecommerce&type=&compatibility%5B%5D=3.1). - -### Default mysite/_config.php - -The installer includes a default configuration file: *mysite/_config.php*. If you have already have your own - -*mysite/_config.php*, you can safely keep your own version and disregard the new file. - -### Default validators for Form instances (PHP and JavaScript) - -Enforcing usage of a Validator instance in Forms if its not explicitly passed to the Form constructor. By default a new -RequiredField instance is used without any fields marked as required. This was necessary because some FormField -implementations rely on their validate() method, sometimes as a wrongly placed processing hook, but mostly for security -reasons. One example are file extension checks in FileField subclasses. -In most cases this won't have any effect on existing forms, although you might get additional JavaScript dependencies -like Validator.js and behaviour.js. If you want to disable JavaScript validation across forms, add the following to your -_config.php: - - :::php - Validator::set_javascript_validation_handler('none'); - -See http://open.silverstripe.com/changeset/69688 - - -## New Features - - * ![rev:71761] Allow combined files to be disabled - * ![rev:70697] CRM Security with two levels: viewable and writeable. - * ![rev:70422] added silverstripe version number to meta generator tag - * ![rev:70142] add permission control for AddForm and EditForm - * ![rev:69687] added Smiliey support to BBCode / forum. Now BBCode supports :) :P :D :( 8-) and :^). Yays for icons. Should move from BBCodeParser to TextParser so its available in tinymce but this will do for the forum - * ![rev:66163] #1531 - Allow moving files in root assets file (hamish) - * ![rev:65904] #1614: Allow use of admin/addpage?ParentID=(ID)&PageType=(Class) url to quick-add pages - * ![rev:65690] #594: Added javascript-on-demand support - * ![rev:65689] #594: Added javascript-on-demand support - * ![rev:65688] #594: Added javascript-on-demand support - * ![rev:65555] #2767 wakeless: Allow popuplation of non-DataObject tables with YamlFixture - * ![rev:65351] merged back patch for image editor. Currently completely broken on trunk this patch does nothing to fix it sadly. I think its a prototype thing - * ![rev:65095] Added CMSMenu and CMSMenuItem and adjusted existing LeftAndMain subclasses to use new notation.See #2872 (thanks to hamish for the patch!) - * ![rev:64881] Making DataObject attributes translatable through i18n class, e.g. $db and all relation statics. Use DataObject->fieldLabels() to access translated attributes. - * ![rev:64877] Added JavaScript unit tests with jQuery QUnit. Can be viewed similiarly to PHPUnit tests through dev/jstests URL. Uses an `