discuz常用函数
函数
表单相关 submitcheck('submit') //验证提交,元素name值为submit diconv($res['title'],'UTF-8',CHARSET); //编码转换函数 cpmsg('提示信息','跳转路径','装态、succeed'); global $_G; loadcache('forums');//获取所有版块信息 showmessage('提示信息'); //前台提示函数 cpmsg('提示信息,'跳转url','succeed'); //后台提示函数 读取缓存 loadcache($key); $_G['cache'][$key] 设置缓存 savecache($key,$val); 加解密 authcode(str,'ENCODE') //加密 authcode(str,'DECODE') //解密 获取所有用户组信息 loadcache('usergroups'); $usergroups = $_G['cache']['usergroups'];
常量相关
ADMINSCRIPT //由于后台文件允许用户自行改名,插件中应当使用 ADMINSCRIPT 常量代替 admin.php FORMHASH //用于表单验证 IN_ADMINCP //后台文件必须加的 CHARSET //编码 {STATICURL} //静态文件目录
表单相关
submitcheck('submit') //验证提交,元素name值为submit
大G
$_G[siteurl] 获得当前站点的 URL $extcredits = $_G['setting']['extcredits']; //积分类型
调用论坛版块API
<?php require './source/class/class_core.php'; $discuz = C::app(); $discuz->init(); // 获取所有版块 $forums = DB::fetch_all('SELECT fid, name, description FROM pre_forum_forum'); foreach ($forums as $forum) { echo "版块ID: " . $forum['fid'] . " - 名称: " . $forum['name'] . " - 描述: " . $forum['description'] . "<br>"; } ?>
调用语言包
// 模版中调用模板文件语言包,通过 {lang identifier:english} 方式调用。 // 程序脚本中调用脚本文件语言包,通过 lang('plugin/identifier', 'english') 方式调用。 // 安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。如 $installlang['english']。
注意事项
不要使用 ./ 绝对路径,论坛可能安装在二级目录时会报错
数组不要使用 [] 中刮号,不支持php5.4及以下版本
嵌入点不要返回false,会导至同一嵌入点的插件异常
函数文件命名用xxx.func.php
不是php文件不要用.php后辍
请使用 $_GET[xxx] 或 $_COOKIE[xxx] 代替已废弃的 $_G[gp_xxx] 和 getgpc() 获取 GET/POST/COOKIE 变量数据
1.logo 背景 未渐变色 又要图层图标 40 * 40 png 。
2.凡后台 *.inc.php 需加 ADMIN_CP 判断, 前台非 api 文件需加 IS_DISCUZ 判断
3.凡后台模板上传 需严格验证 php端 也许严格验证。
4.凡模板输出 用户提交参数 需做 htmlspecialchars 处理。
5.控制器中凡用户提交的数据 需做 addslashes 处理。
6.凡是 数据 POST 提交 数据库 删除 修改 增加 需做 formhash 判断,前台ajax 也需要。
7.前台微信端 调用模板放在 调用的模板是template/touch/,template/mobile/ 下.
8.后台 jQuery 全局 变量 需要做处理。
9.数据库 表需加前缀 pre_,默认无编码类型。
原样输入变量字符串
{eval} echo "{$index}"; {/eval}