sheadawson / silverstripe-shortcodable
为CMS用户提供GUI,用于在HTMLEditorField中插入Shortcodes,并为开发者提供API来定义Shortcodable DataObjects和视图
Requires
README
SS4兼容版本正在开发中。如果您想帮忙推进这项工作,请提交PR!
哪些功能正常工作
- TinyMCE按钮/弹出窗口
- 弹出窗口中的表单
哪些功能尚未正常工作
- 占位符
- 编辑现有的Shortcode
- 可能还有其他事情
为CMS用户提供GUI,用于在HTMLEditorField中插入Shortcodes,并为开发者提供API来定义Shortcodable DataObjects和视图。这使得CMS用户可以轻松地将DataObjects和模板化HTML片段嵌入到其页面内容中的任何地方。Shortcodes可以选择以自定义占位符图片的形式在WYSIWYG中显示。
要求
- SilverStripe 4+
有关SilverStripe SS 3.5兼容性,请参阅3.x分支/发布。有关SilverStripe SS 3.1 - 3.4兼容性,请参阅2.x分支/发布。
安装
通过composer安装,运行dev/build
composer require sheadawson/silverstripe-shortcodable
配置
有关一个示例Shortcodable ImageGallery的良好文档,请参阅此gist。此示例用于DataObject的子类。如果您的shortcodable对象不需要自己的数据库记录,您可以使用相同的示例,但使用ViewableData作为父类。
tinyMCE块元素
在SilverStripe 3中,shortcodes通常被包裹在段落元素中,如果您的shortcode将被渲染为块元素,这将是一个问题。为了解决这个问题,您可以将短codable类标记为块元素,并使用配置设置。如果您不想用div替换段落标签,这也可以被禁用。
MyShortcodableClass: shortcodable_is_block: true disable_wrapper: true
CMS使用
安装后,CMS HTMLEditor工具栏中将出现一个新图标。它看起来像这样:
点击工具栏将打开一个弹出窗口,允许您将Shortcode插入到编辑器中。
在点击Shortcode图标之前,在编辑器中突出显示现有的Shortcode标签将打开弹出窗口,允许编辑选定的Shortcode标签。
在编辑器中双击Shortcode占位符也将打开弹出窗口,允许编辑Shortcode。
从1.x升级
Shortcodable 2.0有一个改进的方法来应用Shortcodable到DataObjects。我们不再使用接口,因为这不允许在不更改核心代码的情况下将Shortcodable应用于核心类,如File、Member、Page等。相反,Shortcodable通过yml配置应用于您的对象。一些方法也从静态方法更改为常规方法。以下是一些更新示例。