去评论
dz插件网

X5 中自定义自己的设置项

镖师
2025/05/01 08:50:57
本着将开放进行到底的方针,X5 这次玩个大的,其实也不算太大......


这次讲一讲设置项,写过 Discuz! X 后台的开发者估计都熟悉 showsetting 这个函数。没错,是输出后台表单设置项的函数,他可以根据参数输出 radio、checkbox、textarea、file......(不一一列举了)等等类型的设置项。但是有一件事你想过没有,这么多的设置项依然不满足你的需求,为啥,见下面2个图:

是的,配色需要显示下颜色,甚至直接可以显示多个内容的设置。

是的,在 X5 里你的梦想实现了!

X5 中你可以自定义自己的设置项,我们称呼为设置项组件。

要写一个设置项组件插件,你需要在插件目录 admin/component/ 目录下添加文件。文件名为 component_xxxx.php 格式,内容如下:


按照前几天讲的内容,x5 新规范!命名空间~~懂!?

  1. <?phpnamespace sample\admin;if(!defined('IN_DISCUZ')) {    exit('Access Denied');}class component_test {    var $name = '自定义颜色';
show(&$var, &$extra) 方法是编辑时需要展示的内容,你只需要把自定义的 HTML 内容写在这里,用下面的方法就可以显示为自定义的设置项组件了
  1. showcomponent('测试1', 'abc1', 'yellow', 'sample:component_test');
对于复杂的设置项,我们还支持进行序列和反序列处理,比如刚才图中的多个 <input>
  1. // 数据提交入口后进行打包    function serialize($params, &$value) {        ...    }    // 数据重新编辑前进行解包    function unserialize($params, &$value) {        ...    }
但这时就需要在输入提交入库前用 serializecomponent() 打包序列化一下。

然后~~没了,要不要去试一把先?