jaedb/modulemanager 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jaedb/modulemanager

最新稳定版本:3.0.2

Composer 安装命令:

composer require jaedb/modulemanager

包简介

Module Manager for SilverStripe

关键字:

README 文档

README

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.

Dependencies

  • SilverStripe 4

Installation

  1. composer require jaedb/ModuleManager
  2. Run /dev/build?flush=1
  3. Setup your Module Positions. There is an initial after_content area setup to get you started.
  4. Insert your Module Positions in your template (ie $ModuleArea(after_content))

Usage

Create a module area

  1. Edit your app/_config/config.yml file to add any additional module areas. Use the following format:
Jaedb\ModuleManager\ModuleManager:
  positions:
    {ALIAS}: "{NAME}"
  1. In your template, use the code $ModulePosition(ALIAS) where ALIAS is your position's alias string.
  2. Run dev/build (/dev/build?flush=all)

Create a module instance

  1. Within the Module Manager admin, create a new Module object. The type dropdown will show the list of available module types.
  2. Assign your new Module object to one of the positions you configured in config.yml.

Build a custom module type

  1. Create a new DataObject file 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. Create your template file app/templates/Modules/MyModule.ss:
  <div class="module module_my-module">
  	<h3>$Title</h3>
  	<div class="module-content">
          $MyField
  	</div>
  </div>
  1. Perform a build and flush (/dev/build?flush=all)
  2. Now you can create your custom module type

Modules inheritance

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.

  1. Open your page, and navigate to the Modules tab
  2. Check Inherit Modules and Save your page.
  3. You can apply this inheritance further up the page hierarchy if required.

统计信息

  • 总下载量: 2.44k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-08-20