From dcc2749ed6525882258b0a8d1f332b07ddac783e Mon Sep 17 00:00:00 2001 From: ischommer Date: Thu, 19 Nov 2009 19:38:41 +0000 Subject: [PATCH] MINOR: Changed change log to point to online change log. (from r71924) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/phpinstaller/trunk@92238 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- ChangeLog | 890 +----------------------------------------------------- 1 file changed, 1 insertion(+), 889 deletions(-) diff --git a/ChangeLog b/ChangeLog index e97c5b9..ce15d67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,889 +1 @@ -SilverStripe ChangeLog - - -2.2.2 (In development) - -New Features - - Translations - - Added Translations for LOLCAT - - Added Translations for Esperanto - - Added Translations for Sinhalese - - Added Translations for Finnish - - Added Translations for Danish - - Ability to translate newsletter - -Developer Tools - - Added more unit tests - - Added Makefile so that you can execute 'make test' in sapphire - - Added SS_DEFAULT_ADMIN_USERNAME/PASSWORD defines to conf/ConfigureFromEnv.php - - Added missing ChangePasswordEmail.ss - - main.php: Moved _ss_environment.php include to very top - - ArrayLib - - Added in_array_recursive() for recursively checking an array with nested arrays - - Controller - - Improved allowed_actions support for subclassed controllers, such as CMSMain extends LeftAndMain - - Allow use of on controller extensions - - DataObject - - Added hasDatabaseField() - - DataObjectSet - - Implemented equal values - - Date - - Added TimeDiffIn() - - Email - - Changed email encoding from iso-8859-15 to utf-8, in compliance with other parts of SilverStripe and IMC recommendations - - ErrorPage - - Added all the types of error pages (ErrorPage.400,401,403 - 417,500 - 505) - - File - - Updated AssetAdmin to use TreeTitle() in place of Title for tree generation - - Updated TreeTitle() to allow use of alternateTreeTitle() in decorator - - Updated File to allow the insertion of extra columns by decorator - - FileUploadField - - Added ability to customise which folder a file is uploaded to - - Folder - - Moved folder admin form to Folder::getCMSFields() to let you more easily manipulate the form with a decorator - - Form - - Added added setFields()/setActions() - - Group - - Added canEdit(), which can be used to filter the SecurityAdmin group list - - HTMLEditorField - - Added paste plain text and paste from word buttons - - Added 'anchor' option to link inserter - - Image - - adding "delete" class to DeleteImageForm() - - Member - - Added $notify_password_change - now sends an email to the member - - Added BaseHref() to Member_ChangePasswordEmail so that the email shows the domain name of the current subsite - - Added Member->SetPassword, a field that lets you have a write-only password field - - Used Member->SetPassword to create a password column on the MemberTableField for SecurityAdmin - - Send 'changed password' emails when a user is first created as well as edited - - Added $searchable_fields in preparation for a more generic search implementation, currently limited to Member.php and MemberTableField.php - - RSSFeed - - Make RSS feed work with objects that don't support AbsoluteLink, such as the forum - - Security - - Added support for password and old_password encryption mechanisms if you're using MySQL - - SiteTree - - Made breadcrumbs delimiter configurable - - Added simple to-do list facility - - Don't let people create a page name that is the same as a class name - - Moved CMS page-disabled logic into SiteTree::CMSTreeClasses(), so that it can be more easily customised for specific sites - - Versioned - - Added database indexes for AuthorID and PublisherID - - ViewableData - - Added $SecurityID for templates - - Added escapeTypeForField() to determine if the record-field needs escaping (currently only 'xml' supported) - - Added title attributes to the SilverStripeNavigator messages - - Added $casting for BaseHref() - -Bug Fixes - - Sapphire - - Better handling of memory limit - - Fix locale files on Windows - - More solid ID-detection in Member::php() - - ComplexTableField: - - added $popupClass to avoid duplication, getting basedataclass for existing children in DetailForm() (in case we're dealing with different subclasses) - - fixed getParentIdName() call in DetailForm() - paramter-order was wrong - - better checking in saveComplexTableField() to avoid PHP-notice - - Fix title and description in RSS feeds - - Fix interface translations in CMS footer - - DataObject: - - fix for quering database for child elements when it hasnt been serialized - - Remove HAVING clause from methods where it doesn't make sense to have them - - Fix caching in DataObject::get_one() - - Take orderby clause into account when caching in DataObject::get_one() - - Removes having clause as it can't be used - - Fixed DataObjectSet::insertFirst() - it now uses a numeric key rather than null - - TestRunner: Ensured that the autoloader pulls in the test class - - Database::createDatabase() shouldn't need any arguments. Fixed this in the core class and MySQLDatabase - - Debug: Fix stack trace on objects that don't extend the Object class - - SapphireTest.php: Fix YAML many_many/has_many relationships - - HasManyComplexTableField: set $template and $itemClass to public (according to parent implementation) and fixed formatting - - Email: Fix attachments that could not be emailed from mac or windows systems - - Use lighter version of browscap.ini - - Added ArrayLib::is_associative() - - Allowing object-parameters in DataObjectSet and ArrayData, added ArrayData::object_to_array() - - Allow insertion of tags that refer to external domains and add alt= to any images that don't have alt tags - - Show the saved value of EditableEmailField.SendCopy - - ManifestBuilder: Fix building manifest before database is created - - HTMLText.Summary: Don't close img and br tags - - Don't fail in i18n::include_by_class if the module isn't translatable - - Database: When removing a value from an enum, set affected rows back to the default - - Fix DataObjectSet constructor breaking with associative arrays - - Make ContentNegotiator send XHTML to the W3C validator - - Image: Fix attaching an existing folder to an ImageField - - TableField: - - when no source items found, the table should still show and it should works as adding new records - - renamed $wantDefaultAddRow to $showAddRow - - Form: removed Form::dropDatalessFields() - - Refactored Member::session_regenerate_id to make it easier to disable in some circumstances. - - Deprecated use of DBField 'Text' for saving HTML-Content (added check in HTMLEditorField->saveInto()) - - Make Security::get_encryption_algorithms() a dynamic function again. - - Fix sorting in complextablefield - - Added sapphire/conf/ConfigureFromEnv.php for making use of _ss_environment.php - - SelectionGroup: Fix for bug that initialises with preloaded selected items with right hide/show - - Fixed fatal error due to browscap.ini capitalisation error - - Allow many-many complex table fields to be used on the reverse side of the join (belongs many many) - - Fix incorrect text boxes on many-many complex table fields and relational complex table fields being set on an ajax request - - BasicAuth: Fixed illegal reference to this - - Image: locking down URLs: image/iframe, image/flush, image/transferlegacycontent - - RelationComplexTableField: fixed "object not found" error in ie6 - - ImageField: compressed layout to fit in CTF-popup (removed "click here to remove" label), removed iframe-borders for IE - - RelationComplexTableField: added check if sitetree exists otherwise IE broken with all genericDataAdmin panel - - ComplexTableField: updating form in ctf-popup after saving (including validation-errors and fields that have may changed on the serverside, e.g. ImageField?) - - fix PageView's recording of referrers. - - File: fix upload folder - - Fixed seamonkey browser recognition in browscap.ini - - ComplexTableField: fix sql error on comments section - - fixed i18n::get_owner_module() calls on classes with _s - - Fixed ManifestBuilder execution in restrictive openbasedir environments - - Removed clone behaviour from Form::Fields() - - Object: Added object caching methods - - Make DataObject::write() call the recursive write on components, even when the dataobject itself hasn't changed - - fix ComplexTableField caching - - ManifestBuilder regex - - Debug: Supress disabled errors on live site - - Allowed subclasses in ComponentSet::add/remove - - added extra security on Controller ( checkAccessAction() ) - - Member: Used Object::create() to create email instances sent by the system. - - Object, Versioned, Hierarchy: Allow selection of folder when inserting files / images - - AjaxUniqueTextField: fixed sql-injection - - TableField: Removed use of deprecated TableField::setExtraClass() - - Group: Removed warning in group admin - - DataObject: fixed caching in getManyManyComponents - - DataObject: Fixed MySQL 4.1 support for situations where we are sorting by a group aggregation function and fixed notice level error - - Fixed bug with BasicAuth enabled on an old database, it was preventing you from visiting db/build - - DataObject: Fixed 4.1-sort-by-group-aggregate query rewriter for sort functions containing columns, eg, ORDER BY if(A,B,C), X - - Director: Small fix for session bugs on Lightspeed server - - DataObjectSets: cannot be iterated over multiple times concurrently - - fix to Installer: falsely claims modrewrite fails (mamp) - - Widget: fixed widget editor - - ComplexTableField: Fixed double-escaping of CTF popup page-navigation links - - ComponentSet: fixing bug with in-memory child objects not having their parent ID field updated via the ->add() method - - ComplexTableField: BUGFIX properly setting $childID in form for newly created items to avoid duplicates after subsequent saving (the form reloaded without the ID connection) - - TableListField: fixed csv export in MemberTableField by checking for valid database columns when building SELECT statement - - ComplexTableField: fix popup breaking after saving - - CMS - - cmsmain_left: You can't reorganise pages without creating pages - - MemberTableField: Patch for more i18n strings - - Fix i18n errors - - UserDefinedForm: Fixed notice level error - - Bug in PageComments class (Security) - - Fix autocompletion in Security Admin - - Fixed the $hide_ancestor static on SiteTree? subclasses - - Fixed bug: Page class wasn't shown in add-page dropdown - - More memory-efficient version of admin/publishall - - tinymce.template: Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS - - SideReport: fixed bug in todo list report - - Fixed 404 on spacer.gif - - Fixed context menus in CMS - - CMSMain: Added 'duplicate page and children' context-item in addition to 'duplicate just this page' - - GenericDataAdmin: Recover ExportForm for genericDataAdmin Which is needed for CRM CreateCommunication - - Added default SubscribeForm.ss - - Added SubscribeSubmission template to get subscribeforms to work - - SubscribeForm: Fix newsletter subscription form - - AssetAdmin: Disabled unused files list, as it uses way too much memory - - CMSMain->getNewItem now calls $this->extend('augmentNewSiteTreeItem', $newItem); - - Changed call to ViewableData::castingHelperPair to fix sort not being set by getNewItem - - Used Member->SetPassword? to create a password column on the MemberTableField? for SecurityAdmin? - - Send 'changed password' emails when a user is first created as well as edited - - Updated core to allow for subsites restriction of filesystem: Folder::getCMSFields() is now responsible for generating the folder form. - - Folder::syncChildren() now exclusively uses DB::query() calls instead of DataObject::get(). - - CMSMain: Fixed CMS bottom-navigation after publish, when using the subsites module (or other alternateAbsoluteLink implementors) - - SideReport: Fixed newlines in to-do report - - Javascript - - Improved the Behaviour.addLoader() method to play more nicely with tools - - tree.js: Fix bug when duplicating pages with reorganise enabled - - tiny_mce_improvements.js: Improvement to link-insertion logic when selecting text that doesn't have a link - - tiny_mce_improvements.js: Fixed default-setting for link anchor - - -2.2.1 (21 Dec 2007) - -New Features - - 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 - -2.2.0 (28 Nov 2007) - -New 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' - - -Developer Tools - - 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() - - Hierachy - - Versioned now automatically add suffixes, so Hierachy 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() - -Bug Fixes - - 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 - - -2.1.1 (2 Nov 2007) - -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 - - -2.1.0 (2 Oct 2007) - -New Features - - 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 - -Developer Tools - - 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 - - -2.0.2 (14 Jul 2007) - -New Features - - 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 - -Developer Tools - - 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 - -Bug Fixes - - 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. - - -2.0.1 (17 Apr 2007) - -New Features - - Improved layout of UserDefinedForm submissions in CMS - - Don't show name field on root folder in Assets section - -Developer Tools - - 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 - -Bug Fixes - - 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 - -2.0.0 (3 Feb 2007) - - Initial release +For a full change log, please visit http://open.silverstripe.org/wiki/ChangeLog.