slonline / silverstripe-calltoaction

Silverstripe 4 模块,通过 HTML 编辑器添加呼叫我行动块

安装: 28

依赖项: 0

建议者: 0

安全: 0

星级: 0

观察者: 2

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

v0.1.5 2021-04-15 13:44 UTC

This package is auto-updated.

Last update: 2024-09-15 21:51:49 UTC


README

为 CMS 用户提供了一个图形界面,用于在 HTMLEditorField 中插入呼叫我行动块或任何短代码,并为开发人员提供了一个 API,以定义可短代码的数据对象和视图。这使得 CMS 用户可以轻松地将数据对象和模板化的 HTML 片段嵌入到页面内容中的任何位置。短代码以所见即所得的形式表示,具有自定义的 HTML 内容。

需求

  • SilverStripe 4+

安装

通过 composer 安装,运行 dev/build

composer require slonline/silverstripe-calltoaction

配置

要添加自己的呼叫我行动类,只需定义一个可以从 DataObject 或 ViewableData 派生的新的类。一个类可以实现 ShortcodeableInterface 接口。接口定义了所需的方法。

class MyCallToAction extends ViewableData implements ShortcodeableInterface
{
    private static $singular_name = 'My Call To Action';
    private static $shortcode = 'mycta';
    
    public static function parse_shortcode($attributes, $content, $parser, $shortcode): string
    {
        return self::create()->renderWith(self::class);
    }
    
    public function getCallToActionPlaceHolder($attributes): string
    {
        return self::create()->renderWith(self::class);
    }
    
    public function singular_name()
    {
        $name = $this->config()->get('singular_name');
        if ($name) {
            return $name;
        }
        return ucwords(trim(strtolower(preg_replace(
            '/_?([A-Z])/',
            ' $1',
            ClassInfo::shortName($this)
        ))));
    }
    
    /**
     * Custom fields for Call To Action form
     *
     * @return FieldList
     */
    public function getShortcodeFields()
    {
        $fields = FieldList::create();
        ...
        return $fields;
    }
}

HTML 将通过模板渲染。

在应用程序配置中添加定义的类。

Name: CallToActions
---
SLONline\CallToActions\CallToAction:
  calltoaction_classes:
    - MyCallToAction

TinyMCE 块元素

在 SilverStripe 中,短代码通常会包裹在段落元素中,如果你的短代码将被渲染为块元素,这可能会成为一个问题。为了解决这个问题,你可以通过配置设置将可短代码的类标记为块元素。如果您不想用 div 替换段落标签,也可以禁用此功能。

MyCallToAction:
  shortcodable_is_block: true
  disable_wrapper: true

屏幕截图

Screenshot Screenshot Screenshot

CMS 使用

安装后,CMS HTMLEditor 工具栏中会显示一个新的按钮 [CtA]。

点击工具栏将打开一个弹出窗口,允许您将呼叫我行动块或短代码插入到编辑器中。

在点击短代码图标之前在编辑器中突出显示现有的短代码标签将打开弹出窗口,允许编辑选定的短代码标签。