sheadawson/silverstripe-shortcodable

为CMS用户提供GUI,用于在HTMLEditorField中插入Shortcodes,并为开发者提供API来定义Shortcodable DataObjects和视图

安装次数: 17,953

依赖项: 7

建议者: 3

安全性: 0

星标: 48

关注者: 14

分支: 36

开放性问题: 17

类型:silverstripe-module

4.0.1 2018-12-04 22:37 UTC

README

Scrutinizer Code Quality

Screenshot

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配置应用于您的对象。一些方法也从静态方法更改为常规方法。以下是一些更新示例。