您现在的位置是:首页 > 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开源代码结构小分析
相关教程
图文教程
Discuz6.0.0安装步骤教程
Discuz具备跨平台特性,可以运行于Linux/FreeBSD/Unix及微软Windows2000/2003等各种操作系统环境下。我们已在软件中针对上述操作系统做了大量的测试和实地检验
Discuz论坛勋章系统的使用方法
在Discuz论坛中,勋章系统是一个非常有趣且有吸引力的功能,让我们来聊聊如何获取和展示这些勋章吧。 Discuz的勋章系统不仅增强了论坛的互动性,还能激励用户积极参与社区活动。
Discuz代码效果介绍
我如何使用Discuz代码“[tr=颜色]” 定义行背景“[td=宽度]” 定义列宽“[td=列跨度,行跨度,宽度]” 定义行列跨度
Discuz首页架构分析初步分析
以index.php首页为例,来分析程序的执行过程,脚本语言用包含切割方式来使程序模块化,java在这里就比较严谨,但是明显不如PHP来得简单。
相关源码
-
自适应黑色简繁双语轴承齿轮机械设备制造网站模板该模板为轴承齿轮机械制造企业提供一体化网站建设方案,着重解决行业特有的多语言展示、移动端适配和高效率内容管理需求,帮助企业精准展示产品特性与工艺流程查看源码 -
(PC+WAP)中英双语户外用品帐篷装备pbootcms网站模板下载这款基于PbootCMS开发的中英文双语模板专为户外装备行业设计,适配PC和移动设备。模板采用现代化设计风格,突出户外产品的功能性和实用性,帮助企业建立专业的国际化展示平台。查看源码 -
(自适应)中英双语配线器材扎带线卡网站pbootcms模板免费下载为线缆管理、电气配线领域打造的响应式网站模板,采用PbootCMS内核开发,可快速搭建企业级产品展示平台,数据实时同步管理。查看源码 -
(自适应)蓝色厨卫厨房水龙头阀门水槽设备源码下载基于PbootCMS内核开发,深度适配厨卫设备行业特性。通过精准的产品展示模块与水效标识专区设计,有效呈现五金件工艺细节。响应式布局确保从手机到平板都能展示金属质感与水流动态效果。查看源码 -
pbootcms模板(自适应手机版)红色响应式单位机构类网站自适应响应式单位机构网站模板 | PbootCMS内核开发为机构组织设计的响应式网站模板,采用PbootCMS内核开发,支持一键替换行业内容,满足多元化场景需求。查看源码 -
(自适应)帝国cms7.5模板自媒体文章新闻博客为帝国CMS7.5设计的响应式模板,采用H5技术构建现代化内容展示框架。通过智能断点检测技术实现手机、平板、PC三端适配查看源码
| 分享笔记 (共有 篇笔记) |