在插件中加入自定义类别的扩展,如下图所示:
官方实例插件:https://www.xunruicms.com/shop/app/708.html
以Demo插件目录为例,实现步骤:
1、创建字段配置文件dayrui/App/Demo/Fields/Field.php
'Demo::Textarea', // 插件目录名::文件名称 'name' => '测试文本编辑器', ], ];
2、创建字段解析文件dayrui/App/Demo/Fields/Textarea.php 文件命名与上面保持一致
fieldtype = TRUE; $this->defaulttype = 'TEXT'; // 默认显示的类型 } /** * 字段相关属性参数 */ public function option($option) { return [ $this->field_type($option['fieldtype'], $option['fieldlength']), '' ]; } /** * 字段显示 */ public function show($field, $value = null) { $html = ''; return $this->input_format($field['fieldname'], $field['name'], $html); } /** * 字段表单输入 */ public function input($field, $value = '') { // 字段禁止修改时就返回显示字符串 if ($this->_not_edit($field, $value)) { return $this->show($field, $value); } // 字段存储名称 $name = $field['fieldname']; // 字段显示名称 $text = ($field['setting']['validate']['required'] ? ' * ' : '').dr_lang($field['name']); // 表单附加参数 $attr = $field['setting']['validate']['formattr']; // 字段提示信息 $tips = $field['setting']['validate']['tips'] ? ''.$field['setting']['validate']['tips'].'' : ''; // 表单高度设置 $height = $field['setting']['option']['height'] ? $field['setting']['option']['height'] : '100'; // 字段默认值 $value = strlen($value) ? $value : $this->get_default_value($field['setting']['option']['value']); $str = ''; return $this->input_format($name, $text, $str.$tips); } }'.nl2br(htmlentities($value)).'
这里的逻辑结构可以由开发者自由开发,例子以textarea为例。
4、然后在任意地方创建字段,可以选择本字段类别