briceburg / silverstripe-pageholder
Hide children from the CMS sitetree and allow management through a Versioned GridField. Think _BlogHolder_ but flexible and for any page type.
Installs: 147
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 1
Open Issues: 4
Type:silverstripe-module
Requires
This package is not auto-updated.
Last update: 2024-12-17 09:36:47 UTC
README
Hide children from the CMS sitetree and allow management through a Versioned GridField.
Think BlogHolder
but flexible and for any page type.
Features
- Automatically appends GridField(s) for managing children to the extended object
- Supports the CMS history view on manages pages.
Requirements
ExcludeChildren https://github.com/micschk/silverstripe-excludechildren
Tested in SilverStripe 3.0, 3.1
Screenshots
Usage
- Add the
PageHolderExtension
to Pages you want to use as holder pages. - Specify the child classes to hide from SiteTree and manage with GridField with the $excluded_children static.
class AttorneysPage extends Page { private static $extensions = array( 'PageHolderExtension' ); private static $excluded_children = array('Attorney'); }
- Flush the cache and run /dev/build, you will now see Attorney management under AttorneysPage types.
Configuration
Placing the GridField
By default, PageHolderExtension
will add GridField(s) to Root.Main, before the Metadata field.
Override this behavior through the $pageholder_tab and $pageholder_insertBefore statics.
class AttorneysPage extends Page { private static $pageholder_tab = 'Root.Attorneys'; private static $pageholder_insertBefore = 'settings'; ... }
Or, through YAML Configuration
--- AttorneysPage: pageholder_tab: Root.Attorneys pageholder_insertBefore: settings
Changing the GridField Title
PageHolderExtension
infers the GridField title from the plural name of the
child class. Set with the $plural_name static.
class Attorney extends ChildPage { private static $plural_name = 'Attorneys'; ... }
Or, through YAML Configuration
--- Attorney: plural_name: Attorneys
Credits
PageHolder provides an enhanced turn-key implementation of