南通铭溪数码印花

找回密码
立即注册
发新帖

3

积分

0

好友

1

主题
发表于 2025-4-17 03:17:02 | 查看: 62| 回复: 0
不一定准确 ,不过我使用这个rules开发了两个插件,目前使用没有问题。
希望有大佬可以完善并分享



  • # DiscuzX插件开发的规则

  • ### 一、全局规则
  • ■ **框架约束**
  • 1. 所有插件必须基于`/[插件标识符]`目录开发
  • 3. 所有PHP类文件需遵循`class_`前缀命名规范
  • 4. 模板文件必须存放于`template/`子目录

  • ■ **安全规范**
  • - 所有用户输入必须通过`dhtmlspecialchars()`过滤
  • - 数据库操作必须使用`DB::query()`方法
  • - 禁止直接操作$_GET/$_POST,需通过`getgpc()`获取参数

  • ■ **开发流程**
  • 1. 优先使用Discuz!X内置的38个嵌入点
  • 2. 页面输出必须通过`return`而非`echo`
  • 3. 插件配置项需存储在`$_G['cache']['plugin']`


  • ### 二、PHP开发规则
  • ■ **核心类规范
  • 1. 继承`discuz_plugin`基类时必须实现`install()/uninstall()`方法
  • 2. 模块类命名格式:`class_[模块名]_[插件标识符]`
  • 3. 使用`hookscript`机制时必须包含`check.inc.php`

  • ■ **缓存机制
  • - 加载插件缓存:`loadcache('plugin')`
  • - 更新配置时需调用`updatecache('plugin')`
  • - 临时数据存储使用`memory('set', $key, $value)`

  • ■ **API调用示例
  • // 用户权限验证模板
  • if(!$_G['uid']) {
  •     showmessage('not_loggedin', '', array(), array('login' => 1));
  • }


  • ### 三、模板开发规则

  • ■ **模板规范
  • 1. 语言变量必须通过`{lang plugin_identifier:key}`调用
  • 2. 循环结构需使用`<!--{loop $list $value}-->`语法
  • 3. 条件判断必须包含`<!--{if}-->...<!--{/if}-->`标签

  • ■ **CSS规范
  • - 样式类名需添加插件标识符前缀(例:.pluginid_btn)
  • - 优先继承`common.css`基础样式
  • - 移动端模板需存放在`template/touch/`

  • ### 四、Debug 日志
  • ```
  • function plugin_identifier_debug_log($msg) {
  •     $log_file = DISCUZ_ROOT.'data/log/plugin_identifier_debug.log';
  •     file_put_contents($log_file, date('Y-m-d H:i:s').&quot; - &quot;.$msg.PHP_EOL, FILE_APPEND);
  • }
  • ```
  • // 示例:记录变量值
  • ```
  • plugin_identifier_debug_log('用户ID:'.$uid.' 执行操作:'.$action);
  • ```



来源:https://www.dismall.com/thread-25467-1-1.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|南通铭溪

GMT+8, 2025-5-3 06:14 , Processed in 0.041284 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表