@@ -134,7 +134,7 @@ To get the value of entry node with the namespace media, use:
### Handling Errors
If the web service returned an error (for example, API key not available or inadequate parameters),
-`[api:RestfulService]` can delegate the error handling to it's descendant class. To handle the errors, subclass
+[api:RestfulService] can delegate the error handling to it's descendant class. To handle the errors, subclass
`RestfulService and define a function called errorCatch.
:::php
@@ -220,4 +220,4 @@ $service->request('service.json', 'GET', null, null, $curlOptions);
## API Documentation
-* `[api:RestfulService]`
+* [api:RestfulService]
diff --git a/docs/en/02_Developer_Guides/11_Integration/02_RSSFeed.md b/docs/en/02_Developer_Guides/11_Integration/02_RSSFeed.md
index 55b21ce95..23c740d62 100644
--- a/docs/en/02_Developer_Guides/11_Integration/02_RSSFeed.md
+++ b/docs/en/02_Developer_Guides/11_Integration/02_RSSFeed.md
@@ -3,15 +3,15 @@ summary: Output records from your database as an RSS Feed.
# RSS Feed
-Generating RSS / Atom-feeds is a matter of rendering a `[api:SS_List]` instance through the `[api:RSSFeed]` class.
+Generating RSS / Atom-feeds is a matter of rendering a [api:SS_List] instance through the [api:RSSFeed] class.
-The `[api:RSSFeed]` class doesn't limit you to generating article based feeds, it is just as easy to create a feed of
-your current staff members, comments or any other custom `[api:DataObject]` subclasses you have defined. The only
+The [api:RSSFeed] class doesn't limit you to generating article based feeds, it is just as easy to create a feed of
+your current staff members, comments or any other custom [api:DataObject] subclasses you have defined. The only
logical limitation here is that every item in the RSS-feed should be accessible through a URL on your website, so it's
-advisable to just create feeds from subclasses of `[api:SiteTree]`.
+advisable to just create feeds from subclasses of [api:SiteTree].
-If you wish to generate an RSS feed that contains a `[api:DataObject]`, ensure you define a `AbsoluteLink` method on
+If you wish to generate an RSS feed that contains a [api:DataObject], ensure you define a `AbsoluteLink` method on
the object.
@@ -47,7 +47,7 @@ will normally go in your `Controllers` `init` method.
### Showing the 10 most recently updated pages
-You can use `[api:RSSFeed]` to easily create a feed showing your latest Page updates. The following example adds a page
+You can use [api:RSSFeed] to easily create a feed showing your latest Page updates. The following example adds a page
`/home/rss/` which displays an XML file the latest updated pages.
**mysite/code/Page.php**
@@ -87,7 +87,7 @@ You can use `[api:RSSFeed]` to easily create a feed showing your latest Page upd
### Rendering DataObjects in a RSSFeed
-DataObjects can be rendered in the feed as well, however, since they aren't explicitly `[api:SiteTree]` subclasses we
+DataObjects can be rendered in the feed as well, however, since they aren't explicitly [api:SiteTree] subclasses we
need to include a function `AbsoluteLink` to allow the RSS feed to link through to the item.
@@ -193,4 +193,4 @@ As we've added a new template (PlayersRss.ss) make sure you clear your SilverStr
## API Documentation
-* `[api:RSSFeed]`
+* [api:RSSFeed]
diff --git a/docs/en/02_Developer_Guides/11_Integration/How_Tos/embed_rss.md b/docs/en/02_Developer_Guides/11_Integration/How_Tos/embed_rss.md
index 4903a4bc9..02ab66794 100644
--- a/docs/en/02_Developer_Guides/11_Integration/How_Tos/embed_rss.md
+++ b/docs/en/02_Developer_Guides/11_Integration/How_Tos/embed_rss.md
@@ -2,7 +2,7 @@ title: Embed an RSS Feed
# Embed an RSS Feed
-`[api:RestfulService]` can be used to easily embed an RSS feed from a site. In this How to we'll embed the latest
+[api:RestfulService] can be used to easily embed an RSS feed from a site. In this How to we'll embed the latest
weather information from the Yahoo Weather API.
First, we write the code to query the API feed.
@@ -54,4 +54,4 @@ single field `Description`.
## Related
* [RestfulService Documentation](../restfulservice)
-* `[api:RestfulService]`
\ No newline at end of file
+* [api:RestfulService]
diff --git a/docs/en/02_Developer_Guides/12_Search/01_Searchcontext.md b/docs/en/02_Developer_Guides/12_Search/01_Searchcontext.md
index 470095011..42442d6d9 100644
--- a/docs/en/02_Developer_Guides/12_Search/01_Searchcontext.md
+++ b/docs/en/02_Developer_Guides/12_Search/01_Searchcontext.md
@@ -204,7 +204,7 @@ Results.PaginationSummary(4) defines how many pages the search will show in the
## Available SearchFilters
-See `[api:SearchFilter]` API Documentation
+See [api:SearchFilter] API Documentation
## Related Documentation
diff --git a/docs/en/02_Developer_Guides/12_Search/02_FulltextSearch.md b/docs/en/02_Developer_Guides/12_Search/02_FulltextSearch.md
index 82153ca2d..7f8055efa 100644
--- a/docs/en/02_Developer_Guides/12_Search/02_FulltextSearch.md
+++ b/docs/en/02_Developer_Guides/12_Search/02_FulltextSearch.md
@@ -41,8 +41,8 @@ default site search, have a look at those extensions and modify as required.
### Fulltext Filter
-SilverStripe provides a `[api:FulltextFiler]` which you can use to perform custom fulltext searches on
-`[api:DataList]`'s.
+SilverStripe provides a [api:FulltextFilter] which you can use to perform custom fulltext searches on
+[api:DataList]s.
Example DataObject:
@@ -78,4 +78,4 @@ field instead of the index.
## API Documentation
-* [api:FulltextSearchable]
\ No newline at end of file
+* [api:FulltextSearchable]
diff --git a/docs/en/02_Developer_Guides/13_i18n/index.md b/docs/en/02_Developer_Guides/13_i18n/index.md
index 634988c0a..be74b0436 100644
--- a/docs/en/02_Developer_Guides/13_i18n/index.md
+++ b/docs/en/02_Developer_Guides/13_i18n/index.md
@@ -24,7 +24,7 @@ The i18n class is enabled by default.
### Setting the locale
-To set the locale you just need to call `[api:i18n::set_locale()]` passing, as a parameter, the name of the locale that
+To set the locale you just need to call [api:i18n::set_locale()] passing, as a parameter, the name of the locale that
you want to set.
:::php
@@ -39,7 +39,7 @@ for a complete listing of available locales.
### Getting the locale
-As you set the locale you can also get the current value, just by calling `[api:i18n::get_locale()]`.
+As you set the locale you can also get the current value, just by calling [api:i18n::get_locale()].
### Declaring the content language in HTML {#declaring_the_content_language_in_html}
@@ -72,9 +72,9 @@ to write your own logic for any frontend output.
Config::inst()->update('i18n', 'date_format', 'dd.MM.YYYY');
Config::inst()->update('i18n', 'time_format', 'HH:mm');
-Most localization routines in SilverStripe use the [Zend_Date API](http://framework.zend.com/manual/en/zend.date.html).
+Most localization routines in SilverStripe use the [Zend_Date API](http://framework.zend.com/manual/1.12/en/zend.date.overview.html).
This means all formats are defined in
-[ISO date format](http://framework.zend.com/manual/en/zend.date.constants.html#zend.date.constants.selfdefinedformats),
+[ISO date format](http://framework.zend.com/manual/1.12/en/zend.date.constants.html),
not PHP's built-in [date()](http://nz.php.net/manual/en/function.date.php).
### Language Names
@@ -272,7 +272,7 @@ There are a few special cases:
## Language definitions
Each module can have one language table per locale, stored by convention in the `lang/` subfolder.
-The translation is powered by [Zend_Translate](http://framework.zend.com/manual/en/zend.translate.html),
+The translation is powered by [Zend_Translate](http://framework.zend.com/manual/current/en/modules/zend.i18n.translating.html),
which supports different translation adapters, dealing with different storage formats.
By default, SilverStripe 3.x uses a YAML format (through the [Zend_Translate_RailsYAML adapter](https://github.com/chillu/zend_translate_railsyaml)).
@@ -411,4 +411,4 @@ The `ss.i18n` object contain a couple functions to help and replace dynamic vari
* [Help to translate](../../contributing/translations) - Instructions for online collaboration to translate core
* [Help to translate](../../contributing/translation_process) - Instructions for adding translation to your own modules
* [http://www.i18nguy.com/](http://www.i18nguy.com/)
- * [balbus.tk i18n notes](http://www.balbus.tk/internationalize)
+ * [balbus.tk i18n notes](http://www.balbuss.com/internationalize/)
diff --git a/docs/en/02_Developer_Guides/14_Files/01_File_Management.md b/docs/en/02_Developer_Guides/14_Files/01_File_Management.md
index f1d957a29..2228ee64f 100644
--- a/docs/en/02_Developer_Guides/14_Files/01_File_Management.md
+++ b/docs/en/02_Developer_Guides/14_Files/01_File_Management.md
@@ -37,4 +37,4 @@ You may also notice the 'Sync files' button (highlighted below). This button all
## Upload
-Files can be managed through a `FileField` or an `UploadField`. The `[api:FileField]` class provides a simple HTML input with a type of "file", whereas an `[api:UploadField]` provides a much more feature-rich field (including AJAX-based uploads, previews, relationship management and file data management). See [`Reference - UploadField`](/developer_guides/forms/field_types/uploadfield) for more information about how to use the `UploadField` class.
\ No newline at end of file
+Files can be managed through a `FileField` or an `UploadField`. The [api:FileField] class provides a simple HTML input with a type of "file", whereas an [api:UploadField] provides a much more feature-rich field (including AJAX-based uploads, previews, relationship management and file data management). See [`Reference - UploadField`](/developer_guides/forms/field_types/uploadfield) for more information about how to use the `UploadField` class.
diff --git a/docs/en/02_Developer_Guides/14_Files/02_Images.md b/docs/en/02_Developer_Guides/14_Files/02_Images.md
index 46babf387..d2055f452 100644
--- a/docs/en/02_Developer_Guides/14_Files/02_Images.md
+++ b/docs/en/02_Developer_Guides/14_Files/02_Images.md
@@ -2,14 +2,14 @@ summary: Learn how to crop and resize images in templates and PHP code
# Image
-Represents an image object through the `[api:Image]` class, inheriting all base functionality from the `[api:File]` class with extra functionality including resizing.
+Represents an image object through the [api:Image] class, inheriting all base functionality from the [api:File] class with extra functionality including resizing.
## Usage
### Managing images through form fields
-Images can be uploaded like any other file, through `[api:FileField]`.
-More advanced usage is possible through `[api:UploadField]`,
+Images can be uploaded like any other file, through [api:FileField].
+More advanced usage is possible through [api:UploadField],
which provides thumbnails, a detail view of the image properties,
and management of relationships to other DataObject instances.
Allows upload of images through limiting file extensions with `setAllowedExtensions()`.
@@ -70,7 +70,7 @@ The image manipulation functions can be used in your code with the same names, e
Some of the MetaData functions need to be prefixed with 'get', example `getHeight()`, `getOrientation()` etc.
-Please refer to the `[api:Image]` API documentation for specific functions.
+Please refer to the [api:Image] API documentation for specific functions.
### Creating custom image functions
@@ -117,8 +117,8 @@ You can also create your own functions by extending the image class, for example
### Form Upload
-For usage on a website form, see `[api:FileField]`.
-If you want to upload images within the CMS, see `[api:UploadField]`.
+For usage on a website form, see [api:FileField].
+If you want to upload images within the CMS, see [api:UploadField].
### Image Quality
@@ -160,4 +160,4 @@ disappeared, you can try manually flushing the image cache.
http://localhost/dev/tasks/FlushGeneratedImagesTask
## API Documentation
-`[api:Image]`
+[api:Image]
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/01_ModelAdmin.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/01_ModelAdmin.md
index 239d045cc..28eb60f57 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/01_ModelAdmin.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/01_ModelAdmin.md
@@ -124,7 +124,7 @@ searched results. Every [api:DataObject] can have its own context, based on the
class makes a guess at how those fields should be searched, e.g. showing a checkbox for any boolean fields in your
`$db` definition.
-To remove, add or modify searchable fields, define a new `[api:DataObject::$searchable_fields]` static on your model
+To remove, add or modify searchable fields, define a new [api:DataObject::$searchable_fields] static on your model
class (see [SearchContext](../search/searchcontext) docs for details).
**mysite/code/Product.php**
@@ -167,7 +167,7 @@ model class, where you can add or remove columns. To change the title, use [api:
);
}
-The results list are retrieved from [api:SearchContext->getResults], based on the parameters passed through the search
+The results list are retrieved from [api:SearchContext::getResults()], based on the parameters passed through the search
form. If no search parameters are given, the results will show every record. Results are a [api:DataList] instance, so
can be customized by additional SQL filters, joins.
@@ -225,7 +225,7 @@ checkbox which limits search results to expensive products (over $100).
}
}
-To alter how the results are displayed (via `[api:GridField]`), you can also overload the `getEditForm()` method. For
+To alter how the results are displayed (via [api:GridField]), you can also overload the `getEditForm()` method. For
example, to add a new component.
**mysite/code/MyAdmin.php**
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/05_CMS_Architecture.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/02_CMS_Architecture.md
similarity index 93%
rename from docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/05_CMS_Architecture.md
rename to docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/02_CMS_Architecture.md
index f1c4e7f01..0544f2a87 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/05_CMS_Architecture.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/02_CMS_Architecture.md
@@ -3,8 +3,8 @@
## Introduction
A lot can be achieved in SilverStripe by adding properties and form fields
-to your own page types (via `[api:SiteTree->getCMSFields()]`), as well as creating
-your own data management interfaces through `[api:ModelAdmin]`. But sometimes
+to your own page types (via [api:SiteTree::getCMSFields()]), as well as creating
+your own data management interfaces through [api:ModelAdmin]. But sometimes
you'll want to go deeper and tailor the underlying interface to your needs as well.
For example, to build a personalized CMS dashboard, or content "slots" where authors
can drag their content into. At its core, SilverStripe is a web application
@@ -51,14 +51,14 @@ See our [system requirements](/getting_started/server_requirements) for a list o
## Templates and Controllers
-The CMS backend is handled through the `[api:LeftAndMain]` controller class,
+The CMS backend is handled through the [api:LeftAndMain] controller class,
which contains base functionality like displaying and saving a record.
-This is extended through various subclasses, e.g. to add a group hierarchy (`[api:SecurityAdmin]`),
-a search interface (`[api:ModelAdmin]`) or an "Add Page" form (`[api:CMSPageAddController]`).
+This is extended through various subclasses, e.g. to add a group hierarchy ([api:SecurityAdmin]),
+a search interface ([api:ModelAdmin]) or an "Add Page" form ([api:CMSPageAddController]).
The controller structure is too complex to document here, a good starting point
-for following the execution path in code are `[api:LeftAndMain->getRecord()]` and `[api:LeftAndMain->getEditForm()]`.
-If you have the `cms` module installed, have a look at `[api:CMSMain->getEditForm()]` for a good
+for following the execution path in code are [api:LeftAndMain::getRecord()] and [api:LeftAndMain::getEditForm()].
+If you have the `cms` module installed, have a look at [api:CMSMain::getEditForm()] for a good
example on how to extend the base functionality (e.g. by adding page versioning hints to the form).
CMS templates are inherited based on their controllers, similar to subclasses of
@@ -72,13 +72,13 @@ which is in charge of rendering the main content area apart from the CMS menu.
Depending on the complexity of your layout, you'll also need to overload the
"EditForm" template (e.g. `MyCMSController_EditForm.ss`), e.g. to implement
a tabbed form which only scrolls the main tab areas, while keeping the buttons at the bottom of the frame.
-This requires manual assignment of the template to your form instance, see `[api:CMSMain->getEditForm()]` for details.
+This requires manual assignment of the template to your form instance, see [api:CMSMain::getEditForm()] for details.
Often its useful to have a "tools" panel in between the menu and your content,
usually occupied by a search form or navigational helper.
In this case, you can either overload the full base template as described above.
-To avoid duplicating all this template code, you can also use the special `[api:LeftAndMain->Tools()]` and
-`[api:LeftAndMain->EditFormTools()]` methods available in `LeftAndMain`.
+To avoid duplicating all this template code, you can also use the special [api:LeftAndMain::Tools()] and
+[api:LeftAndMain::EditFormTools()] methods available in `LeftAndMain`.
These placeholders are populated by auto-detected templates,
with the naming convention of "_Tools.ss" and "_EditFormTools.ss".
So to add or "subclass" a tools panel, simply create this file and it's automatically picked up.
@@ -94,7 +94,7 @@ Refer to [Layout reference](/developer_guides/customising_the_admin_interface/cm
## Forms
SilverStripe constructs forms and its fields within PHP,
-mainly through the `[getCMSFields()](api:DataObject->getCMSFields())` method.
+mainly through the [getCMSFields()](api:DataObject::getCMSFields()) method.
This in turn means that the CMS loads these forms as HTML via Ajax calls,
e.g. after saving a record (which requires a form refresh), or switching the section in the CMS.
@@ -165,10 +165,10 @@ any particular element.
## JavaScript and CSS dependencies via Requirements and Ajax
The JavaScript logic powering the CMS is divided into many files,
-which typically are included via the `[api:Requirements]` class, by adding
-them to `[api:LeftAndMain->init()]` and its subclassed methods.
+which typically are included via the [api:Requirements] class, by adding
+them to [api:LeftAndMain::init()] and its subclassed methods.
This class also takes care of minification and combination of the files,
-which is crucial for the CMS performance (see `[api:Requirements::combine_files()]`).
+which is crucial for the CMS performance (see [api:Requirements::combine_files()]).
Due to the procedural and selector-driven style of UI programming in jQuery.entwine,
it can be difficult to find the piece of code responsible for a certain behaviour.
@@ -188,7 +188,7 @@ and [jQuery.delegate](http://api.jquery.com/delegate/), so takes care of dynamic
Most interfaces will require their own JavaScript and CSS files, so the Ajax loading has
to ensure they're loaded unless already present. A custom-built library called
`jQuery.ondemand` (located in `framework/thirdparty`) takes care of this transparently -
-so as a developer just declare your dependencies through the `[api:Requirements]` API.
+so as a developer just declare your dependencies through the [api:Requirements] API.
## Ajax Loading and Browser History
@@ -220,10 +220,10 @@ we often want to update these sections independently from their neighbouring con
In order for this to work, the CMS templates declare certain sections as "PJAX fragments"
through a `data-pjax-fragment` attribute. These names correlate to specific
-rendering logic in the PHP controllers, through the `[api:PjaxResponseNegotiator]` class.
+rendering logic in the PHP controllers, through the [api:PjaxResponseNegotiator] class.
Through a custom `X-Pjax` HTTP header, the client can declare which view they're expecting,
-through identifiers like `CurrentForm` or `Content` (see `[api:LeftAndMain->getResponseNegotiator()]`).
+through identifiers like `CurrentForm` or `Content` (see [api:LeftAndMain::getResponseNegotiator()]).
These identifiers are passed to `loadPanel()` via the `pjax` data option.
The HTTP response is a JSON object literal, with template replacements keyed by their Pjax fragment.
Through PHP callbacks, we ensure that only the required template parts are actually executed and rendered.
@@ -402,11 +402,11 @@ when using an input of type button, submit or reset, support is limited to plain
## Menu
-The navigation menu in the CMS is created through the `[api:CMSMenu]` API,
+The navigation menu in the CMS is created through the [api:CMSMenu] API,
which auto-detects all subclasses of `LeftAndMain`. This means that your custom
`ModelAdmin` subclasses will already appear in there without any explicit definition.
-To modify existing menu entries or create new ones, see `[api:CMSMenu::add_menu_item()]`
-and `[api:CMSMenu::remove_menu_item()]`.
+To modify existing menu entries or create new ones, see [api:CMSMenu::add_menu_item()]
+and [api:CMSMenu::remove_menu_item()].
New content panels are typically loaded via Ajax, which might change
the current menu context. For example, a link to edit a file might be clicked
@@ -422,7 +422,7 @@ which is picked up by the menu:
return 'my response';
}
-This is usually handled by the existing `[api:LeftAndMain]` logic,
+This is usually handled by the existing [api:LeftAndMain] logic,
so you don't need to worry about it. The same concept applies for
'X-Title' (change the window title) and 'X-ControllerURL' (change the URL recorded in browser history).
Note: You can see any additional HTTP headers through the web developer tools in your browser of choice.
@@ -437,13 +437,13 @@ For more information, see the [Howto: Customise the CMS tree](/developer_guides/
Note that a similar tree logic is also used for the
form fields to select one or more entries from those hierarchies
-(`[api:TreeDropdownField]` and `[api:TreeMultiselectField]`).
+([api:TreeDropdownField] and [api:TreeMultiselectField]).
## Tabs
We're using [jQuery UI tabs](http://jqueryui.com/), but in a customised fashion.
HTML with tabs can be created either directly through HTML templates in the CMS,
-or indirectly through a `[api:TabSet]` form field. Since tabsets are useable
+or indirectly through a [api:TabSet] form field. Since tabsets are useable
outside of the CMS as well, the baseline application of tabs happens via
a small wrapper around `jQuery.tabs()` stored in `TabSet.js`.
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/06_Javascript_Development.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/06_Javascript_Development.md
index a91150247..5888f9d81 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/06_Javascript_Development.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/06_Javascript_Development.md
@@ -352,7 +352,7 @@ attributes, or the jQuery.metadata plugin). For returning status messages, pleas
Only return evaluated JavaScript snippets if unavoidable. Most of the time you can just pass data around, and let the
clientside react to changes appropriately without telling it directly through JavaScript in AJAX responses. Don't use
-the `[api:Form]` SilverStripe class, which is built solely around
+the [api:Form] SilverStripe class, which is built solely around
this inflexible concept.
Example: Autocomplete input field loading page matches through AJAX
@@ -423,7 +423,7 @@ JavaScript:
Although they are the minority of cases, there are times when a simple HTML fragment isn't enough. For example, if you
have server side code that needs to trigger the update of a couple of elements in the CMS left-hand tree, it would be
-inefficient to send back the HTML of entire tree. SilverStripe can serialize to and from JSON (see the `[api:Convert]` class), and jQuery deals very well with it through
+inefficient to send back the HTML of entire tree. SilverStripe can serialize to and from JSON (see the [api:Convert] class), and jQuery deals very well with it through
[jQuery.getJSON()](http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback), as long as the HTTP content-type is
properly set.
@@ -582,4 +582,4 @@ Example: JSpec Shopping cart test (from [visionmedia.github.com](http://visionme
## Related
* [Unobtrusive Javascript](http://www.onlinetools.org/articles/unobtrusivejavascript/chapter1.html)
-* [Quirksmode: In-depth Javascript Resources](http://www.quirksmode.org/resources.html)
\ No newline at end of file
+* [Quirksmode: In-depth Javascript Resources](http://www.quirksmode.org/resources.html)
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Menu.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Menu.md
index 597993fdf..eac6d62db 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Menu.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Menu.md
@@ -2,10 +2,10 @@
## Adding an administration panel
-Every time you add a new extension of the `[api:LeftAndMain]` class to the CMS,
-SilverStripe will automatically create a new `[api:CMSMenuItem]` for it
+Every time you add a new extension of the [api:LeftAndMain] class to the CMS,
+SilverStripe will automatically create a new [api:CMSMenuItem] for it
-The most popular extension of LeftAndMain is a `[api:ModelAdmin]` class, so
+The most popular extension of LeftAndMain is a [api:ModelAdmin] class, so
for a more detailed introduction to creating new `ModelAdmin` interfaces, read
the [ModelAdmin reference](../modeladmin).
@@ -51,7 +51,7 @@ On top of your administration windows, the menu can also have external links
(e.g. to external reference). In this example, we're going to add a link to
Google to the menu.
-First, we need to define a `[api:LeftAndMainExtension]` which will contain our
+First, we need to define a [api:LeftAndMainExtension] which will contain our
button configuration.
:::php
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Pages_List.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Pages_List.md
index 6210ef23b..4568ce429 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Pages_List.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Pages_List.md
@@ -10,8 +10,8 @@ as well as sort and filter them in a way that would be hard to achieve in a tree
But sometimes the default behaviour isn't powerful enough, and you want a more
specific list view for certain page types, for example to sort the list by
a different criteria, or add more columns to filter on. The resulting
-form is mainly based around a `[GridField](/reference/grid-field)` instance,
-which in turn includes all children in a `[DataList](/topics/datamodel)`.
+form is mainly based around a [GridField](/reference/grid-field) instance,
+which in turn includes all children in a [DataList](/topics/datamodel).
You can use these two classes as a starting point for your customizations.
Here's a brief example on how to add sorting and a new column for a
@@ -69,4 +69,4 @@ Now you just need to enable the extension in your [configuration file](../../con
extensions:
- NewsPageHolderCMSMainExtension
-You're all set! Don't forget to flush the caches by appending `?flush=all` to the URL.
\ No newline at end of file
+You're all set! Don't forget to flush the caches by appending `?flush=all` to the URL.
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Tree.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Tree.md
index 46193e87e..8377cdf75 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Tree.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_CMS_Tree.md
@@ -7,10 +7,10 @@ by the [jstree](http://jstree.com) library. It is configured through
`framework/admin/javascript/LeftAndMain.Tree.js`, as well as some
HTML5 metadata generated on its container (see the `data-hints` attribute).
-The tree is rendered through `[api:LeftAndMain->getSiteTreeFor()]`,
+The tree is rendered through [api:LeftAndMain::getSiteTreeFor()],
which recursively collects all nodes based on various filtering criteria.
-The node strictly just has to implement the `[api:Hierarchy]` extension,
-but in the CMS usually is a `[api:SiteTree]` object.
+The node strictly just has to implement the [api:Hierarchy] extension,
+but in the CMS usually is a [api:SiteTree] object.
## Add status lozenges to tree nodes
@@ -43,13 +43,13 @@ code like this:
By applying the proper style sheet, the snippet html above could produce the look of:
![Page Node Screenshot](../../../_images/tree_node.png "Page Node")
-SiteTree is a `[api:DataObject]` which is versioned by `[api:Versioned]` extension.
+SiteTree is a [api:DataObject] which is versioned by [api:Versioned] extension.
Each node can optionally have publication status flags, e.g. "Removed from draft".
Each flag has a unique identifier, which is also used as a CSS class for easier styling.
Developers can easily add a new flag, delete or alter an existing flag on how it is looked
or changing the flag label. The customization of these lozenges could be done either through
-inherited subclass or `[api:DataExtension]`. It is just really about how we change the return
+inherited subclass or [api:DataExtension]. It is just really about how we change the return
value of function `SiteTree->getTreeTitle()` by two easily extendable methods
`SiteTree->getStatusClass()` and `SiteTree->getStatusFlags()`.
@@ -74,7 +74,7 @@ __Example: using a subclass__
}
}
-The above subclass of `[api:SiteTree]` will add a new flag for indicating its
+The above subclass of [api:SiteTree] will add a new flag for indicating its
__'Scheduled To Publish'__ status. The look of the page node will be changed
from ![Normal Page Node](../../../_images/page_node_normal.png) to ![Scheduled Page Node](../../../_images/page_node_scheduled.png). The getStatusFlags has an `updateStatusFlags()`
extension point, so the flags can be modified through `DataExtension` rather than
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_Site_Reports.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_Site_Reports.md
index fdc65d01c..6b927aa09 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_Site_Reports.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Customise_Site_Reports.md
@@ -71,4 +71,4 @@ More useful reports can be created by changing the `DataList` returned in the `s
* More examples
## API documentation
-`[api:ReportAdmin]`
+[api:ReportAdmin]
diff --git a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Extending_An_Existing_ModelAdmin.md b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Extending_An_Existing_ModelAdmin.md
index f1cc60c2f..d0b087821 100644
--- a/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Extending_An_Existing_ModelAdmin.md
+++ b/docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Extending_An_Existing_ModelAdmin.md
@@ -1,7 +1,7 @@
## Extending existing ModelAdmin
Sometimes you'll work with ModelAdmins from other modules. To customize these interfaces, you can always subclass. But there's
-also another tool at your disposal: The `[api:Extension]` API.
+also another tool at your disposal: The [api:Extension] API.
:::php
class MyAdminExtension extends Extension {
@@ -19,4 +19,4 @@ Now enable this extension through your `[config.yml](/topics/configuration)` fil
- MyAdminExtension
The following extension points are available: `updateEditForm()`, `updateSearchContext()`,
-`updateSearchForm()`, `updateList()`, `updateImportForm`.
\ No newline at end of file
+`updateSearchForm()`, `updateList()`, `updateImportForm`.
diff --git a/docs/en/02_Developer_Guides/16_Execution_Pipeline/01_Flushable.md b/docs/en/02_Developer_Guides/16_Execution_Pipeline/01_Flushable.md
index e46ef19b5..ffe7cf975 100644
--- a/docs/en/02_Developer_Guides/16_Execution_Pipeline/01_Flushable.md
+++ b/docs/en/02_Developer_Guides/16_Execution_Pipeline/01_Flushable.md
@@ -6,17 +6,17 @@ summary: Allows a class to define it's own flush functionality.
## Introduction
Allows a class to define it's own flush functionality, which is triggered when `flush=1` is requested in the URL.
-`[api:FlushRequestFilter]` is run before a request is made, calling `flush()` statically on all
-implementors of `[api:Flushable]`.
+[api:FlushRequestFilter] is run before a request is made, calling `flush()` statically on all
+implementors of [api:Flushable].
## Usage
-To use this API, you need to make your class implement `[api:Flushable]`, and define a `flush()` static function,
+To use this API, you need to make your class implement [api:Flushable], and define a `flush()` static function,
this defines the actions that need to be executed on a flush request.
### Using with SS_Cache
-This example uses `[api:SS_Cache]` in some custom code, and the same cache is cleaned on flush:
+This example uses [api:SS_Cache] in some custom code, and the same cache is cleaned on flush:
:::php
}` item pointing to the new API to use.
-* Update the deprecated code to throw a `[api:Deprecation::notice()]` error.
+* Update the deprecated code to throw a [api:Deprecation::notice()] error.
* Both the docblock and error message should contain the **target version** where the functionality is removed.
So, if you're committing the change to a *3.1* minor release, the target version will be *4.0*.
* Deprecations should not be committed to patch releases
diff --git a/docs/en/05_Contributing/04_Making_A_SilverStripe_Core_Release.md b/docs/en/05_Contributing/04_Making_A_SilverStripe_Core_Release.md
index aeb770cea..c016b595f 100644
--- a/docs/en/05_Contributing/04_Making_A_SilverStripe_Core_Release.md
+++ b/docs/en/05_Contributing/04_Making_A_SilverStripe_Core_Release.md
@@ -73,7 +73,7 @@ the [core committers](core_committers), who will assist with setting up your cre
* Admin permissions on [transifex](https://www.transifex.com/silverstripe/).
* AWS write permissions on the `silverstripe-ssorg-releases` s3 bucket.
* Permission on [silverstripe release announcement](https://groups.google.com/forum/#!forum/silverstripe-announce).
-* Moderator permissions in the #silverstripe [IRC channel]((http://www.silverstripe.org/community/contributing-to-silverstripe/irc-channel/))
+* Moderator permissions in the #silverstripe [IRC channel](http://www.silverstripe.org/community/contributing-to-silverstripe/irc-channel/)
### First time setup: Security releases
@@ -333,7 +333,7 @@ will need to be regularly updated.
* Create a release announcement forum sticky on the
[releases and announcements](http://www.silverstripe.org/community/forums/releases-and-announcements/)
forum category. Make this a global read-only sticky, and un-sticky any older release.
-* Update the #silverstripe [IRC](http://www.silverstripe.org/community/contributing-to-silverstripe/irc-channel/) topic to include the new release version.
+* Update the #silverstripe [IRC](https://www.silverstripe.org/community/contributing-to-silverstripe/irc-channel/) topic to include the new release version.
### Stage 4: Web platform installer release
@@ -342,8 +342,9 @@ The web platform installer is available [on the web app gallery](http://www.micr
In order to update this you will need a Microsoft live account, and have it authorised
by SilverStripe staff in order to publish these releases.
+
To update this release there is an additional download tool at
-[https://code.platform.silverstripe.com/silverstripe/webpi](https://code.platform.silverstripe.com/silverstripe/webpi)
+`[https://code.platform.silverstripe.com/silverstripe/webpi](https://code.platform.silverstripe.com/silverstripe/webpi)`
which will guide you through the process of generating a new zip release.
./make-package 3.2.4 3.2.4
@@ -363,6 +364,7 @@ to submit a new version, including:
* [Release Process](release_process)
* [Translation Process](translation_process)
* [Core committers](core_committers)
+* [WebPI Installer](https://docs.silverstripe.org/en/getting_started/installation/other_installation_options/windows_platform_installer/)
If at any time a release runs into an unsolveable problem contact the
core committers on the [discussion group](https://groups.google.com/forum/#!forum/silverstripe-committers)
diff --git a/docs/en/05_Contributing/05_Documentation.md b/docs/en/05_Contributing/05_Documentation.md
index 6c0c36552..82b6530b0 100644
--- a/docs/en/05_Contributing/05_Documentation.md
+++ b/docs/en/05_Contributing/05_Documentation.md
@@ -37,7 +37,7 @@ If you submit a new feature or an API change, we strongly recommend that your pa
## Repositories
* End-user help: [userhelp.silverstripe.org](http://github.com/silverstripe/userhelp.silverstripe.org)
-* Developer guides: [docs.silverstripe.org](http://github.com/silverstripe/docs.silverstripe.org)
+* Developer guides: [docs.silverstripe.org](http://github.com/silverstripe/doc.silverstripe.org)
* Developer API documentation: [api.silverstripe.org](http://github.com/silverstripe/api.silverstripe.org)
## Source control
diff --git a/docs/en/05_Contributing/06_Translations.md b/docs/en/05_Contributing/06_Translations.md
index 9312c5153..8d2f13066 100644
--- a/docs/en/05_Contributing/06_Translations.md
+++ b/docs/en/05_Contributing/06_Translations.md
@@ -59,7 +59,7 @@ Currently translated entities are not directly factored into code (for security
you can't see them straight away.
It is strongly encouraged that you check your translation this way, as its a good way to double check your translation
-works in the right context. Please use our [daily-builds](http://www.silverstripe.org/daily-builds/) for your local
+works in the right context. Please use our `[daily-builds](http://www.silverstripe.org/daily-builds/)` for your local
installation, to ensure you're looking at the most up to date interface. See "Download Translations" above to find out
how to retrieve the latest translation files.
@@ -135,7 +135,7 @@ This also applies for any modules staying compatible with SilverStripe 2.x.
## Contact
Translators have their own [mailinglist](https://groups.google.com/forum/#!forum/silverstripe-translators), but you can
-also reach a core member on [IRC](http://silverstripe.org/irc). The transifex.com interface has a built-in discussion
+also reach a core member on [IRC](https://irc.silverstripe.org). The transifex.com interface has a built-in discussion
board if you have specific comments on a translation.
## Related
@@ -143,4 +143,4 @@ board if you have specific comments on a translation.
* [i18n](/developer_guides/i18n): Developer-level documentation of Silverstripe's i18n capabilities
* [Translation Process](translation_process): Information about managing translations for the core team and/or module maintainers.
* [translatable](https://github.com/silverstripe/silverstripe-translatable): DataObject-interface powering the website-content translations
- * ["Translatable ModelAdmin" module](http://silverstripe.org/translatablemodeladmin-module/): An extension which allows translations of DataObjects inside ModelAdmin
+ * `["Translatable ModelAdmin" module](http://silverstripe.org/translatablemodeladmin-module/)`: An extension which allows translations of DataObjects inside ModelAdmin
diff --git a/docs/en/05_Contributing/07_Translation_Process.md b/docs/en/05_Contributing/07_Translation_Process.md
index 713d8f797..48c844441 100644
--- a/docs/en/05_Contributing/07_Translation_Process.md
+++ b/docs/en/05_Contributing/07_Translation_Process.md
@@ -130,4 +130,4 @@ files back into the JS files SilverStripe can actually read. This requires an in
* [i18n](/developer_guides/i18n/): Developer-level documentation of Silverstripe's i18n capabilities
* [Contributing Translations](/contributing/translations): Information for translators looking to contribute translations of the SilverStripe UI.
* [translatable](https://github.com/silverstripe/silverstripe-translatable): DataObject-interface powering the website-content translations
- * ["Translatable ModelAdmin" module](http://silverstripe.org/translatablemodeladmin-module/): An extension which allows translations of DataObjects inside ModelAdmin
+ * `["Translatable ModelAdmin" module](http://silverstripe.org/translatablemodeladmin-module/)`: An extension which allows translations of DataObjects inside ModelAdmin
diff --git a/docs/en/05_Contributing/09_Code_of_conduct.md b/docs/en/05_Contributing/09_Code_of_conduct.md
index 64e0bb167..4aaff9614 100644
--- a/docs/en/05_Contributing/09_Code_of_conduct.md
+++ b/docs/en/05_Contributing/09_Code_of_conduct.md
@@ -57,4 +57,4 @@ https://www.djangoproject.com/conduct/
http://web.archive.org/web/20141109123859/http://speakup.io/coc.html
-http://www.crnhq.org/pages.php?pID=10
+http://www.crnhq.org/files/66138/files/Handouts%20and%20Posters/ResolveTheConflictGuideposter.pdf
diff --git a/docs/en/index.md b/docs/en/index.md
index eb6c56441..12d168631 100644
--- a/docs/en/index.md
+++ b/docs/en/index.md
@@ -20,7 +20,7 @@ community. There are also several other websites with SilverStripe documentation
* The [API Documentation](http://api.silverstripe.org/) contains technical reference and class information.
* The [User Help](http://userhelp.silverstripe.com) website contains documentation related to working within the CMS.
-New features, API changes and the development [roadmap](http://www.silverstripe.org/roadmap/) for the product are
+New features, API changes and the development [roadmap](http://www.silverstripe.org/software/roadmap/) for the product are
discussed on the [core mailinglist](https://groups.google.com/forum/#!forum/silverstripe-dev) along with
[UserVoice](http://silverstripe.uservoice.com/forums/251266-new-features).