grrr-amsterdam / oc-flexiblecontent-plugin
OctoberCMS 模型添加灵活内容的插件。
Requires
- php: >=7.2
- composer/installers: ~1.0
- grrr-amsterdam/garp-functional: ^4.0|^5.0|^6.0
This package is auto-updated.
Last update: 2024-09-25 13:00:30 UTC
README
本插件受Wordpress的高级自定义字段PRO插件启发,允许您为OctoberCMS网站创建灵活的内容块。此插件将处理编辑和渲染部分。
此软件包还包含一个用于可搜索选择(Select2)的灵活模型对象字段 'fc-model-object',允许您选择模型对象并在灵活内容块中使用,而无需与模型有优雅的关系。
安装
composer require grrramsterdam/flexiblecontent-plugin
用法
您可以通过将它们添加到 themes/your-theme/flexible-content/groups.yaml 中来添加灵活内容块。这本质上是一个 repeater 字段中的 groups
选项。每个组必须指定一个唯一的键,定义支持以下选项:name,description,icon和fields。
示例
text: name: Text description: A simple text block icon: icon-align-left fields: text: label: Text type: richeditor text_media: name: Text with media description: A text block with media icon: icon-align-left fields: text: label: Text type: richeditor media: label: Media type: mediafinder
灵活模型对象字段
使用此字段,您可以在灵活内容块中创建一个可搜索的模型对象字段,可用于选择模型对象,而无需与模型有优雅的关系。
用法
fields: model_object: label: Pick example type: fc-model-object model: Grrr\FlexibleContent\Models\ExampleModel nameFrom: title emptyOption: "Select an example item" # searchEndpoint: grrr/project-plugin/example-models/search-select-options
异步选择选项
默认情况下,会对模型执行 all()
查询以动态填充选择选项。但这可能很快成为一个内存问题。您可以指定 searchEndpoint
选项。这应该是一个返回以下格式的JSON响应的OctoberCMS后端控制器路由:
{ "results": [ { "id": 1, "text": "Example item 1" }, { "id": 2, "text": "Example item 2" } ] }
此软件包提供了一个行为 GrrrAmsterdam\FlexibleContent\Behaviors\HasSearchableSelectOptions
,您可以在使用FormController行为的控制器中使用。按如下方式注册:
// [plugin path]/controllers/Examples.php public $implement = [ 'Backend\Behaviors\FormController', 'GrrrAmsterdam\FlexibleContent\Behaviors\HasSearchableSelectOptions', ];
默认情况下,搜索查询将在模型的 title
属性上执行。您可以通过在控制器上重写 getSearchableSelectOptions()
方法来更改此行为。
此行为将在控制器中添加一个路由,后端路径如下:{vendor}/{plugin}/{controller}/search-select-options
。您可以将此路径用作 searchEndpoint
选项。