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

6.0.0 2025-10-17 16:51 UTC

README

a simple base dataobject to use with elements

CI Sponsors

Latest Stable Version Total Downloads Latest Unstable Version License

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:

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.