plasticstudio / modulemanager
SilverStripe 模块管理器 - 从 jaedb/modulemanager 分支出来
4.0.2
2024-09-18 00:41 UTC
Requires
- silverstripe/cms: ^4 || ^5
- silverstripe/framework: ^4 || ^5
- silverstripe/vendor-plugin: ^2
This package is auto-updated.
Last update: 2024-09-18 00:41:48 UTC
README
描述
管理全局模块(也称为小部件)并选择它们要出现的页面。这允许你在整个网站上重复使用内容,并轻松构建模块化内容元素。
依赖项
- SilverStripe 4
有关此模块的 Silverstripe CMS 4.x 兼容版本,请参阅 3.x 或 4.x 版本线。
- 4.x 版本使用新命名空间(plasticstudio\ModuleManager)
- 3.x 版本使用旧命名空间(Jaedb\ModuleManager)
有关此模块的 Silverstripe CMS 3.x 兼容版本,请参阅 3 分支或 2.x 版本线。
安装
composer require plasticstudio/ModuleManager
- 运行 /dev/build?flush=1
- 设置模块位置。有一个初始的
after_content
区域已设置以帮助您开始。 - 将模块位置插入到您的模板中(例如
$ModuleArea(after_content)
)
使用方法
创建模块区域
- 编辑您的
app/_config/config.yml
文件以添加任何额外的模块区域。使用以下格式
PlasticStudio\ModuleManager\ModuleManager:
positions:
{ALIAS}: "{NAME}"
- 在您的模板中,使用代码
$ModulePosition(ALIAS)
,其中 ALIAS 是您位置别名字符串。 - 运行 dev/build(
/dev/build?flush=all
)
创建模块实例
- 在 模块管理器 管理员中,创建一个新的
Module
对象。类型下拉菜单将显示可用的模块类型列表。 - 将您的新的
Module
对象分配给在config.yml
中配置的位置之一。
创建自定义模块类型
- 创建一个新的 DataObject 文件
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
) - 现在您可以创建自定义模块类型
模块继承
为了避免在部分中的每个页面上设置模块,您可以设置页面以继承其父页面的模块。
- 打开您的页面,并转到 模块 选项卡
- 勾选 继承模块 并保存您的页面。
- 如果需要,您可以在页面层次结构中进一步应用此继承。