Try the beta version of the new SilverStripe documentation

For the next 2 weeks you can use the new documentation website and give us your feedback.


This document contains information for an outdated version (3.0) and may not be maintained any more.

If some of your projects still use this version, consider upgrading as soon as possible.

2.1.0 (2007-10-02)

SilverStripe 2.1.0 was released on '''2 October 2007''' and had the following changes:


  • 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


Too many redirects

A problem occurs of 'too many redirects' or the page just doesn't load (home page) because of these situations:

  • Access tab for home page has 'logged in users only', OR
  • NO radio buttons have been set. This happens when upgrading site from old DB.

It's caused by a redirect to Security/login on the home page controller, which is blocked off, so you can't actually login, so it infinitely loops a redirect. See

Features and Enhancements

  • Theme support
  • Widget support
  • Better extension API
  • Unit testing framework
  • More API documentation
  • Added support for __ss_environment.php files
  • New classes
    • BankAccountField
    • BBCodeParser
    • HasManyComplexTableField
    • HasOneComplexTableField
    • ManyManyComplexTableField
    • NewsletterType
    • RestfulService (from mashups module)
      • Improved classes
    • ComplexTableField
      • Validation in popup
    • ContentController
      • Added project()
    • Controller
      • Added redirectedTo()
    • Convert
      • Added raw2htmlatt()
      • Added raw2mailto()
    • DatabaseAdmin
      • Drastically improved database build performance
    • DataObject
      • Added ID,ID,ID syntax for populating many-many joins
    • DataObjectDecorator
      • Allow member CMS fields to be added
    • DataObjectSet
      • Added getRange()
    • Date
      • Added past_date()
    • Director
      • Added set_dev_servers()
      • Added set_test_servers()
      • Added redirected_to()
      • Refactored CMS page-URL accessing to use ->AbsoluteLink(), which can be overridden by defining alternateAbsoluteLink()
    • Debug
      • Optionally hide backtrace-headers in message() and show() (applied in 'showqueries')
    • Email
      • MimeType-fallback (from /etc/mime.types)
      • Improved validation in is_valid_address()
    • FieldSet
      • Added insertAfter()
    • Form
      • Automatic filesystem backup of POST-data
    • FormField
      • Support for right-aligned titles
      • Custom CSS-classes by addExtraClass() and removeExtraClass()
    • Group
      • Added Description field
    • HtmlEditorField
      • Allow classes other than 'typography' to be set
    • Image
      • Added PaddedImage()
    • ImageField
      • Added readonly transformation
    • PageCommentInterface
      • Added anchors to page comments, and made rss feed link to them
    • Permission
      • Added $strict flag to check()
      • Allow passing of an array of permission codes to get_members_by_permission()
      • Added get_groups_by_permission()
    • PhoneNumberField
      • Improved validation
    • Security
      • Added basicauthlogin()
    • SecurityAdmin
      • Added EDIT_PERMISSIONS permission code
    • TableField
      • Validation and RequiredFields
    • TableListField
      • Added sorting, highlighting, formatting
      • Improved styling
    • TreeDropdownField
      • Improved styling
    • Varchar
      • Added RTF()
    • ViewableData
      • Added <% if HasPerm(PERM_CODE() %> for templates
  • Javascript
    • Implemented showIndicator() and hideIndicator()
    • Improved statusMessage() to clear manually instead of fixed interval
    • Added hideStatusMessage()

Bug Fixes

  • CMS
    • Fix specific newsletter bug
    • Don't show classes user doesn't have permissions to change to in class dropdown
    • Fix reading of Live pages in CMSMain
    • Fix double page reading after changing the class
    • Fix insert flash
    • Fix version regex for release candidates
    • Fix delete in Files and Images section
    • Fixed saving root folder causes error
    • Fixed "non-numeric ID" error that occurs when visiting newsletter section for a newsletter that doesn't exist (caused by session sometimes)
    • Fixed CMS sort subpages bug
  • Sapphire
    • Improved spam detection
    • Support for running SilverStripe in safe mode and under open_basedir restrictions
    • PHP notice fixes
    • Use normal authentification rather than basicauth for db/build
    • Fix CSS of profiler pop-up
    • Changed DropdownField $emptyString syntax from '0' to ''
    • Fixed IE6 DOM-parsing bug caused by FormResponse::load_form()
    • Triggering previewwrite for 'delete' and 'replace' SQL-actions
    • Changed record-insertion in DataObject
    • Boolean accepts database-default
    • Fixed Permission::get_members_by_permission()
    • Added memory_limit to publishall()
    • Fix many-many component set relation setting
    • The Link for a RedirectorPage points to its target
    • Add SQL_ prefix in place it was missing in Email
    • Added a check to make sure record exists before calling hasMethod on it in CheckboxSetField
    • Fixed bug in DataObject::addStaticVars()
    • Check for string 'true' as well as boolean in SiteTree::MetaTags()
    • Fix AllNewsletters value not being passed to OptionSetField in SubscribeForm
    • Improved the encapsulation of ErrorPage publication
    • Fix redirect back after failing login
    • Fixed renaming of .tar.gz and .tar.bz2 files
    • Fixed validation of DateField, EmailField and NumericField
    • Fix livesite bug for visibility handling difference between PHP5.2.0 and PHP5.1.6
    • Changed colouring of db/build to be more appropriate for the actual meaning of the messages
    • Fixed redirection from /home/ to /./ in IE6
    • Use the homepage as a model for the security base-page, so that things like the current subsite are factored in
    • Sorted permission codes in Permission::get_codes
    • Changes to support gallery module
    • Added missing has_many in DataObjectDecorator
    • Replace empty strings in SQL queries with NULL
  • JSParty
    • TinyMCE has been updated to


  • 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 (
  • 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


Comment policy: Please use comments for tips and corrections about the described functionality.
Comments are moderated, we reserve the right to remove comments that are inappropriate or are no longer relevant. Use the Silverstripe Forum to ask questions.

blog comments powered by Disqus