# 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.