Hide children from the CMS sitetree and allow management through a Versioned GridField.
Think BlogHolder
but flexible and for any page type.
- Automatically appends GridField(s) for managing children to the extended object
- Supports the CMS history view on manages pages.
ExcludeChildren https://github.com/micschk/silverstripe-excludechildren
Tested in SilverStripe 3.0, 3.1
- 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.
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
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
PageHolder provides an enhanced turn-key implementation of