wedevelopnl / silverstripe-grid
Grid-based content block system for SilverStripe
Package info
github.com/wedevelopnl/silverstripe-grid
Type:silverstripe-vendormodule
pkg:composer/wedevelopnl/silverstripe-grid
Requires
- php: ^8.3
- silverstripe/admin: ^3.0
- silverstripe/cms: ^6.0
- silverstripe/framework: ^6.0
- silverstripe/vendor-plugin: ^3.0
- silverstripe/versioned: ^3.0
- unclecheese/display-logic: ^4.0
- wedevelopnl/silverstripe-media-field: ^6.0
Requires (Dev)
- cambis/silverstan: ^2.1
- infection/infection: ^0.32
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-deprecation-rules: ^2.0
- phpunit/phpunit: ^11.3
- tomasvotruba/type-coverage: ^2.0
- wernerkrauss/silverstripe-rector: ^1.0
Suggests
- silverstripe/reports: Enables the Grid Elements report in CMS → Reports
- tractorcow/silverstripe-fluent: Required for multi-locale support with isolated element records per locale
Conflicts
- 6.x-dev
- 6.0.0-alpha.5
- 6.0.0-alpha.4
- 6.0.0-alpha.3
- 6.0.0-alpha.2
- 6.0.0-alpha.1
- dev-docs/refresh-architecture-and-usage-guides
- dev-refactor/grid-settings-serializer
- dev-refactor/tree-architecture
- dev-feature/cms-preview-viewport-integration
- dev-refactor/remove-search-indexable-hook
- dev-feat/element-summary
- dev-dependabot/npm_and_yarn/vitest/coverage-v8-4.1.5
- dev-feature/preview-grid-highlight
- dev-dependabot/npm_and_yarn/vitest-4.1.5
- dev-refactor/block-classes-factory
- dev-refactor/element-status-enum
- dev-dependabot/npm_and_yarn/tanstack/react-query-5.99.2
- dev-dependabot/npm_and_yarn/vite-8.0.9
- dev-mutation-score-hardening
- dev-test/surface-migration-failures
This package is auto-updated.
Last update: 2026-04-23 10:46:35 UTC
README
A grid-based content block system for SilverStripe 6 CMS — structured Section → Row → Column layouts with configurable CSS framework adapters (Bootstrap, Tailwind, Bulma).
Requirements
- PHP ^8.3
- silverstripe/framework ^6.0, silverstripe/cms ^6.0, silverstripe/admin ^3.0, silverstripe/versioned ^3.0, silverstripe/vendor-plugin ^3.0
- unclecheese/display-logic ^4.0, wedevelopnl/silverstripe-media-field ^6.0
- Node >= 24 (only needed if you build the frontend yourself)
Optional:
silverstripe/reports— enables the Grid Elements report in CMS Reportstractorcow/silverstripe-fluent— multi-locale support with isolated grid records per locale (see Fluent integration)
Conflict: this module conflicts with
dnadesign/silverstripe-elementaland replaces its functionality.
Installation
composer require wedevelopnl/silverstripe-grid
Then run dev/build?flush=1 to pick up the new database schema and configuration.
Usage
Apply GridPageExtension to the page types that should have grid editing:
# app/_config/grid.yml Page: extensions: Grid: WeDevelop\Grid\Extensions\GridPageExtension
Render the grid in the page template:
<% loop $Sections %>$Me<% end_loop %>
That's a working integration. See Template integration for the per-page editor toggle, default-behavior configuration, theme overrides, and the holder chain.
Documentation
Usage guides
- Custom content elements — subclass
ContentElement, register CMS fields, add templates - Template integration —
GridPageExtensionconfiguration, holder chain, theme overrides, extension hooks - Internationalization — translating strings, adding a locale, PHP + JS collectors
Integration guides
- Migrating from Elemental / ElementalGrid —
BuildTask-based upgrade from SS5silverstripe-elemental/silverstripe-elemental-grid - Fluent (multi-locale) support — optional integration with
tractorcow/silverstripe-fluent
Architecture
- Backend architecture — data model, API layer, service design, validation
- Drag and Drop — frontend dnd-kit integration and backend reorder pipeline
- Grid Adapter System — building a new CSS framework adapter
Contributing
- Contributing guide — dev environment, test/coverage/QA commands, pull-request conventions
- E2E fixture protocol — YAML schema, post-actions, dev fixture endpoint
Changelog
See CHANGELOG.md for release history.
License
See LICENSE.