Add crosslinks to lessons

This commit is contained in:
Aaron Carlino 2017-11-27 16:39:17 +13:00
parent 07a0f75426
commit ff02fa4ff7
31 changed files with 115 additions and 7 deletions

View File

@ -100,4 +100,4 @@ by using a `flush=1` query parameter. See the ["Manifests" documentation](/devel
## Best Practices
### Making /assets readonly
See [Secure coding](/developer_guides/security/secure_coding#filesystem)
See [Secure coding](/developer_guides/security/secure_coding#filesystem)

View File

@ -64,6 +64,15 @@ ready for download or installation on a cloud platform.
If you run into trouble, see [common-problems](installation/common_problems) or post to the
[SilverStripe forums](http://silverstripe.org/community/forums/).
## Related
## Related Lessons
* [Up and running](https://www.silverstripe.org/learn/lessons/v4/up-and-running-setting-up-a-local-silverstripe-dev-environment-1)
* [Creating your first theme](https://www.silverstripe.org/learn/lessons/v4/creating-your-first-theme-1)
* [Migrating static templates into your theme](https://www.silverstripe.org/learn/lessons/v4/migrating-static-templates-into-your-theme-1)
* [Working with multiple templates](https://www.silverstripe.org/learn/lessons/v4/working-with-multiple-templates-1)
## Related Documentation
* [Module installation](/developer_guides/extending/modules)

View File

@ -403,4 +403,4 @@ We use the normal tactic of putting the data into an unordered list and using CS
In this tutorial we have explored custom php forms, and displayed result sets through Grouped Lists. We have briefly covered the different approaches to creating and using forms. Whether you decide to use the [userforms module](http://addons.silverstripe.org/add-ons/silverstripe/userforms) or create a form in PHP depends on the situation and flexibility required.
[Next Tutorial >>](/tutorials/site_search)
[Next Tutorial >>](/tutorials/site_search)

View File

@ -744,6 +744,11 @@ record #2 in Page refers to the same object as record #2 in [SiteTree](api:Silve
To retrieve a news article, SilverStripe joins the [SiteTree](api:SilverStripe\CMS\Model\SiteTree), [Page](api:SilverStripe\CMS\Model\SiteTree\Page) and NewsPage tables by their ID fields.
## Related Lessons
* [Introduction to the ORM](https://www.silverstripe.org/learn/lessons/v4/introduction-to-the-orm-1)
* [Adding custom fields to a page](https://www.silverstripe.org/learn/lessons/v4/adding-custom-fields-to-a-page-1)
## Related Documentation
* [Data Types and Casting](/developer_guides/model/data_types_and_casting)

View File

@ -479,6 +479,10 @@ As these lists are not backed by the database, most of the filtering methods on
this type. As such, an `UnsavedRelationList` should only be used for setting a relation before saving an object, not
for displaying the objects contained in the relation.
## Related Lessons
* [Working with data relationships -- has_many](https://www.silverstripe.org/learn/lessons/v4/working-with-data-relationships-has-many-1)
* [Working with data relationships -- many_many](https://www.silverstripe.org/learn/lessons/v4/working-with-data-relationships-many-many-1)
## Related Documentation
* [Introduction to the Data Model and ORM](data_model_and_orm)

View File

@ -92,6 +92,9 @@ echo $list->Count();
// returns '2'
```
## Related Lessons
* [Lists and pagination](https://www.silverstripe.org/learn/lessons/v4/lists-and-pagination-1)
## API Documentation
* [SS_List](api:SilverStripe\ORM\SS_List)

View File

@ -89,3 +89,6 @@ class Player extends DataObject
Note: There are no separate methods for *onBeforeCreate* and *onBeforeUpdate*. Please check `$this->isInDb()` to toggle
these two modes, as shown in the example above.
</div>
## Related Lessons
* [Working with data relationships - $has_many](https://www.silverstripe.org/learn/lessons/v4/working-with-data-relationships-has-many-1)

View File

@ -61,6 +61,10 @@ $players = Player::get()->filter([
]);
```
## Related Lessons
* [Introduction to ModelAdmin](https://www.silverstripe.org/learn/lessons/v4/introduction-to-modeladmin-1)
* [Building a search form](https://www.silverstripe.org/learn/lessons/v4/building-a-search-form-1)
## API Documentation
* [SearchFilter](api:SilverStripe\ORM\Filters\SearchFilter)

View File

@ -291,7 +291,11 @@ $players = Player::get();
$map = $players->map('Name', 'NameWithBirthyear');
```
## Related
## Related Lessons
* [Building custom SQL](https://www.silverstripe.org/learn/lessons/v4/beyond-the-orm-building-custom-sql-1)
## Related Documentation
* [Introduction to the Data Model and ORM](data_model_and_orm)

View File

@ -45,6 +45,9 @@ class MyObject extends DataObject
}
```
## Related Lessons
* [The holder/page pattern](https://www.silverstripe.org/learn/lessons/v4/the-holderpage-pattern-1)
## API Documentation
* [DataObject](api:SilverStripe\ORM\DataObject)

View File

@ -551,7 +551,10 @@ for adding notes for other developers but for things you don't want published in
$EditForm <%-- Some hidden comment about the form --%>
```
## Related
## Related Lessons
* [Creating your first theme](https://www.silverstripe.org/learn/lessons/v4/creating-your-first-theme-1)
## Related Documentation
[CHILDREN]
@ -563,3 +566,5 @@ $EditForm <%-- Some hidden comment about the form --%>
* [SSViewer](api:SilverStripe\View\SSViewer)
* [ThemeManifest](api:SilverStripe\View\ThemeManifest)

View File

@ -365,7 +365,10 @@ Placing it just below `$Content` is a good default.
You can add your own forms by implementing new form instances (see the [Forms tutorial](/tutorials/forms)).
## Related
## Related Lessons
* [Adding dynamic content](https://www.silverstripe.org/learn/lessons/v4/adding-dynamic-content-1)
## Related Documentation
* [Casting and Formating Variables](casting)
* [Template Inheritance](template_inheritance)

View File

@ -392,6 +392,10 @@ $file = ModuleResourceLoader::singleton()
->resolveURL('silverstripe/admin:client/dist/images/spinner.gif');
```
## Related Lessons
* [Creating your first theme](https://www.silverstripe.org/learn/lessons/v4/creating-your-first-theme-1)
* [AJAX behaviour and ViewableData](https://www.silverstripe.org/learn/lessons/v4/ajax-behaviour-and-viewabledata-1)
## API Documentation
* [Requirements](api:SilverStripe\View\Requirements)

View File

@ -99,3 +99,9 @@ class PageController extends ContentController
}
```
## Related Lessons
* [Controller actions/DataObjects as pages](https://www.silverstripe.org/learn/lessons/v4/controller-actions-dataobjects-as-pages-1)
* [AJAX behaviour and ViewableData](https://www.silverstripe.org/learn/lessons/v4/ajax-behaviour-and-viewabledata-1)
* [Dealing with arbitrary template data](https://www.silverstripe.org/learn/lessons/v4/dealing-with-arbitrary-template-data-1)
* [Creating filtered views](https://www.silverstripe.org/learn/lessons/v4/creating-filtered-views-1)

View File

@ -180,3 +180,6 @@ Module names are derived their local `composer.json` files using the following p
* The value of the `name` attribute in `composer.json`
* The value of `extras.installer_name` in `composer.json`
* The basename of the directory that contains the module
## Related Lessons
* [Working with multiple templates](https://www.silverstripe.org/learn/lessons/v4/working-with-multiple-templates-1)

View File

@ -103,3 +103,6 @@ The final step is to [submit your theme to Packagist](https://packagist.org/abou
* [Themes Listing on silverstripe.org](http://addons.silverstripe.org/add-ons?search=&type=theme)
* [Themes Forum on silverstripe.org](https://www.silverstripe.org/community/forums/themes-2/)
* [Themes repositories on github.com](http://github.com/silverstripe-themes)
## Related Lessons
* [Creating your first theme](https://www.silverstripe.org/learn/lessons/v4/creating-your-first-theme-1)

View File

@ -167,3 +167,7 @@ Text / HTMLText methods:
version of emails.
* `$LimitSentences(<num>)` Will limit to the first `<num>` sentences in the content. If called on
HTML content this will have all HTML stripped and converted to plain text.
## Related Lessons
* [Dealing with arbitrary template data](https://www.silverstripe.org/learn/lessons/v4/dealing-with-arbitrary-template-data-1)

View File

@ -113,6 +113,8 @@ list.
| `$Link` | Links to the current controller URL, setting this page as current via a GET parameter |
| `$CurrentBool` | Returns true if you're currently on that page |
## Related Lessons
* [Lists and pagination](https://www.silverstripe.org/learn/lessons/v4/lists-and-pagination-1)
## API Documentation

View File

@ -174,6 +174,10 @@ public function Link($action = null)
The [Controller::join_links()](api:SilverStripe\Control\Controller::join_links()) is optional, but makes `Link()` more flexible by allowing an `$action` argument, and concatenates the path segments with slashes. The action should map to a method on your controller.
</div>
## Related Lessons
* [Controller actions/DataObjects as pages](https://www.silverstripe.org/learn/lessons/v4/controller-actions-dataobjects-as-pages-1)
* [Creating filtered views](https://www.silverstripe.org/learn/lessons/v4/creating-filtered-views-1)
## Related Documentation
* [Execution Pipeline](../execution_pipeline)

View File

@ -213,6 +213,9 @@ Director:
'feed': 'FeedController'
```
## Related Lessons
* [Creating filtered views](https://www.silverstripe.org/learn/lessons/v4/creating-filtered-views-1)
## Links
* [Controller](api:SilverStripe\Control\Controller) API documentation

View File

@ -346,6 +346,9 @@ $validator = new SilverStripe\Forms\RequiredFields([
$form = new Form($this, 'MyForm', $fields, $actions, $validator);
```
## Related Lessons
* [Intoduction to frontend forms](https://www.silverstripe.org/learn/lessons/v4/introduction-to-frontend-forms-1)
## API Documentation
* [Form](api:SilverStripe\Forms\Form)

View File

@ -307,6 +307,10 @@ class Page extends SiteTree
```
## Related Lessons
* [Intoduction to frontend forms](https://www.silverstripe.org/learn/lessons/v4/introduction-to-frontend-forms-1)
## API Documentation
* [RequiredFields](api:SilverStripe\Forms\RequiredFields)

View File

@ -351,3 +351,6 @@ That is, the fragment will be included if all Only rules match, except if all Ex
## API Documentation
* [Config](api:SilverStripe\Core\Config\Config)
## Related Lessons
* [DataExtensions and SiteConfig](https://www.silverstripe.org/learn/lessons/v4/data-extensions-and-siteconfig-1)

View File

@ -81,3 +81,7 @@ provide the users a place to configure settings then the `SiteConfig` panel is t
## API Documentation
* [SiteConfig](api:SilverStripe\SiteConfig\SiteConfig)
## Related Lessons
* [DataExtensions and SiteConfig](https://www.silverstripe.org/learn/lessons/v4/data-extensions-and-siteconfig-1)

View File

@ -11,3 +11,7 @@ For more information see our docs on [Environment Management](../../getting_star
Data which isn't sensitive that can be in version control but is mostly static such as constants is best suited to be
included through the [Configuration API](configuration) based on the standard environment types (dev / test / live).
## Related Lessons
* [Up and running](https://www.silverstripe.org/learn/lessons/v4/up-and-running-setting-up-a-local-silverstripe-dev-environment-1)
* [Advanced environment configuration](https://www.silverstripe.org/learn/lessons/v4/advanced-environment-configuration-1)

View File

@ -311,6 +311,10 @@ public function getCMSFields()
}
```
## Related Lessons
* [DataExtensions and SiteConfig](https://www.silverstripe.org/learn/lessons/v4/data-extensions-and-siteconfig-1)
## Related Documentaion
* [Injector](injector/)

View File

@ -81,4 +81,5 @@ if (Director::isLive()) {
}
```
## Related Lessons
* [Advanced environment configuration](https://www.silverstripe.org/learn/lessons/v4/advanced-environment-configuration-1)

View File

@ -265,3 +265,6 @@ In SilverStripe 3, logging was based on the Zend Log module. Customisations were
This function no longer works, and any Zend Log writers will need to be replaced with Monolog handlers. Fortunately,
a range of handlers are available, both in the core package and in add-ons. See the
[Monolog documentation](https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md) for more information.
## Related Lessons
* [Advanced environment configuration](https://www.silverstripe.org/learn/lessons/v4/advanced-environment-configuration-1)

View File

@ -202,3 +202,6 @@ storage.
SilverStripe\Assets\File:
keep_archived_assets: true
```
## Related Lessons
* [Working with files and images](https://www.silverstripe.org/learn/lessons/v4/working-with-files-and-images-1)

View File

@ -214,3 +214,7 @@ SilverStripe\Core\Injector\Injector:
* [Image](api:SilverStripe\Assets\Image)
* [DBFile](api:SilverStripe\Assets\Storage\DBFile)
* [ImageManipulation](api:SilverStripe\Assets\ImageManipulation)
## Related Lessons
* [Working with files and images](https://www.silverstripe.org/learn/lessons/v4/working-with-files-and-images-1)

View File

@ -360,6 +360,9 @@ class MyAdmin extends ModelAdmin
}
```
## Related Lessons
* [Intoduction to ModelAdmin](https://www.silverstripe.org/learn/lessons/v4/introduction-to-modeladmin-1)
## Related Documentation
* [GridField](../forms/field_types/gridfield)