flxlabs / silverstripe-pagesections
Adds configurable page sections and elements to your SilverStripe project.
Installs: 2 368
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Type:silverstripe-vendormodule
pkg:composer/flxlabs/silverstripe-pagesections
Requires
- dev-master
- 2.0.0-beta
- 1.1.0
- 1.0.1
- 1.0.0
- 0.3.0
- 0.2.0
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.2
- 0.1.1
- 0.1.0
- dev-feature/ss6-support
- dev-release/1.1.0
- dev-release/1.0.1
- dev-release/1.0.0
- dev-release/0.3.0
- dev-feature/ss4-treeview
- dev-feature/unversioned
- dev-feature/ss4-support
- dev-develop
- dev-feature/ui
- dev-release/0.1.5
- dev-release/0.1.4
This package is auto-updated.
Last update: 2025-10-17 08:16:15 UTC
README
Elemental alternative for configurable page sections and elements.
Introduction
This module provides page sections for SilverStripe 4.x projects. Page sections are areas on a page where CMS users can add their own content in a structured way. Pages can have none, one or more page sections attached to them. Each page section is made up of various page elements, which themselves can or cannot have other page elements as children.
Installation
composer require flxlabs/silverstripe-pagesections
Add the extension to the DataObject that should contain a PageSection:
Page: extensions: - PageSectionsExtension
By default the DataObject will have a PageSection called Main. To add additional sections, or change the name of the default section, specify them in the page_sections key.
Page: extensions: - PageSectionsExtension page_sections: - Main - Aside
Make sure to run dev/build and flush.
Usage
Defining an element:
<?php class TextElement extends FLXLabs\PageSections\PageElement { public static $singular_name = 'Text'; public static $plural_name = 'Texts'; private static $db = [ 'Content' => 'HTMLText', ]; // Page elements can have other page elements as children. // Use this method to restrict allowed childre. public function getAllowedPageElements() { return [ // YourElement::class ]; } // This will be used to preview the content in the CMS editor public function getGridFieldPreview() { return $this->dbObject('Content')->Summary(); } }
To render an element, create a Template. To render a page section use the RenderPageElements method exposed by the PageSectionsExtension:
<div> $RenderPageSection('SectionName') </div>