undefinedoffset / silverstripe-advancedwidgeteditor
替换 Widget 编辑器,以支持高级表单字段,如 UploadField
Requires
- silverstripe/recipe-core: ~4.6|~5.0
- silverstripe/widgets: ~2.0|~3.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ~3.4
Suggests
- webbuilders-group/silverstripe-collapsiblewidgets: Extends the widget area editor and makes used widgets collapsible
README
替换 Widget 编辑器,以支持高级表单字段,如 SilverStripe\AssetAdmin\Forms\UploadField
需求
- SilverStripe ~4.6 | ~5.0
- SilverStripe Widgets ~2.0 | ~3.0
安装
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
类及其子类将拥有 RSSWidget
和 MyExampleWidget
。而 SilverStripe\Blog\Model\Blog
类及其子类也将拥有 ArchiveWidget、BlogManagementWidget 等,以及 RSSWidget
和 MyExampleWidget
。
您还可以使用上面的例子限制子类中的 Widget,比如我们想要限制 SilverStripe\Blog\Model\Blog
类不能访问 RSSWidget
,但仍然允许 Page
使用该 Widget,例如您可以使用以下代码
SilverStripe\Blog\Model\Blog: restricted_widgets: - "RSSWidget"
报告问题
当您报告问题时,请确保您指定您使用的 SilverStripe 版本。同时,请确保包括您收到的任何 JavaScript 或 PHP 错误,对于 PHP 错误,请确保包括完整的堆栈跟踪。同时,请包括您如何产生问题的。您可能还需要提供一些类以帮助重现问题。专注于问题,记住您看到的是问题而不是模块的维护者,因此可能需要很多问题才能找到解决方案或答案。