Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MINOR Doc anchors so we can link to sections from other release notes

  • Loading branch information...
commit 2b5a9060e98f90ec8046ff137d6a5a21cfdd5147 1 parent 9d36048
@chillu chillu authored
Showing with 31 additions and 27 deletions.
  1. +31 −27 docs/en/changelogs/3.0.0.md
View
58 docs/en/changelogs/3.0.0.md
@@ -14,7 +14,7 @@
## Upgrading ##
-### sapphire renamed to framework ###
+### sapphire renamed to framework [sapphire-rename] ###
`sapphire` has been renamed to `framework`.
@@ -27,7 +27,7 @@ Here's a list of steps to check:
* Find and replace any references to `sapphire` in your custom code to `framework`. In your PHP code, you can use the constant `FRAMEWORK_DIR`,
which points to the framework directory, and in the templates you can use `$ModulePath(framework)`
-### New ORM: More flexible and expressive querying via `DataList` ###
+### New ORM: More flexible and expressive querying via `DataList` [new-orm-datalist] ###
The new "fluent" syntax to retrieve ORM records allows for a more
expressive notation (instead of unnamed arguments).
@@ -70,7 +70,7 @@ for the presence of records, please call the count() method on the `DataList`:
See the ["datamodel" documentation](../../topics/datamodel) for more details.
-### New ORM: Changes to manipulation of SQL queries ###
+### New ORM: Changes to manipulation of SQL queries [new-orm-sql-queries] ###
In the 2.4 ORM it was sometimes necessary to bypass the ORM for performance reasons. For example,
this command would have been intolerably slow:
@@ -109,7 +109,7 @@ The abstract `RelationList` class and its implementations `ManyManyList` and `Ha
are replacing the `ComponentSet` API, which is only relevant if you have instanciated these manually.
Relations are retrieved through the same way (e.g. `$myMember->Groups()`).
-### InnoDB driver for existing and new tables on MySQL (instead of MyISAM) ###
+### InnoDB driver for existing and new tables on MySQL (instead of MyISAM) [innodb]###
SilverStripe has traditionally created all MySQL tables with the MyISAM storage driver,
mainly to ensure a fulltext search based on MySQL works out of the box.
@@ -127,7 +127,7 @@ As with any SilverStripe upgrade, we recommend database backups before calling `
See [mysql.com](http://dev.mysql.com/doc/refman/5.5/en/converting-tables-to-innodb.html) for details on the conversion.
Note: MySQL has made InnoDB the default engine in its [5.5 release](http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html).
-### Convert::json2array() changes ###
+### Convert::json2array() changes [raw2json]###
Convert JSON functions have been changed to use built-in json PHP functions `json_decode()` and `json_encode()`
@@ -159,7 +159,7 @@ Now in SilverStripe 3.x, nested structures are arrays:
)
-### GridField: Replacement for TableListField and ComplexTableField ###
+### GridField: Replacement for TableListField and ComplexTableField [gridfield]###
We have a new component for managing lists of objects: The `[GridField](/topics/grid-field)`.
It's a substantial rewrite of the features previously captured by `TableListField`,
@@ -199,7 +199,7 @@ Upgrade example: Relationship editing
More information is available in the [GridField documentation](/topics/grid-field).
-### New template engine ###
+### New template engine [templates]###
The template engine has been completely rewritten, and although it is generally backward compatible, there are new features
and some features have been deprecated. See the [template upgrading guide](/reference/templates-upgrading-guide) and the
@@ -213,7 +213,7 @@ will need re-working.
See the [template upgrading guide](/reference/templates-upgrading-guide) for a list of methods and their replacements.
-### New user interface for CMS ###
+### New user interface for CMS [ui]###
Most aspects of the interface have been redesigned, which necessitated a substantial
redevelopment of the underlying logic and presentation.
@@ -226,13 +226,13 @@ based JavaScript logic. Have a look at the new ["Extending the CMS" guide](../ho
["CSS" guide](../topics/css), ["JavaScript" guide](../topics/javascript) and
["CMS Architecture" guide](/reference/cms-architecture) to get you started.
-### New tree library ###
+### New tree library [tree]###
The page tree moved from a bespoke tree library to [JSTree](http://jstree.com),
which required changes to markup of the tree and its JavaScript architecture.
This includes changes to `TreeDropdownField` and `TreeMultiSelectField`.
-### Settings-related fields move from `SiteTree->getCMSFields()` to new `SiteTree->getSettingsFields()` ###
+### Settings-related fields move from `SiteTree->getCMSFields()` to new `SiteTree->getSettingsFields()` [getcmsfields]###
The fields and tabs are now split into two separate forms, which required a structural
change to the underlying class logic. In case you have added or removed fields
@@ -244,14 +244,14 @@ We've also removed the `$params` attribute on `DataObject->getCMSFields()`
which could be used as a shortcut for customizations to `FormScaffolder`,
in order to achieve E_STRICT compliance. Please use `FormScaffolder` directly.
-### New `SiteTree::$description` field to describe purpose of a page type ###
+### New `SiteTree::$description` field to describe purpose of a page type [sitetree-description]###
Please use this static property to describe the purpose of your page types,
which will help users understand the new "Add page" dialog.
For example, a `TeamPage` type could be described as "Lists all team members, linking to their profiles".
Note: This property is optional (defaults to an empty string), but its usage is highly encouraged.
-### New ModelAdmin interface, removed sub-controllers
+### New ModelAdmin interface, removed sub-controllers [modeladmin]
ModelAdmin has been substanially rewritten to natively support the `[api:GridField]` API
for more flexible data presentation (replacing `[api:ComplexTableField]`),
@@ -262,7 +262,7 @@ or implemented your own `$collection_controller_class`/`$record_controller_class
please refer to the new [ModelAdmin documentation](/reference/modeladmin)
on details for how to achieve the same goals in the new class.
-### Stylesheet preprocessing via SCSS and the "compass" module ###
+### Stylesheet preprocessing via SCSS and the "compass" module [scss]###
CSS files in the `cms` and `framework/admin` modules are now generated through
the ["compass" SilverStripe module](http://silverstripe.org/compass-module), which uses
@@ -275,7 +275,7 @@ not when simply using the CMS or developing other CMS functionality.
If you want to extend the CMS stylesheets for your own projects without SCSS,
please create a new CSS file and link it into the CMS via `[api:LeftAndMain::require_css()]`.
-### Built-in Javascript validation removed ###
+### Built-in Javascript validation removed [js-validation] ###
Built-in client-side form validation using `Validator.js` and `behaviour.js` has been removed, and is no longer supported.
Server-side validation remains. Developers are encouraged to use custom Javascript validation on their
@@ -283,7 +283,7 @@ forms if requiring client-side validation.
You don't need to explicitly disable JS validation through `Validator::set_javascript_validation_handler()`
any longer (the method is deprecated).
-### FormField consistently adds classes to HTML elements ###
+### FormField consistently adds classes to HTML elements [formfield-classes]###
The [api:FormField] API has been refactored to use SilverStripe templates
for constructing the field HTML, as well as new accessors for HTML attributes.
@@ -304,7 +304,7 @@ as well as the HTML form element itself.
<input type="checkbox" class="checkbox extraClass".../>
</div>
-### FormField constructor argument changes ###
+### FormField constructor argument changes [formfield-constructor]###
In order to enforce a consistent parameter order in core [api:FormField] subclasses,
its no longer possible to set the following optional attributes via constructor arguments:
@@ -312,7 +312,7 @@ its no longer possible to set the following optional attributes via constructor
and `$folderName` (for `FileField` and `SimpleImageField`).
Please use the appropriate setters on the form field instance instead.
-### Restructured files and folders ###
+### Restructured files and folders [file-restructure]###
In order to make the SilverStripe framework useable without the `cms` module,
we've moved some files around.
@@ -328,7 +328,7 @@ this usually won't have any effect on your own code (unless you're including dir
For any other files (CSS files, templates, images, JavaScript) which might
be referenced by their path, please doublecheck that their path is still valid.
-### Removed prototype.js and and behaviour.js dependencies from most core components
+### Removed prototype.js and and behaviour.js dependencies from most core components [prototype-behaviour]
This will only affect you if you used either of those libraries,
or by extension on the globals set in `prototype_improvements.js` and `jquery_improvements.js`.
@@ -339,6 +339,10 @@ or as an alias for the `jQuery()` method. In general, we recommend not to rely o
the `$()` global in SilverStripe, as we unset it via `[jQuery.noConflict()](http://api.jquery.com/jQuery.noConflict/)`.
Use a [custom alias via function scope](http://api.jquery.com/jQuery.noConflict/#example-1) if possible.
+### Moved `Widget` API into new 'widgets' module [widgets]###
+
+See [module on github](https://github.com/silverstripe/silverstripe-widgets).
+
### Moved `Translatable` extension into new 'translatable' module ###
If you are translating your `SiteTree` or `DataObject` classes with the `Translatable`
@@ -349,24 +353,24 @@ included through `translatable/_config.php`:
Object::add_extension('SiteTree', 'Translatable');
Object::add_extension('SiteConfig', 'Translatable');
-### Moved Group->IPRestrictions into a new 'securityextras' module
+### Moved Group->IPRestrictions into a new 'securityextras' [securityextras]module
IP restrictions for group memberships in the "Security" section were a rarely used feature,
and cluttered up the interface. We've decided to move it to a separate module
called [securityextras](https://github.com/silverstripe-labs/silverstripe-securityextras).
To continue using these restrictions, just install the module - no data migration required.
-### Moved comments system into new 'comments' module ###
+### Moved comments system into new 'comments' module [comments]###
This affects websites which have comments enabled, through the `$Comments`
placeholder and the `PageComment` class. See the ['comments' module](https://github.com/silverstripe/silverstripe-comments). To continue using comments, simply install the module - no data migration required.
-### Moved SiteTree->HomepageForDomain into a new 'homepagefordomain' module
+### Moved SiteTree->HomepageForDomain into a new 'homepagefordomain' module [homepagefordomain]
The setting determines difference homepages at arbitrary locations in the page tree,
and was rarely used in practice - so we moved it to a "[homepagefordomain](https://github.com/silverstripe-labs/silverstripe-homepagefordomain)" module.
-### New syntax for translatable _t functions ###
+### New syntax for translatable _t functions [i18n-t]###
You can now call the _t() function in both templates and code with a namespace and string to translate, as well as a
comment and injection array. Note that the proxity arguement to _t is no longer supported.
@@ -376,7 +380,7 @@ The new syntax supports injecting variables into the translation. For example:
:::php
_t('i18nTestModule.INJECTIONS2', "Hello {name} {greeting}", array("name"=>"Paul", "greeting"=>"good you are here"));
-### Default translation source in YML instead of PHP $lang array, using Zend_Translate ###
+### Default translation source in YML instead of PHP $lang array, using Zend_Translate [zend-translate] ###
This allows for a more flexible handling of translation sources in various formats.
Your own translations can be converted automatically via the ["i18n_yml_converter" module](https://github.com/chillu/i18n_yml_converter). Any modifications
@@ -404,11 +408,11 @@ Note that its just necessary if SilverStripe is used in a language other than th
9 // priority lower than standard translator
);
-### Removed "auto-merging" of member records from `Member->onBeforeWrite()`
+### Removed "auto-merging" of member records from `Member->onBeforeWrite()` [member-merging]
Due to security reasons. Please use `DataObject->merge()` explicitly if this is desired behaviour.
-### Unit tests require definition of used `DataObject` and `Extension` classes ###
+### Unit tests require definition of used `DataObject` and `Extension` classes [tests]###
This change was necessary in order to improve performance of the test framework,
and avoid rebuilding the database where no database access is required.
@@ -422,13 +426,13 @@ unless these are explicitly noted.
Alternatively, you can enforce database usage by setting `SapphireTest->usesDatabase` to `TRUE` in your test class.
-### Breadcrumbs ###
+### Breadcrumbs [breadcrumbs]###
Breadcrumbs have been altered to be their own template. In the process of this, the common static
SiteTree::$breadcrumbs_delimiter has been removed. To customise breadcrumbs now, create a template
BreadcrumbsTemplate.ss from cms/template to your theme or application.
-### Deprecation API ###
+### Deprecation API [deprecation] ###
There is a new deprecation API that generates deprecation notices. Calls to Deprecated methods
will only produce errors if the API was deprecated in the release equal to or earlier than the
Please sign in to comment.
Something went wrong with that request. Please try again.