Simple content blocks system. Nothing fancy, easy to implement.
- silverstripe/cms 4.0.x
- silverstripe/framework 4.0.x
- symbiote/silverstripe-gridfieldextensions 3.1.1
- edgarindustries/youtubefield 1.1
- sheadawson/silverstripe-linkable 2.0.x-dev
Add the following to your config.yml
:
Page:
extensions:
- Toast\QuickBlocks\QuickBlocksExtension
Optionally:
PageController:
extensions:
- Toast\QuickBlocks\QuickBlocksControllerExtension
Use Page
or other class that extends SiteTree
.
In your Layout/Page.ss
template, add the following:
<% loop $ContentBlocks %>
$ForTemplate
<% end_loop %>
Toast\QuickBlocks\QuickBlocksExtension:
available_blocks:
- Toast\QuickBlocks\TextBlock
Extend QuickBlock
to create a new block type.
<?php
namespace Toast\QuickBlocks;
class MyBlock extends QuickBlock
{
private static $singular_name = 'My Block';
private static $plural_name = 'My Blocks';
private static $icon = 'mysite/images/blocks/custom.png';
private static $db = [
'Content' => 'HTMLText'
];
}
/themes/default/templates/Toast/QuickBlocks/MyBlock.ss
:
<%-- Your block template here --%>
<h2>$Title</h2>
$Content
- Template global providers
- Zoning
- Duplicate handlers
- Tests
Through
tables for more advanced versioning