您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz!道具系统开发介绍
问筠2025-07-06Discuz教程已有人查阅
导读Discuz!道具系统采用独立的php文件的道具结构,每个道具拥有一个单独的php文件,做为这个道具运行文件,用户可以自行编写道具文件制作属于自己论坛的道具。
Discuz!道具系统采用独立的php文件的道具结构,每个道具拥有一个单独的php文件,做为这个道具运行文件,用户可以自行编写道具文件制作属于自己论坛的道具。下面具体介绍一下相关机制和开发方法
1、 道具的组成
每个道具由两部分组成,php文件和图片文件。
php文件存放在论坛include/magic目录下,命名规范为magic_inc_道具名称.php文件。图片文件存放在images/magics目录下,命名规范为道具唯一标识(小写).gif
注:其中道具名称由任意英文字母组成,道具唯一标识是在添加的时候确定的,此标识唯一,最长为3个大写英文字母道具图片不用多说就是gif文件,下面我具体说说php文件编写规范
2、 道具php文件编写详解
我们以一个道具php文件(magic_inc_close.php)为例
3、 道具系统自带函数
所有的自定函数都在include/magic.func.php文件里面,下面我对这些函数一一做解释
1、 道具的组成
每个道具由两部分组成,php文件和图片文件。
php文件存放在论坛include/magic目录下,命名规范为magic_inc_道具名称.php文件。图片文件存放在images/magics目录下,命名规范为道具唯一标识(小写).gif
注:其中道具名称由任意英文字母组成,道具唯一标识是在添加的时候确定的,此标识唯一,最长为3个大写英文字母道具图片不用多说就是gif文件,下面我具体说说php文件编写规范
2、 道具php文件编写详解
我们以一个道具php文件(magic_inc_close.php)为例
<?php
// 这段代码的作用防止文件直接调用,每个道具文件都必须在开头加入
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
// 用户点击使用后,执行的代码
if(submitcheck('usesubmit')) {
// 验证资料是否填写完全,这里验证$tid(帖子id)是否填写
if(empty($tid)) {
showmessage('magics_info_nonexistence');
}
// 取得帖子的相关资料
$thread = getpostinfo($tid, 'tid', array('fid'));
// 验证帖子所在的版块是否有使用道具的权限
checkmagicperm($magicperm['forum'], $thread['fid']);
// 道具的执行代码
$db->query("UPDATE {$tablepre}threads SET closed='1', moderated='1' WHERE tid='$tid'");
$expiration = $timestamp + 86400;
// 使用道具代码
usemagic($magicid, $magic['num']);
// 记录道具使用日志
updatemagiclog($magicid, '2', '1', '0', $tid);
// 记录道具使用对象(这里指主题)日志
updatemagicthreadlog($tid, $magicid, $magic['identifier'], $expiration);
// 显示道具使用信息
showmessage('magics_operation_succeed', 'magic.php?action=user');
}
// 生成道具界面显示代码
function showmagic() {
global $tid, $lang;
magicshowtype($lang['option'], 'top');
magicshowsetting($lang['target_tid'], 'tid', $tid, 'text');
magicshowtype('', 'bottom');
}
?>
以上就是一个简单道具的编写格式,其中红色注释部分是一个道具必须有的,当然里面的一些代码可以根据道具类型的不同做一些改动,比如取得帖子资料的语句,如果是对用户的操作,可以改为取用户资料。相关这些操作我们已经内置了一些自定义函数,通过这些自定义函数你就可以轻松调用你想调用的资料了,下面我们就来说说这些自定义函数。3、 道具系统自带函数
所有的自定函数都在include/magic.func.php文件里面,下面我对这些函数一一做解释
本文标签:
很赞哦! ()
上一篇:Discuz开源代码结构小分析
相关教程
图文教程
LNMP安装discuz
php7的yum源安装1.安装epel源2.php3.nginx4.mariadb5.discuz
Discuz游客状态下不显示门户首页关键词和描述的解决方法
Discuz社区在后台设置好门户标题、关键字、描述,更新缓存,发现用户登录状态下,门户首页的关键字和描述正常显示;但在游客状态下不显示,在某工具中查看到的情况如下:
Discuz模板安装后显示异常的原因和解决方法
在处理Discuz模板显示异常时,最关键的是理解这些问题可能源自哪里。通常,问题可能出现在模板文件的编码、样式表的引用、JavaScript脚本的加载、或者是模板与Discuz版本的不兼容性上。
Discuz导航和静态化URL设置方法
规范化目录即为URL后面添加斜杠/之前用ISAPI_Rewrite在IIS中伪静态不规范化目录也不会出现链接错误(为了SEO一般是范化目录的规则为:
相关源码
-
(自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码 -
帝国cms7.5手游评测资讯礼包合集游戏专区下载网站模板本模板基于帝国CMS系统开发,为手游门户网站设计。支持PC端与移动端同步生成HTML静态页面,内置多端同步生成功能。模板架构针对手业特点优化,满足APP下载、游戏资讯、攻略等内容发布需求。查看源码 -
(响应式自适应)小学初中作文论文文章资讯博客pbootcms模板下载为中小学作文、教育类网站设计,特别适合展示学生作文、教学资源和写作指导等内容。采用响应式技术,确保在不同设备上都能获得良好的阅读体验。查看源码 -
(PC+WAP)绣花刺绣传统手工工艺pbootcms网站源码下载这款基于PbootCMS的网站模板为刺绣和传统手工艺行业设计,采用优雅的布局和精致的细节处理,能够呈现手工艺品的独特韵味和文化内涵。模板结构合理,功能完善,是手工艺从业者展示作品的理想选择。查看源码 -
(自适应)光伏测试仪器电站运维设备网站源码免费下载本模板为光伏检测设备与电站运维服务企业设计,采用PbootCMS内核开发,具备完整的设备展示、技术文档管理及客户服务功能模块。通过自适应结构与SEO优化框架,有效提升企业在移动端和搜索引擎中的专业形象。查看源码 -
(自适应)英文绿色精密模具零件加工五金零件pbootcms外贸网站模板本模板基于PbootCMS开发,为五金零件、精密模具加工等英文外贸企业设计。采用响应式布局,适配各类移动设备,是五金零件企业开展国际贸易的专业展示平台。查看源码
| 分享笔记 (共有 篇笔记) |
