Module Manager for SilverStripe - forked from jaedb/modulemanager
Manage site-wide modules (aka widgets) and select the pages on which they are to appear. This allows you to repurpose content across your website, and build easily modular content elements.
For a Silverstripe CMS 4.x compatible version of this module, please see the 3.x or 4.x release line.
For a Silverstripe CMS 3.x compatible version of this module, please see the 3 branch, or 2.x release line.
composer require plasticstudio/ModuleManager
after_content
area setup to get you started.$ModuleArea(after_content)
)app/_config/config.yml
file to add any additional module areas. Use the following format:PlasticStudio\ModuleManager\ModuleManager:
positions:
{ALIAS}: "{NAME}"
$ModulePosition(ALIAS)
where ALIAS is your position's alias string./dev/build?flush=all
)Module
object. The type dropdown will show the list of available module types.Module
object to one of the positions you configured in config.yml
.app/src/Modules/MyModule.php
:<?php
class MyModule extends Module {
// set module names
private static $singular_name = 'My Module';
private static $plural_name = 'My Modules';
private static $description = 'This is my great custom module';
// your custom fields
static $db = array(
'MyField' => 'Varchar(255)'
);
// create cms fields
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', TextField::create('MyField', 'My field'));
return $fields;
}
}
app/templates/{NameSpace}}/MyModule.ss
: <div class="module module_my-module">
<h3>$Title</h3>
<div class="module-content">
$MyField
</div>
</div>
/dev/build?flush=all
)To avoid having to set a module on each page within a section, you can set your pages to inherit it's parent page's modules.
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem