dynamic / silverstripe-elemental-baseobject
A simple base DataObject to use with Elemental Content Blocks
Fund package maintenance!
dynamic
Installs: 81 290
Dependents: 10
Suggesters: 0
Security: 0
Stars: 1
Watchers: 7
Forks: 12
Open Issues: 2
Type:silverstripe-vendormodule
pkg:composer/dynamic/silverstripe-elemental-baseobject
Requires
Requires (Dev)
- cambis/silverstan: ^2.1
- phpstan/extension-installer: ^1.4
- silverstripe/recipe-testing: ^4.0
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2025-11-11 04:09:50 UTC
README
a simple base dataobject to use with elements
Requirements
- SilverStripe: ^6.0
- dnadesign/silverstripe-elemental: ^6.0
- silverstripe/linkfield: ^5.0
- PHP: ^8.1
Installation
composer require dynamic/silverstripe-elemental-baseobject
License
See License
Usage
BaseElementObject is a versioned DataObject that provides a reusable foundation for managing collections of related content within Elemental blocks. It's designed to be extended or used as a has_many relationship in custom Element classes.
Features
The base object includes:
- Title - Text field with optional display toggle (using
TextCheckboxGroupField) - Content - HTML text area for rich content
- Image - Image upload with automatic organization into
Uploads/Elements/Objects - Link - Configurable call-to-action using SilverStripe LinkField
- Versioning - Full draft/publish workflow with GridField extensions
- Permissions - Inherits permissions from the current page context
Common Usage Pattern
Typically used as a has_many relationship in Elemental blocks:
use Dynamic\BaseObject\Model\BaseElementObject; use DNADesign\Elemental\Models\BaseElement; class ElementAccordion extends BaseElement { private static $has_many = [ 'Items' => BaseElementObject::class, ]; }
Extending BaseElementObject
For custom functionality, extend the class:
use Dynamic\BaseObject\Model\BaseElementObject; class PromoObject extends BaseElementObject { private static $db = [ 'Subtitle' => 'Varchar(255)', ]; private static $table_name = 'PromoObject'; }
Used By
This module serves as a dependency for several Dynamic Elemental modules:
- Accordion - Collapsible content panels
- Features - Icon-based feature highlights
- Gallery - Image galleries with captions
- Promos - Promotional content blocks
- Sponsors - Sponsor/partner logos
- Timeline - Event timelines
Getting more elements
See Elemental modules by Dynamic
Configuration
See SilverStripe Elemental Configuration
Translations
The translations for this project are managed via Transifex and are updated automatically during the release process. To contribute, please head to the link above and get translating!
Maintainers
Bugtracker
Bugs are tracked in the issues section of this repository. Before submitting an issue please read over existing issues to ensure yours is unique.
If the issue does look like a new bug:
- Create a new issue
- Describe the steps required to reproduce your issue, and the expected outcome. Unit tests, screenshots and screencasts can help here.
- Describe your environment as detailed as possible: SilverStripe version, Browser, PHP version, Operating System, any installed SilverStripe modules.
Please report security issues to the module maintainers directly. Please don't file security issues in the bugtracker.
Development and contribution
If you would like to make contributions to the module please ensure you raise a pull request and discuss with the module maintainers.