返回列表 发帖
查看: 87|回复: 4

[X5开发特性] X5 中自定义自己的设置项

70

主题

217

回帖

555

积分

管理员

贡献
12 点
金币
41 个
发表于 2024-11-5 10:04:50 | 查看全部 |阅读模式
本着将开放进行到底的方针,X5 这次玩个大的,其实也不算太大......


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

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

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

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

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


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


  1. <?php

  2. namespace sample\admin;

  3. if(!defined('IN_DISCUZ')) {
  4.     exit('Access Denied');
  5. }

  6. class component_test {
  7.     var $name = '自定义颜色';
复制代码

show(&$var, &$extra) 方法是编辑时需要展示的内容,你只需要把自定义的 HTML 内容写在这里,用下面的方法就可以显示为自定义的设置项组件了
  1. showcomponent('测试1', 'abc1', 'yellow', 'sample:component_test');
复制代码

对于复杂的设置项,我们还支持进行序列和反序列处理,比如刚才图中的多个 <input>
  1. // 数据提交入口后进行打包
  2.     function serialize($params, &$value) {
  3.         ...
  4.     }
  5.     // 数据重新编辑前进行解包
  6.     function unserialize($params, &$value) {
  7.         ...
  8.     }
复制代码
但这时就需要在输入提交入库前用 serializecomponent() 打包序列化一下。

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

39

主题

2949

回帖

5011

积分

应用开发者

Discuz! 运维

贡献
186 点
金币
667 个
QQ
发表于 2024-11-5 10:06:12 | 查看全部
沙发位已占
回复

使用道具 举报

2

主题

45

回帖

157

积分

应用开发者

贡献
1 点
金币
89 个
发表于 2024-11-5 10:08:00 | 查看全部
小板凳来了               
回复

使用道具 举报

10

主题

281

回帖

548

积分

应用开发者

贡献
5 点
金币
168 个
QQ
发表于 2024-11-5 10:08:24 | 查看全部
回复

使用道具 举报

1

主题

70

回帖

88

积分

应用开发者

贡献
0 点
金币
11 个
发表于 2024-11-5 15:58:55 | 查看全部
沙发位已占
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2025-4-30 13:58 , Processed in 0.041076 second(s), 9 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表