iliain / silverstripe-droppable

提供一个字段,允许将简码拖拽到文本框中

安装: 19

依赖: 0

建议者: 0

安全性: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

1.3.2 2024-09-06 06:58 UTC

This package is auto-updated.

Last update: 2024-09-06 07:02:00 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

提供一个字段,允许将简码拖拽到文本框中。这对于在不输入的情况下将简码插入文本框非常有用。

注意:这仅允许插入简码,不提供解析简码的功能。

安装(使用composer)

composer require iliain/silverstripe-droppable

要求

  • PHP 7.4+ 或 8.0+
  • Silverstripe 4+ 或 5+

用法

以下是一个创建文本框、为不同行分配按钮并将按钮推送到现有行的示例。每个选项/按钮将是一个数组,第一个元素是要插入的简码,第二个是按钮上显示的文本。

use Iliain\Droppable\Fields\DroppableTextareaField;

$droppable = DroppableTextareaField::create('Example', 'Example', 'This is an example')
    ->setRows(5)
    ->setButtonRow(0, [
        ['[OPTION_1]', 'Option 1'],
        ['[OPTION_2]', 'Option 2'],
    ])
    ->setButtonRow(1, [
        ['[OPTION_3]', 'Option 3']
    ])
    ->pushButton(1, ['[OPTION_4]', 'Option 4']);

Animated example of the field being used

您还可以使用方法 ->setUseDropdown(true) 使用下拉菜单而不是按钮。这将使用与按钮相同的数据,但将以下拉菜单的形式显示。这在处理大量按钮时非常有用。

Animated example of using the dropdown

从这里,用户可以选择以下操作

  • 单击按钮将简码插入到文本框的起始位置,或当前光标位置(如果字段当前已选中)
  • 将按钮拖入文本框以将简码插入到光标位置

函数

具有TextareField可用的常用函数,以及

  • setButtonRow(int $row, ArrayList $buttons) - 为特定行设置按钮。按钮是一个数组。将覆盖该行中现有的任何按钮。

  • getButtonRow(int $row) - 获取特定行的按钮。在只需追加到末尾而不是修改现有行的情况下很有用。

  • pushButton(int $row, array $button) - 将按钮推送到特定行的末尾。将追加到现有行,或在不存在时创建新行。

  • setUseDropdown(bool $useDropdown) - 设置是否使用下拉菜单而不是按钮行。默认为false。下拉菜单将使用行顺序作为下拉项的顺序。

  • setLeftDescription(string $description) - 设置标题下方文本框左侧的描述。默认为null。

待办事项

  • 压缩JS和CSS
  • 允许设置默认下拉文本
  • 添加HTMLEditorField支持