资源描述:
《Discuz! 道具系统道具开发文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Discuz!道具系统采用独立的php文件的道具结构,每个道具拥有一个单独的php文件,做为这个道具运行文件,用户可以自行编写道具文件制作属于自己论坛的道具。下面具体介绍一下相关机制和开发方法1、 道具的组成每个道具由两部分组成,php文件和图片文件。php文件存放在论坛include/magic目录下,命名规范为magic_inc_道具名称.php文件。图片文件存放在images/magics目录下,命名规范为道具唯一标识(小写).gif注:其中道具名称由任意英文字母组成,道具唯一标识是在添加的时候确定的,此标识唯一,最长为3个大写英文字母道具图片不用多说就是gif文件,下面我具体说说ph
2、p文件编写规范2、 道具php文件编写详解我们以一个道具php文件(magic_inc_close.php)为例1.
3、gics_info_nonexistence');14. }15. 16. //取得帖子的相关资料17. $thread=getpostinfo($tid,'tid',array('fid'));18. //验证帖子所在的版块是否有使用道具的权限19. checkmagicperm($magicperm['forum'],$thread['fid']);1. 2. //道具的执行代码3. $db->query("UPDATE{$tablepre}threadsSETclosed='1',moderated='1'WHEREtid='$tid'");4.
4、$expiration=$times*****p+86400;5.6. //使用道具代码7. usemagic($magicid,$magic['num']);8. //记录道具使用日志9. updatemagiclog($magicid,'2','1','0',$tid);10. //记录道具使用对象(这里指主题)日志11. updatemagicthreadlog($tid,$magicid,$magic['identifier'],$expiration);12. //显示道具使用信息13. showmessage('magics_operation_su
5、cceed','magic.php?action=user');14.15.}16.17.//生成道具界面显示代码18.functionshowmagic(){19. global$tid,$lang;20. magicshowtype($lang['option'],'top');21. magicshowsetting($lang['target_tid'],'tid',$tid,'text');22. magicshowtype('','bottom');23.}24.25.?>以上就是一个简单道具的编写格式,其中红色注释部分是一个道具必须有的,当然里面的一些代码
6、可以根据道具类型的不同做一些改动,比如取得帖子资料的语句,如果是对用户的操作,可以改为取用户资料。相关这些操作我们已经内置了一些自定义函数,通过这些自定义函数你就可以轻松调用你想调用的资料了,下面我们就来说说这些自定义函数。3、 道具系统自带函数所有的自定函数都在include/magic.func.php文件里面,下面我对这些函数一一做解释//道具权限验证函数$perms有权限的groupid或者fid的序列,中间用t隔开$id要验证fid或者groupidcheckmagicperm($perms,$id)//获得道具函数$magicid道具id,$magicnum道具获得数量$wei
7、ght道具重量$totalweight用户拥有道具总重量$uid获得道具用户的uid$maxmagicsweight该用户所拥有的道具最大重量getmagic($magicid,$magicnum,$weight,$totalweight,$uid,$maxmagicsweight)//查询用户拥有道具最大重量函数$uid查询用户uid$magicarray道具数据数组getmagicweight