This bugtracker is archived (announcement). New tickets are created on github.com. See all framework issues, cms issues, and search the module listings for more specific bugtrackers.
wiki:ChangeLog/2.3.0-rc3

2.3.0-rc3 Changelog

New Features

  • [70697] CRM Security with two levels: viewable and writeable.
  • [70422] added silverstripe version number to meta generator tag
  • [70142] add permission control for AddForm and EditForm
  • [69687] added Smiliey support to BBCode / forum. Now BBCode supports :) :P :D :( 8-). Yays for icons. Should move from BBCodeParser to TextParser so its available in tinymce but this will do for the forum

API Change

  • [70697] add Group::canView() so that give group object a different level of security control.
  • [70150] we move the filedata generation part of export() function to a new function generateExportFileData, so that, a child class could reuse the function when overload export function
  • [70057] Decimal->requireField now includes 'not null' constraint, as Sapphire doesn't expect the value to be null. MySQL switches null values to 0.00 on build.
  • [69730] Removed access to broken image editor feature
  • [69688] Enforcing usage of a Validator instance in Forms if its not explicitly passed to the Form constructor. By default a new RequiredField instance is used without any fields marked as required. This was necessary because some FormField implementations rely on their validate() method, sometimes as a wrongly placed processing hook, but mostly for security reasons. One example are file extension checks in FileField subclasses.
  • [69363] Added !ModelAdmin_!CollectionController::columsnAvailable() and !ModelAdmin_!CollectionController::columnsSelectedByDefault() that can be overridden to customise the fields available in the column selection control.
  • [69360] Add keyField and titleField arguments to SQLMap
  • [68484] ContentNegotiator? is now disabled by default, unless you include the xml header in your template. (merged from r68482)
  • [67426] Added SSViewer::set_source_file_comments() to allow disabling of comments in SSViewer output
  • [67380] Deprecated Email->setFormat()

Bugfixes

  • [71024] #3429: Fixed CMS change detection
  • [71023] #3443: Fixed refreshing of relation CTFs after editing data
  • [71018] #3442: Fix pagination in HasManyComplexTable, HasOneComplexTableField, ManyManyComplexTable
  • [70997] #3441 funkygibbon: Stop ThumbnailStripField breaking on orphaned images
  • [70994] CMS UI site content > search > add criteria select element now returns back to prompt & tweaked layout
  • [70935] adjust positioning of SilverStripeNavigator published/draft message
  • [70895] Ensure string "0" is not considered a NULL value when CsvBulkLoader imports values from a CSV file
  • [70893] reinstating silverstripe navigator and restyling to match cms ui
  • [70891] removed extra colon appearing in SilverStripeNavigator
  • [70848] Removed reference to Requirements::javascript() for including jquery as it's already included, and causes JS errors in MemberLoginForm
  • [70847] Fixed correct path to jquery.js in MemberLoginForm
  • [70832] $hide_ancestor hides Page as well when set from multiple subclasses of Page. Thanks dio5!
  • [70784] #3415 ajshort: Requesting root page via ajax now preserves isAjax value.
  • [70781] #3430 page versions don't appear automatically in Safari - versions DOM panel was floated behind the edit form
  • [70775] Fixed "cancel" button for inline "create folder" functionality (was not stopping event in IE7)
  • [70773] Disabled faulty usage of setStyle() with object literals instead of strings in SWFUpload
  • [70766] Removed hack that hid the Avatar field for the forum
  • [70750] Fix incorrect URL when adding a new Member via the MemberTableField
  • [70747]
  • [70743] 1. TableListField exportfunality random bug. 2. make Email_!BounceRecord::canCreate() return false; so that it can not be manully create from CRM, instead, it should create through email buncing system.
  • [70741]
  • [70729] Add EditForm to list of allowed actions
  • [70725]
  • [70724] Fixed loader_frame.html scrollbar madness. Removed hacked CSS and tidied up popup to work in IE6/7 and Firefox consistently
  • [70698] Group::AllChildrenIncludingDeleted() should filter on canEdit() rather than a can() call
  • [70695] $_POST[$this->Name] in !TableField::SubmittedFieldSet are not always set
  • [70691] show flash icon and box if flash file exists. MINOR: created a default editor.css file which has base css styles for the CMS.
  • [70683] cms ui added colon to image upload prompt (inline with other step)
  • [70682] cms ui remove errant dashed borders in IE6
  • [70681] cms ui text size in righthand image panel
  • [70680] Fixed behaviour.reapply() call in TableListField->refresh() javascript to applyToParent (the actual DOM container). Otherwise methods of the TableListField prototypes aren't properly attached to the DOM nodes, which causes problems like #3377
  • [70671] Fixed newsletter send button alignment
  • [70616] stopped double scrollbars on popups in IE7 (IE6 still broken)
  • [70613] Fixed styling for "Delete selected files" in the left-hand tree actions for AssetAdmin. Thanks ajshort!
  • [70609] Defined jsValidation() and validate() so that inherited validation from DateField doesn't break PopupDateTimeField - this still needs fixing, and PopupDateTimeField shouldn't inherit from CalendarDateField
  • [70604] autocomplete style change.
  • [70603] cms ui fix files & images upload images styling
  • [70602] cms ui fix files & images table styling
  • [70601] cms ui removed backgound from delete button on files & images
  • [70583] cms ui fixing up treetool
  • [70573] cms ui removed extra padding from bottom of tools
  • [70572] cms ui fix styling of tools on files & images section
  • [70567] cms ui fix styling of tools on files & images section
  • [70566] reverted previous tree tool change
  • [70565] when the total number of rows is 0 the pagination says 1 to 0 of 0
  • [70563] cms ui fix styling of tools on files & images section
  • [70561] cms ui padding on tree
  • [70545] Hidden field needs to exist for !DateField_Disabled in order for validation to pass correctly
  • [70541] cms ui padding on tree in right pane (eg. image selector)
  • [70508] cms ui tidying up tree tools
  • [70507] cms ui tidying up tree tools
  • [70497] merged patch from ajshort. Fixed getURL() so it preserved the extension
  • [70496] cms ui tidying up padding of tree tools elements
  • [70495] cms ui fix specifivity of alignment of radio buttons and labels in right pane
  • [70486] cms ui fix alignment of radio buttons and labels in right pane
  • [70481] If form.elements.ID is not defined, don't cause an error in the CMS under certain circumstances
  • [70479] cms ui site tree tools style fix
  • [70474] Fixed float issue caused by change in r70303
  • [70445] fixed size of popup on 1024x768 resolutions
  • [70441] added scroll bars
  • [70404] site tree form element alignment
  • [70397] stopped swfupload div appearing behind cms ui in firefox 2 on windows
  • [70396] cms ui sitetree tools padding
  • [70395] IE6 cms login remember me alignment
  • [70393] cms ui sitetree padding across cms sections
  • [70392] centered GreyBox popup in the CMS
  • [70390] cms ui form site tree input alignments
  • [70389] cms ui form site tree input alignments
  • [70388] cms ui fixed width of tools at top of site tree
  • [70377] fixed site tree padding issue
  • [70376] URL input validation for RestfulServer
  • [70356] fixed positioning on site tree actions on left tree for Security and comment tags
  • [70172] due to changeset 65289 by phalkunz, the ImportForm() and import() functions need to move from CRMAdmin class to CRMAdmin_CollectionController class, fix relative bugs by the move.
  • [70160] Add workaround for PHP bug #46753
  • [70135] Fixed spacing at the top of right forms in the CMS caused by the <legend> element. Fixed by hiding it via CSS instead of removing it completely
  • [70130] Fixed issue of not enough space in the AssetAdmin "Upload" tab for multiple file uploading, mostly affecting IE6/7
  • [70127] Changed the FieldHolder method to use explicit functionality instead of statically calling !FormField::FieldHolder()
  • [70117] Fixed clearing issue in IE7 for the left hand tree
  • [70077] Removed ANSI compatible SQL that shouldn't be in branches/2.3 - this feature is available in trunk
  • [70063] Removed ID for back links table which is ambiguous, unncessary and caused the CSV export to break
  • [70052] Deleted setting of $content variable that broke HTTP::findByTagAndAttribute()
  • [70049] Strip out any "~" characters that may stop the staging link from working in IE6/IE7
  • [70046] Check for form object before calling observe() on the element. The CheckBoxRange constructor allows for a null form, so a check for a form object is essential.
  • [70026] Disallow execution from DailyTask and HourlyTask by website visitors.
  • [69988] <% end_if %> was breaking the template where it should've been a <% end_control %>. This fixes the export link in #3333
  • [69986] Added page-limiting back to CMS tree querying
  • [69975] Fixed FileField->getFolderName() - it was not returning $this->folderName, instead it was returning an undefined variable in error
  • [69973] error when creating a form
  • [69951] More solid string-parsing through regular expressions in SQLQuery->filtersOnID() and SQLQuery->filtersOnFK(), incl. unit tests
  • [69943] #3329: Improved speed of folder creation in files + images
  • [69931] Fixed flash HTML that gets inserted into the content so it's cross browser compatible with browsers that don't support the <object> tag (<embed> is added inside)
  • [69930] Checkbox "Remeber me next time?" now works because of a missing method call logIn() on Member
  • [69927] #3024 - Stopped style dropdowns from getting stuck by making them regular dropdowns. Not as pretty but more stable.
  • [69921] Fixed minor error on dev/buildcache
  • [69910] Allowing to pass $context into Hierarchy->markPartialTree() and Hierarchy->markChildren()
  • [69909] Making sure a valid DataObjectSet is returned from Hierarchy->stageChildren()
  • [69899] Explicitly setting "lang" as a GET var when getting a page within the CMS (if the language chooser DOM object is available, hence translation mode is enabled). Used in CMSMain->init() to set the "current language". (merged from branches/translatable in r64523, thanks wakeless!)
  • [69894] Using baseDataClass() in Translatable::get_existing_content_languages()
  • [69893] Added extension point for augmentAllChildrenIncludingDeleted(), augmentNumChildrenCountQuery(), augmentStageChildren() in Hierarchy (merged from branches/translatable in r64523, thanks wakeless!)
  • [69891] Using SQL DISTINCT in get_existing_content_languages()
  • [69879] Fixed label positioning in CompositeFields for original language fields in translation mode (was shifted left before)
  • [69878] Fixed $add_action behaviour for SiteTree classes (through i18n_singular_name() method). Deprecated in favour of "<myclassname>.TITLE" entity to enable localized page titles. Limited add_action behaviour to SiteTree (was implemented on DataObject before)
  • [69872] Fixed status checking in SiteTree->getIsDeletedFromStage()/getIsModifiedOnStage()/getIsAddedToStage() for new pages with non-numeric IDs
  • [69870] Fixed use of undefined constant error, and undefined variable error in TableField stopping CMS user from adding records to a TableField
  • [69832] #3235: Fixed linking of images and other HTML tags
  • [69830] #3219: dev/buildcache showing up in static links
  • [69828] Fixed styling for caption checkbox field on the right hand image panel in CMSMain
  • [69803] If TreeDropdownField source object is "Folder", don't show "File" tree items unless the marking filter function is explicitly set. This fixes the bug where files were appearing for selecting a folder in the thumbnailstrip field in CMS
  • [69752] somtimes +/- icons hidden. ticket #893
  • [69728] #3254 - Fixed fatal errors when creating subclass of member
  • [69720] #3199: No longer warned about saving changes if you have actually pressed save.
  • [69718] #2550 - Fixed bug with draggability of newly created nodes.
  • [69715] #2342: Database names with hyphens and other special characters can now be used.
  • [69700] #3224 ajshort: Get HTTP::setGetVar() working with variables that contain array indexes
  • [69697] #3165 nicolaas: Fixed Director::history() in some cases.
  • [69696] #3248: Fixed TreeDropdownField when using non-ID key field
  • [69695] #3188: Fixed default HeaderField name to be non-conflicting with other fields, for backward compat
  • [69694] #3097: Removed buggy template feature
  • [69693] #3249: Allow altering of encryption algorithm
  • [69690] #3081 simon_w: Fixed pagination on spam comments
  • [69689] Don't include Validator.js if Validator->javascriptValidationHandler is set to 'none' (in Validator::construct()).
  • [69681] Fixed HTML insertion through TinyMCE in Safari - TextArea fallback for lacking Codepress-support wasn't working. Known bug in Codepress JS Highlighter, see  http://sourceforge.net/tracker/index.php?func=detail&aid=1913725&group_id=186981&atid=919470
  • [69657] Fixed js error due to inlined inclusion of CMSMain_upload.js which was conflicting with inline initialization. Disabled initializiation as the flash uploader was pulled out a while ago anyway (see #3251)
  • [69504] Fixed SiteTreeHandlers.loadTree_url url concatenation
  • [69442] Fixed permissions in CMSMain->revert() - only needs edit permissions, not publish permissions
  • [69378] CountryDropdownField? now allows for title to be optional, which uses the name of the field if not set. This makes it consistent with DropdownField
  • [69377] Added check before foreach() to fix potential HMCTF bugs
  • [69360] Get !DrodpownField::$emptyString working when used with a SQLMap source
  • [69321] Added <td class="action"> to AssetTableField.ss to comply with template semantics of parent classes (necessary to detect javascript actions)
  • [69222] Strip potential whitespace from the beginning and end of string before limiting word count in Text->LimitWordCount(), fixing potential interference with truncation process
  • [69220] Fixed Text->LimitWordCount() not returning the correct number of words in the truncated text.
  • [69204] Making Password formfield in Member->getCMSFields() translatable
  • [69203] Making "Main" tab in FormScaffolder translatable
  • [69065] Fixed notice-level error in no-get-var URL processing when there is no querystring.
  • [68999] Make sure the website URL that the commenter posts has a correct " http://" or " http://" bit at the start of the string
  • [68940] Fixed bug in SQLQuery::unlimitedRowCount() when used with grouped queries, that should fix a lot of pagination situations.
  • [68935] Fixed PHP notice potential error in MemberTableField->addtogroup()
  • [68921] Turned english text into translatable entity for PageCommentInterface link for RSS feed of all comments for all pages
  • [68890] "console not defined" error in IE in en_US.js, check typeof(console) is not undefined before calling console.error()
  • [68881] remove Debug::message
  • [68875] Fix uglyness when title is longer than the tree dropdown field
  • [68858] Added closing tags to relation XML in XMLDataFormatter. Was relying on ContentNegotiator fixing self-closing tags automatically, but this form of content parsing is disabled for xml content by default now (see r68484)
  • [68834] Make sure date is a string before trying to use strtotime
  • [68817] Fixed sprintf detection bug in SiteTree->getClassDropdown()
  • [68810] Making only formfields readonly (not formactions) when comparing versions and showing historical versions within CMSMain
  • [68809] Check hasChanged method exists before calling it
  • [68764] Fixed translation of !CommentAdmin_SiteTree.ss
  • [68762] Fixed label spacing in Date->TimeDiff()
  • [68757] Fixed additional tabs for image popus in AssetTableField. They we're not being generated in non-english interfaces due to the translated title being used as the tab identifier
  • [68754] Limiting readonly transformation of form in CMSMain->EditForm() to fields only (excluding actions). FormAction readonly transformations were fixed a while ago, which meant that they were actually enforced now, causing unavailable cms actions in certain scenarios (e.g. with a page deleted from live, which should make the fields readonly, but leave buttons functional)
  • [68752] Fixed TranslatableTest to instanciate Page instead of SiteTree fixtures - pages in the database should never have ClassName=SiteTree. This was causing failing tests due to the changes in SiteTree->getClassDropdown()
  • [68751] Including all translated language tables by default in i18n::_t() instead of selectively including modules based on filename. This caused bugs where entities were located in language tables in a different module than their filepath would suggest. Example: Page.SINGULARNAME is stored in sapphire/lang/en_US.php, while Page.php is stored in mysite/Page.php
  • [68746] Don't overwrite existing module arrays in i18nTextcollector - fixing bug with entities for "foreign modules" being reset during parsing
  • [68702] Updated CMS to support HtmlEditorField changes in r68701
  • [68662] #3166 jam13: Fixed caching in RestfulService
  • [68628] Fixed HasManyComplexTableField/ManyManyComplexTableField issue with source items which broke from changes in r66080. Thanks hamish!
  • [68627] Fixed javascript error in the CMS
  • [68626] Fixed javascript error in the CMS
  • [68603] Fixed new searchform changes for Live/Stage?
  • [68515] Making sure phpinstaller works on subdomains (see #3167)
  • [68463] Fixed PHP notice in RebuildStaticCacheTask
  • [68331] Fixed ModelAdmin import success message (too few arguments for sprintf())
  • [68194] Allowing FormAction instances to be readonly by setting disabled="disabled". Adding CSS class "disabled".
  • [68177] Moved creation of "help" menu entry from cms/_config.php to !LeftAndMain::init() to get localized titles (locale isn't set at _config.php level)
  • [68176] Fixed i18n display of menu titles rendered by CMSMenu in LeftAndMain->MainMenu()
  • [68170] Escape table name in versioned to allow creation of page type classes with the same names as SQL reserved words
  • [68159] Changing i18n entity format in CMSMenu->provideI18nEntities() to have actual class as namespace (related: r66264)
  • [68155] Added stub PDODatabase->renameField() implementation to avoid errors when batch-instanciating singletons
  • [68130] Supporting URLs with folder-structure in "sake -start <myprocessname> <myurl>"
  • [68039] Improved DataObjectSet->PaginationSummary() to show full context (instead of halved) when on first or last page
  • [68027] Don't show template comments in RSSFeed, or it'll break the XML document
  • [68026] Fixed undefined variable $matches in SSViewer::parseTemplateContent()
  • [68024] SSViewer::set_source_file_comments(false) wasn't working because of lack of checking if enabled.
  • [67777] Added check ot i18n::include_by_class() to prevent repeated calls.
  • [67681] Add a unique identifier to the "direction" method for Email::obfuscate() to avoid duplicate custom CSS being included in the page header
  • [67678] Method not found error. Requirements::customCSS() should be calling self::backend()->customCSS() not custom()
  • [67609] #3182 - Fix URL fixing on machines where url is case insensitive (hamish)
  • [67605] #3204 - Broken link tracking is broken (ajshort)
  • [67587] #3174 - Unable to drop widgets into widget areas in CMS (marcink)
  • [67584] #3218 - Spelling mistake in RestfulService (hamish)
  • [67582] Fixed a check for CSV field formatting.
  • [67580] Fixed an aliasing problem when saving popup items, and a bug with when associating a new record with the parent ID associated with the field.
  • [67530] SSDatetime can handle being given a NZ date in dd/mm/yyyy format
  • [67529] Only setting LockedOutUntil to NULL in Member->logIn() if the column is actually present in the database. Otherwise this setting will case an UPDATE Member SQL query to fail on the first /dev/build call on a 2.2->2.3 upgrade if not in dev-mode (=requiring login) (see #3171)
  • [67526] Added $CurrentLink to templates of AssetTableField and MemberTableField in order to support auto-refreshing after popup-close (see #2925)
  • [67520] Fixed i18n::get_owner_module() to detect template paths in themes (array notation) correctly (see #3022)
  • [67519] Added GoogleSitemap.ss from sapphire
  • [67506] Avoid ugly border in CMS forms by adding "border: none" in CSS to cms/css/layout.css
  • [67503] disabling template comments for xml output like sitemap.xml
  • [67455] Fixed incorrect parameter variable name in Mailer->sendPlain()
  • [67417] Added <legend> element immediately after <fieldset> for SearchForm and Form templates. This is required to validate these templates as W3C compliant
  • [67401] Moving Requirements::combine_files() calls from cms/_config.php to LeftAndMain->init() to avoid side-effects in non-CMS contexts. Examples:
  • [67363] $allowHTML argument was not passed to !DatalessField::construct
  • [67304] Since ModelAsController->handleRequest() expects a URLSegment, we make the ErrorPage Link() return a relative URLSegment in ErrorPage->publish()
  • [67299] Changed Director::test($this->URLSegment) to Director::test($this->Link()) in ErrorPage->publish() to be more robust
  • [67290] Added parent::setUp() and parent::tearDown() calls to various tests, in preparation for push/pop a mock controller the controller-stack
  • [67271] dev/build should function even when new classes are referenced in _config.php
  • [67268] Filter on the baseclassid in Hierachy, not the class id, in case the class doesnt have a table (aoneil)
  • [67221] Save default locale for new members, so the profile form doesn't show first available locale in dropdown because its defaults are overwritten by Member->Locale = NULL (see #3159)
  • [67201] Declared behaviour.js variables as local for better recursive functionality
  • [67199] Fixed incorrect permission checking when the current member isn't being used
  • [67162] Scrollbars didn't appear properly in CMS without resizing the window manually, so used jQuery to properly detect when document is ready before attempting resize. Ticket #3089
  • [67150] Checking for "$this instanceof VirtualPage" instead of "$this->class == 'VirtualPage' to support subclassing in VirtualPage->onBeforeWrite()
  • [67147] Fix requirements not being restored after an email is sent
  • [67140] Checking for existence of $this->record in !VirtualPage_Controller->init()
  • [67137] Fix publishing of error pages
  • [67083] Fixed StaticExporter output format
  • [67078] Put the order of save and publish buttons back to normal (so save and publish are next to eachother)
  • [67045] Fixed Enum::scaffoldSearchForm() to always include an (All) option
  • [67035] Fixed error in javascript (because of commented out code) that broke IE6/7 in the CMS

Enhancement

  • [70956] Ticket 2756: Newsletter performance problem, run out of memory.
  • [70861] Allow selection of the unique identifier field on Member by setting Member::set_unique_identifier_field(AnotherField). Default is "Email".
  • [70846] When MemberLoginForm controller page has loaded, focus on the Email input field so the user doesn't have to focus the field themselves. Ticket #3418
  • [70809] Removed blacklist newsletter specific code out of core and into newsletter module
  • [70783] Export to CSV data of MemberTableField gets all fields on the member from the db array, instead of just FirstName, Surname and Email
  • [70775] Removed BrowserDetect javascript library which was randomly placed in Security_login.js and just included in AssetAdmin. Reverted to regex-matching for simple browser detection for now
  • [70465] Allow Member::getCMSFields() to be extended via DataObjectDecorator->updateCMSFields()
  • [70190] Added nicer (and more useful) error message if ErrorPage cannot open the error HTML file for writing
  • [70131] Creation of a new page type now uses a consistent source of classes that respect $hide_ancestor on SiteTree.
  • [70064] Default to "Page" for new page type dropdown
  • [70060] Added a table for showing linked pages in the Report -> BackLinks tab
  • [69954] Calling augmentSQL() on decorators in !DataObject::get(), which is necessary (among others) to limit ContentController->getMenu() with Translatable enabled to the currently active language. Was previously just implemented in !DataObject::get_one()
  • [69953] Passing through same arguments in !SiteTree::get_by_url() than in the wrapped !DataObject::get_one()
  • [69952] Removing specialized routing for Translatable from Director->currentPage() and ModelAsController->getNestedController. Calls !SiteTree::get_by_url() now, which abstracts out the Translatable handling.
  • [69924] #3313 gigtech: Added !ComplexTableField::setAddTitle()
  • [69909] Allowing for passing of $context in Hierarchy->markChildren()
  • [69896] Allowing more arguments in Object->extend() (merged from branches/translatable in r64523, thanks wakeless!)
  • [69895] Added SQLQuery->filtersOnFK() (merged from branches/translatable in r64523, thanks wakeless!)
  • [69891] Moved i18n::get_existing_content_languages() to correct namespace in Translatable::get_existing_content_languages().
  • [69888] Added DataObjectSet->replace()
  • [69864] Allow selection of parent page with adding page through URL - Ticket #3177. Thanks simon_w!
  • [69833] Separated the class name for captioned images to normal images, so styling can be separately applied
  • [69824] Caption support for the HtmlEditorField in the SS CMS. Ticket #2937
  • [69823] Caption support for the TinyMCE editor in the SS CMS. Ticket #2937
  • [69821] #3180: Added RsyncMultiHostPubilsher to 2.3 from trunk
  • [69734] Allow specifying application URL for the top right logo instead of hardcoded silverstripe.com. Thanks hamish!
  • [69661] Removed /cms URL alias for CMS interface to allow for pages named "cms" (see #3267)
  • [69660] Removed /silverstripe URL alias for CMS interface to allow for pages named "silverstripe" (see #3267)
  • [69449] Added .message styles to cms/css/layout.css
  • [69370] Add a <span class="highlight"> around all keywords (space delimited) and not just the entire search phrase
  • [69360] Update ForeignKey and Primary key default fields to use SQLMap for their dropdown source for better performance.
  • [69323] Added styling for "form .message.notice" in sapphire/css/Form.css
  • [69322] More readable (and linked) output of "you are comparing..." message when viewing version of a page
  • [69244] Added renameField() to FieldSet
  • [69224] Allow choosing ellipsis for truncated text on Text->!LimitWordCountXML()
  • [69218] Added ability to define the ellipsis for LimitWordCount() setting "..." as the default
  • [69207] Changed order of array merging in DataObject->db() - contains fields from subclasses at end of the array instead of the beginning. Important because db() is used by FormScaffolder, which shoved custom fields on the front of auto-generated forms. Shouldn't have any effect on the actual content of returned array
  • [69204] Hiding Member->BlacklistedEmail field in getCMSFields() by default - only relevant in newsletter/bounce context at the moment
  • [68860] Added RestfulServerTest->testGETRelationshipsXML()
  • [68818] Appending classnames to translated pagetype titles in CMSMain->getPageTypes() when the cms is loaded in a non-english version - see inline comment
  • [68817] Appending classnames to translated pagetype titles in SiteTree->getClassDropdown() when the cms is loaded in a non-english version - see inline comment
  • [68771] Improved display of class permissions in /admin/security by using the menu title in addition to the classname (users won't necessarily know which classname an admin area corresponds to). Also using "Access to all CMS interfaces" as a permission description for CMS_ACCESS_LeftAndMain
  • [68761] Making Date->Ago() translatable
  • [68747] Using i18nEntityProvider on SiteTree to ensure entities in "Page" namespace get stored on sapphire instead of the "module folder" for Page.php - we can't make those properties translatable within core if they are in a custom folder
  • [68745] Allowing textcollection of multiple modules selectively
  • [68701] Allow HtmlEditorField on front-end forms
  • [68508] Checking for $_FILE_TO_URL_MAPPING in DevelopmentAdmin if called in CLI mode to avoid nasty bugs e.g. during FunctionalTest sessions (Example: Controller stack was failing for some weird reason in LeftAndMainTest)
  • [68460] Added CMSMenu::get_viewable_menu_items() and using it in LeftAndMain->MainMenu()
  • [68193] Added Email->setTemplate() and Email->getTemplate() (as the Email_Template class is deprecated)
  • [68160] Added support for specifying target module in i18nEntitityProvider->provideEntities()
  • [68156] Added support for specifying target module in i18nEntitityProvider->provideEntities()
  • [67984] Documented and improved DataObjectSet->PaginationSummary(). Removed DataObjectSet->paginationSummaryDots
  • [67675] Fixed Email::obfuscate() to include custom CSS for reversing the email address using the "direction" method
  • [67638] Added "reverse" method to Email::obfuscate() to reverse the email address in PHP, then CSS can be used to reverse it back to normal to avoid email harvesting
  • [67502] Added SSViewer::get_source_file_comments()
  • [67422] Allow setting of the legend value in the Form template by use of Form->setLegend('my legend')
  • [67398] Added ability to include a blockquote in the CMS WYSIWYG editor
  • [67345] Allowing custom methods in DataObjectSet->column()
  • [67321] Only showing import form in ModelAdmin if an importer is set
  • [67294] Added SITETREE_GRANT_ACCESS permission code to SiteTree to control editability of the "Access" tab (incl. unit tests)
  • [67292] Supporting object parameter in FieldSet->makeFieldReadonly()
  • [67291] Added mock controller instances to each FunctionalTest, which passes the existing mock session object into the controller stack. This means Sesssion::get()/set() in application code will use the test session. Helpful mainly for overriding login information used by Member::currentUser().
  • [67242] Make it easier to create pageless subclasses of Page_Controller
  • [67224] Adding "close popup" link after saving /admin/myprofile (see #3195)
  • [67139] Added TreeDropdownField->refresh() js method
  • [67138] Allowing usage of extraClass() in TreeDropdownField
  • [67083] Using TEMP_FOLDER for StaticExporter
  • [67072] Disallowing CMSMain->revert() if SiteTree->canPublish() is not granted (used to be SiteTree->canEdit()). If a user isn't allowed to publish, he shouldn't be allowed to revert the live state of a page either.
  • [67061] Moving "save" and "delete" cms actions from CMSMain->EditForm() into SiteTree->getCMSActions() to make them decoratable (e.g. disallow delete action) and easier to cover with unit tests. Leaving fallback "save" and "delete" actions in CMSMain in case no actions are defined (necessary e.g. for Group class in SecurityAdmin)
  • [66958] Added SearchForm->setPageLength() and SearchForm->getPageLength()

Minor changes

  • [70960] Added basic tests for Date and DateField
  • [70953] Code formatting fix in DateField
  • [70895] Updated tests to check boolean values in CsvBulkLoaderTest
  • [70843] Added phpDoc comments for documentation that needs to be written explaining the different source data that can be used with CheckboxSetField
  • [70833] Ensure that $result is defined before calling array functions on it in !SiteTree::getClassDropdown()
  • [70807] Code formatting cleanup in Member
  • [70799] Code formatting fix in !SecurityAdmin_left.ss
  • [70783] Code formatting fix
  • [70769] Defensive handling of events in TreeSelectorField->hideTree
  • [70761] Added important piece of information for where the callback method should be defined for duplicate checks in BulkLoader
  • [70693] fixing flash insertion and removing console log messages
  • [70678] Use FormResponse instead of echoing strings as JS
  • [70677] Removed hard-to-debug error trap in !SecurityAdmin_right.js
  • [70666] merged r70665 from trunk
  • [70664] removed dulicate css code
  • [70663] merged r70323 from trunk
  • [70662] tinymce toolbar improvements. Fixed gradient image and border issue
  • [70657] #3416 MCE Editor Minor Beautification (thanks ajshort!)
  • [70647] Changed $title parameter to HtmlEditorField constructor to null to be consistent with TextareaField and so title is derived based on the name of the field if no title is given.
  • [70635] Patch from ajshort. changed site tree shortcut icon to transparent.
  • [70608] Code formatting fix in FormField
  • [70598] ticket 1846. Changed Action to title case
  • [70596] ticket 1846. changed logout text to title case
  • [70591] merged patch from simon_w. Fixed language in model admin
  • [70587] fix for ticket 3384. Instead of messing round with added requirements back if you cannot merge them just return
  • [70571] in-line documentation correction
  • [70548] Added default english text for "Email" in Secrity->LostPasswordForm()
  • [70540] Added default english text for "Email" and "Password" fields in MemberLoginForm
  • [70530] merged patch from keeny. Put comment data into Cookie and load if user fails maths spam question. Clear comment cookie on successful posting
  • [70498] Fixed incorrect parameters breaking PasswordField HTML validity because maxlength and size were being populated by non-numeric characters
  • [70494] merged patch from simon_w. Removed unnesscary comments
  • [70493] merged patch from simon_w. Changed can*() methods to check they are sent valid member objects rather then arrays
  • [70484] merged patch from rjmackay. Fixed inclusion of BBCode filters and reported error supression
  • [70483] merged patch from simon_w: added check to Children() to make sure user has canView() rights
  • [70411] added empty statics for decoration
  • [70409] added empty statics to allow decoration
  • [70408] added empty statics to PageComment to allow for decoration
  • [70400] SilverStripeNavigator? toolbar is now i18n friendy
  • [70360] removed Gallery Module code from AssetTableField
  • [70355] CSS hover background fix. Merged from ticket #3264. Thanks gigtech
  • [70269] Update ResetFormAction to make use of createTag() method instead of patching together strings to make the form input
  • [70257] Fixed undefined variable error in TableListField->generateExportFileData()
  • [70255] Whitespace removal at end of DataObjectDecorator class
  • [70252] Update phpDoc for DataObject->getFrontEndFields()
  • [70251] Renamed DataObjectDecorator->updateFormFields() to updateFrontEndFields() to be more accurate to the extended method
  • [70238] Removed "Groups" field that wasn't used in Member::getCMSFields()
  • [70236] Code tidy up and coding style fixes for MemberTableField
  • [70188] If the error-404.html or error-500.html file can't be opened, supress the warning so an error isn't shown in the CMS
  • [70154] phpDoc for Varchar->getName()
  • [70153] Removed redundant code from Varchar
  • [70133] Fix potential undefined variable errors in Query->column() and Query->keyedColumn() by always returning an array, even if it's empty. This now conforms to the phpDoc for these two functions, instead of returning null if there's no $column variable set
  • [70132] Defined $column as an array so "undefined variable" error is supressed
  • [70070] tidied up padding in headings complextablefields with long titles
  • [70065] Removed redundant code in CMSMain->AddPageOptionsForm()
  • [70061] Removed redundant code
  • [70059] Code formatting fixes in HtmlEditorField
  • [70053] Added test for HTTP::getLinksIn() which subsequently tests HTTP::findByTagAndAttribute()
  • [70048] fix on-line documentation syntax so that phpDocumentor can creating automatically the API doc
  • [70032] fix on-line documentation syntax so that phpDocumentor can creating automatically the API doc
  • [69955] Passing context object through in LeftAndMain->getSiteTreeFor() (necessary for Translatable)
  • [69939] Removed "edit image" button since the image editor has been removed
  • [69890] Updated language tables
  • [69889] Added Extension->getOwner()
  • [69883] Fixed alignment of "Create translation" button in CMS - removed unnecessary horizontal floating and removed background
  • [69871] merged r69857 from trunk
  • [69865] Removed old references to check-php, which has since been removed
  • [69843] Moved form session error set up from Form constructor to method so it can be used again if need be
  • [69840] Added SiteTreeActionsTest
  • [69839] Merged r69410 from trunk
  • [69838] Merged r69409 and r69410 from trunk
  • [69749] Fixed Sitetree expand and collapse icons alignment in FF3
  • [69717] added support for :-) as well as :) in the Similes
  • [69706] search interface design improvements
  • [69686] Updated correct HTTPRequest class for @deprecated notice on HTTP::sendFileToBrowser()
  • [69611] Updated cms master tables
  • [69592] Added french translation (see #3290)
  • [69591] Added french translation (see #3290)
  • [69562] merge patch from ajshort: allow db build without running requireDefaultRecords
  • [69514] fixed ModelAdmin right tab layout. Removed scrollbar off the tab strip. Ticket #2900
  • [69419] Code syntax tidy up
  • [69369] Removed @todo from Text->ContextSummary as it's already done
  • [69368] Added phpDoc to Text->ContextSummary() $string argument
  • [69348] Added todo and phpDoc to Text->ContextSummary()
  • [69249] Disable caching in RestfulService test
  • [69248] Removed debug message
  • [69244] Added test for FieldSet->renameField() to test method behaviour
  • [69226] Added tests for Text->!LimitWordCountXML()
  • [69225] Added phpDoc to Convert::raw2xml() and Convert::raw2js()
  • [69221] Removed comment that isn't appropriate
  • [69220] Added TextTest for testing Text class methods
  • [69219] Updated phpDoc cautionary message on Text->LimitCharacters()
  • [69218] Added documentation to various Text class methods for limiting field values
  • [69206] logical bug in FormScaffolder
  • [69205] translation
  • [68973] reorganized layout of bbcode list elements to move longer ones to bottom row for BBCode popouts
  • [68858] renamed $json to $xml in XMLDataFormatter
  • [68853] added link to all Comments feed in Page Comments
  • [68771] Updated language tables
  • [68763] translation
  • [68760] Making Folder->getCMSFields() translatable
  • [68759] translation
  • [68758] Making CTF save button translatable
  • [68753] translation
  • [68749] translation
  • [68748] translation
  • [68747] translation
  • [68743] Translation
  • [68742] Translation
  • [68741] translation
  • [68600] Removed debug message
  • [68534] Hardcoded yoursite.com in assets treeview (see #3230)
  • [68531] fixed javascript initialization bug in !SecurityAdmin_left.js (see #3211)
  • [68526] Hiding border around <fieldset>s in ModelAdmin add form (see #3214)
  • [68517] fixed php notices on AssetAdmin (see #3187)
  • [68457] formatting in Security.php
  • [68195] Styling for input.disabled
  • [68178] updated translations
  • [68162] Updated language master table
  • [68161] Updated language master table
  • [68147] Updated cms lang master table
  • [68029] Added whitespace after <!-- end include to be consistent
  • [67705] formatting
  • [67689] Documented !ClassInfo::subclassesFor() and added unit tests
  • [67682] Updated phpDoc for Requirements::customCSS() and Requirements_Backend::customCSS()
  • [67676] Code formatting cleanup
  • [67675] Code formatting cleanup
  • [67468] Removed whitespace after ?> end PHP tag
  • [67467] Removed whitespace after ?> end PHP tag
  • [67424] Tidy up of Form.ss template in sapphire/templates/Includes
  • [67380] Documentation in Email class
  • [67327] Added test for ErrorPage
  • [67301] Declared Director::direct() and Director::test() as static functions to avoid confusion
  • [67300] Code formatting improvements for Director->test()
  • [67295] Re-enabled calls to updateCMSFields() accidentally disabled in r67294
  • [67293] Removing custom mock controller from SearchFormTest, now handled in FunctionalTest (see r67291)
  • [67230] ImageEditor? indentation
  • [67213] Merged r66794 from trunk (related to #3192)
  • [67188] fixed typo in email_template docblock and added note from sean
  • [67176] Reverted r64384 and re-added Email_Template (see #3183)
  • [67083] Documentation for StaticExporter
  • [67075] removed debug code
  • [66958] Deprecated internal property SearchForm->$numPerPage, use $pageLength instead

Other

  • [71035] Include the media widget into the CMS
  • [71034] Removed media plugin code that got copied into ssbuttons
  • [70995] Disable basicauth in RestfulServiceTest
  • [70900] BUGIFX tweak to navigator layout and tidying up unnecessary styles
  • [70894] BUGIFX tweak to navigator layout
  • [70860] Made selection of custom security templates easier
  • [70845] Don't let content negotiator clobber the mime types of things other than HTML & XHTML
  • [70844] Replaced HTTPReponse settings of Content-type header with Content-Type, to match RestfulServer
  • [70747] 2. make Email_!BounceRecord::canCreate() return false; so that it can not be manully create from CRM, instead, it should create through email buncing system.
  • [70740] Undoing change committed in r 70734
  • [70738] Undoing change committed in r 70734
  • [70725] 2. Not all DataObject has a 'Title' database field, but all DataObject has a 'Title' field due to function !DataObject::getTitle() exists.
  • [70702] Merged patch submitted by ajshort that calls loadDataForm on a newly created object in ModelAdmin so that properties of the object are loaded properly
  • [70372] fixed ajax button alignment
  • [70303] cms ui: site tree tools visual update
  • [70240] cms ui: fixed line background to drop down from root node
  • [70239] cms ui: fixed line background for open nested lists
  • [70237] cms ui fix: styles for uniform site tree line
  • [70235] cms ui fix: make site tree hierarchy line uniformly dotted
  • [70206] cms ui fix: adding separator above allow drag and drop
  • [70143] IE6 ui fixe for search filter date input width
  • [70141] IE6 ui fixes for calendar in search filters (positioning and when sidebar is expanded)
  • [70136] ui fixes for calendar in search filters (positioning and when sidebar is expanded)
  • [70127]
  • [70091] stopped null properties being added when images inserted in cms (hspace, vspace, align)
  • [70090] Added missing Decimal->nullValue method.
  • [69983] Removed unnecessary db query in CMS tree generation
  • [69982] Pre-cache page version numbers when querying CMS tree for query efficiency
  • [69981] Added Versioned::prepopulate_versionnumber_cache() to allow for querying efficiencies
  • [69977] Added cache to Permission::checkMember() to reduce the number of queries
  • [69933] Reverted change because it wasn't necessary
  • [69925] EHANCEMENT #3326 hamish: Added Image::getOrientation()
  • [69815] Added getter to retrieve alternative database name.
  • [69731] Better error messages when HasManyComplexTableField can't configure itself properly.
  • [69681] See #3275
  • [69382] Fixed label of back button
  • [69350] Simplified implementation of !FieldSet::makeReadonlyField()
  • [69349] Simplified implementation of !FieldSet::makeReadonlyField()
  • [69052] Fixed URL in the list of tasks.
  • [68945] Fixed loading of CMS toolbar with the HtmlEditorField
  • [68873] Improved rendering of [php] tags in BBCode view
  • [68700] Made CalendarDataField JS more self-suffficient
  • [68598] Added !SearchForm::classesToSearch() to set the classes that you want it to search. Still limited to SiteTree and File but you can exclude one of those.
  • [68474] Merged r67482 to branches/2.3 - let db/build add auto_increment
  • [68326] Added ability for comment authors to leave a URL as a separate form field
  • [67877] PaginationSummary? return all pages by default
  • [67793] Added PaginationSummary function that enable DataObjectSet to display a portion of page list
  • [67776] Added headers_sent() check to header() call in main.php to stop it from being so brittle.
  • [67583] Restore requirements after sending email
  • [67432] Improved graphs displayed on dev/viewmodel
  • [67427] Added diagrams to dev/viewmodel
  • [67414] Added simple model viewer at dev/viewmodel
  • [67401] - including greybox.js had caused the screen to become unscrollable because of an (unrelated) inclusion of LeftAndMain.js which sets <body> to overflow:hidden on javascript page load
  • [67194] Merged r67152 from trunk
  • [67169] Add !TableListField::setFieldList()
  • [67165] Added !ModelAdmin:: for changing the class used to generate results tables
  • [67131] Moved !LegacyIDs from BlogEntry and File to Decorators
  • [67114] Added LegacyID for keeping orginal ID. Used for site migration