#  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 `<p>`) (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 `<img>` 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)
