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