Download the PHP package arillo/silverstripe-elements without Composer
On this page you can find all versions of the php package arillo/silverstripe-elements. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download arillo/silverstripe-elements
More information about arillo/silverstripe-elements
Files in arillo/silverstripe-elements
Package silverstripe-elements
Short Description Elements
License MIT
Homepage https://github.com/arillo/silverstripe-elements
Informations about the package silverstripe-elements
SilverStripe Elements
Decorates a SiteTree class with multiple named element relations through a has_many "Elements" relation.
Requirements
SilverStripe CMS ^4.0
For a SilverStripe 3.x compatible version of this module, please see the 1 branch, or 0.x release line.
Todo
- write tests
- write better docs
Usage
Set up you relation types in your _config/elements.yml, e.g:
In this example we are creating 2 element relationships to the Page, one called Elements, the other called Downloads.
To make it work Element
class should subclass ElementBase
, where all additional fields can be defined, e.g.:
In the SiteTree instance the element relations are now accessable through:
To use them in a template:
Notice: we pass in the $Pos, $First, $Last and $EvenOdd values to have them available inside the template as $IsPos, $IsFirst, $IsLast and $IsEvenOdd.
There is also a helper function to move a gridfield into another tab if you prefer:
Nested Element relations
Apply the same extension to the Element instead of the Page.
Element inheritance
If you would like to have the same elements applied to different Pagetypes you can use the element_relations_inherit_from
definition referencing a arbitrary setup in the yml file. For example if we want the HomePage and the EventsPage to inherit the same elements we can define the .yml like this:
They both reference the MainElements defined in the yml where you have defined the element_relations, like this:
If you inherit elements you can still create your custom relations and also append new Element types to the inherited relation.
In this example ImageElement is added to the list of available Elements defined in MainElements.
URLSegmentField
If you want to show the URLSegment field in the cms, you can opt-in via the config show_urlsegment_field
Bulkuploader
There is support for using Colymba\BulkUpload\BulkUploader
for an relation to a single element. E.g. given the following relation:
you can apply a bulkuploader in ImagesElement
:
Translation
Naming of Tab
and GridField
labels can be done through silverstripes i18n.
There is a special key called Element_Relations
reserved to accomplish this task, e.g. in de.yml:
Populate default elements
A button below the Element GridField called "Create default elements" will populate the default elements defined in your _config.yml as empty elements in your page. If you trigger the action again it will counter-check against the already created elements and don't add any duplicates.
You can define the element_defaults for each of your relations like this:
Fluent integration
To use fluent with elements just add the Fluent extensions to the ElementBase:
Options
Use a tab instead of inline field when only one relation available
Changelog:
2.2.5
- removed fluent records auto-deletion
2.1.9
– added support for SS 4.4 GridFieldDetailForm::setShowAdd – removed 'onAfterDelete' hook, if you need auto deletion, add:
2.1.8
- addded support for bulkuploading
2.1.0
-
removed Fluent Locales auto-creation, use
Arillo\Utils\FluentFilteredHelper
instead. - refactor GridField overview display: added
getCMSTypeInfo
andgetCMSSummary
functions.
2.0.0
- SilverStripe 4 compat
0.2.0
- remove DefaultElementsExtension
- add Publish page button in Element DetailForm
0.1.0
- remove extensions from your mysite/_config/elements.yml
All versions of silverstripe-elements with dependencies
arillo/silverstripe-dataobject-preview Version dev-master
symbiote/silverstripe-gridfieldextensions Version ^3
colymba/gridfield-bulk-editing-tools Version dev-master