iliain / silverstripe-droppable
提供一个字段,允许将简码拖拽到文本框中
1.3.2
2024-09-06 06:58 UTC
Requires
- php: ^7 || ^8
- silverstripe/framework: ^4 || ^5
README
提供一个字段,允许将简码拖拽到文本框中。这对于在不输入的情况下将简码插入文本框非常有用。
注意:这仅允许插入简码,不提供解析简码的功能。
安装(使用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']);
您还可以使用方法 ->setUseDropdown(true)
使用下拉菜单而不是按钮。这将使用与按钮相同的数据,但将以下拉菜单的形式显示。这在处理大量按钮时非常有用。
从这里,用户可以选择以下操作
- 单击按钮将简码插入到文本框的起始位置,或当前光标位置(如果字段当前已选中)
- 将按钮拖入文本框以将简码插入到光标位置
函数
具有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支持