undefinedoffset/silverstripe-advancedwidgeteditor

替换 Widget 编辑器,以支持高级表单字段,如 UploadField

安装次数: 1,203

依赖项: 0

建议者: 0

安全性: 0

星标: 9

关注者: 2

分支: 2

类型:silverstripe-vendormodule

2.0.4 2024-05-17 18:54 UTC

This package is auto-updated.

Last update: 2024-09-17 19:38:56 UTC


README

CI

替换 Widget 编辑器,以支持高级表单字段,如 SilverStripe\AssetAdmin\Forms\UploadField

需求

安装

composer require undefinedoffset/silverstripe-advancedwidgeteditor

使用方法

要使用高级 Widget 编辑器代替默认的 SilverStripe Widgets 编辑器,您需要将您的扩展从 WidgetPageExtension 改为使用 AdvancedWidgetPageExtension。

Page:
  extensions:
    - 'UndefinedOffset\AdvancedWidgetEditor\Extensions\AdvancedWidgetPageExtension'

按类控制可用的 Widget

要控制单个类的主机类(Advanced Widget 编辑器控制的 Widget 区域的类)上的 Widget,您可以使用配置属性 available_widgets,例如

Page:
    available_widgets:
        - "RSSWidget"
        - "MyExampleWidget"

SilverStripe\Blog\Model\Blog:
    available_widgets:
        - 'SilverStripe\Blog\Widgets\BlogArchiveWidget'
        - 'SilverStripe\Blog\Widgets\BlogCategoriesWidget'
        - 'SilverStripe\Blog\Widgets\BlogTagsCloudWidget'
        - 'SilverStripe\Blog\Widgets\BlogRecentPostsWidget'

在上面的例子中,Page 类及其子类将拥有 RSSWidgetMyExampleWidget。而 SilverStripe\Blog\Model\Blog 类及其子类也将拥有 ArchiveWidget、BlogManagementWidget 等,以及 RSSWidgetMyExampleWidget

您还可以使用上面的例子限制子类中的 Widget,比如我们想要限制 SilverStripe\Blog\Model\Blog 类不能访问 RSSWidget,但仍然允许 Page 使用该 Widget,例如您可以使用以下代码

SilverStripe\Blog\Model\Blog:
    restricted_widgets:
        - "RSSWidget"

报告问题

当您报告问题时,请确保您指定您使用的 SilverStripe 版本。同时,请确保包括您收到的任何 JavaScript 或 PHP 错误,对于 PHP 错误,请确保包括完整的堆栈跟踪。同时,请包括您如何产生问题的。您可能还需要提供一些类以帮助重现问题。专注于问题,记住您看到的是问题而不是模块的维护者,因此可能需要很多问题才能找到解决方案或答案。