plasticstudio/modulemanager

SilverStripe 模块管理器 - 从 jaedb/modulemanager 分支出来

安装次数: 1,831

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 2

公开问题: 0

类型:silverstripe-vendormodule

4.0.2 2024-09-18 00:41 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 版本线。

安装

  1. composer require plasticstudio/ModuleManager
  2. 运行 /dev/build?flush=1
  3. 设置模块位置。有一个初始的 after_content 区域已设置以帮助您开始。
  4. 将模块位置插入到您的模板中(例如 $ModuleArea(after_content)

使用方法

创建模块区域

  1. 编辑您的 app/_config/config.yml 文件以添加任何额外的模块区域。使用以下格式
PlasticStudio\ModuleManager\ModuleManager:
  positions:
    {ALIAS}: "{NAME}"
  1. 在您的模板中,使用代码 $ModulePosition(ALIAS),其中 ALIAS 是您位置别名字符串。
  2. 运行 dev/build(/dev/build?flush=all

创建模块实例

  1. 模块管理器 管理员中,创建一个新的 Module 对象。类型下拉菜单将显示可用的模块类型列表。
  2. 将您的新的 Module 对象分配给在 config.yml 中配置的位置之一。

创建自定义模块类型

  1. 创建一个新的 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;
  }	
}
  1. 创建您的模板文件 app/templates/{NameSpace}}/MyModule.ss
  <div class="module module_my-module">
  	<h3>$Title</h3>
  	<div class="module-content">
          $MyField
  	</div>
  </div>
  1. 执行构建和刷新(/dev/build?flush=all
  2. 现在您可以创建自定义模块类型

模块继承

为了避免在部分中的每个页面上设置模块,您可以设置页面以继承其父页面的模块。

  1. 打开您的页面,并转到 模块 选项卡
  2. 勾选 继承模块 并保存您的页面。
  3. 如果需要,您可以在页面层次结构中进一步应用此继承。