discuz特殊主题插件开发步骤和犯的愚蠢错误

  discuz作为国内流行的论坛系统,可谓造福了不少趣味相投的网友们。它让天南地北、国内外有着共同兴趣爱好的人们聚集在一起,分享彼此的喜怒哀乐、心得体会。然而作为discuz的使用者之一,还是个码农,然而对discuz的系统架构和二次开发了解得并不多。前段时间有个朋友找到我说能不能帮忙开发一个特殊主题插件,虽然自己没开发过discuz的插件,但就discuz的流行程度而言,相信开发资料和开发群体应该不少,于是就答应了。

  开发之前网上搜索了一通资料,找到discuz官方二次开发文档看了看,然后又找来一些其它插件参考了下,于是就开干了。由于开发的是一个特殊主题的插件,因此参考官方的开发文档http://faq.comsenz.com/library/plug/plugin/plugin_specialthread.htm,并利用discuz官方提供的开发工具生成了个简单的插件(插件开发工具可在此下载:http://addon.discuz.com/resource/develop.zip)。

  我们看看怎么开发一个特殊主题的插件吧,要是想直接看我犯了哪样的愚蠢错误,你可以直接拉到文章的末尾。

  一、插件开发步骤:

  1、下载插件开发工具并创建插件:

  插件开发工具下载并解压至web根目录。然后通过http://你的域名/develop.php访问插件开发工具,我的是http://127.0.0.1:8080/develop.php。点击“创建新插件”,然后一步步根据提示填写即可。

  此处,你还可以检测插件前缀是否被占用,方便后续发布到插件市场。编辑脚本这一步填写自身的特殊脚本名称即可。

  创建完成以后可以通过设计脚本,导出插件包。

  这样就已经将一个插件的原型都生成了,将它拷贝到/source/plugin/目录并解压。

  2、开启开发者模式并设置特殊主题

  开启开发者模式,在config/config_global.php 后边填一行$_config[‘plugindeveloper’] = 1;值为1表示开启开发者模式,为2则表示同时开启潜入点提示。填写完成之后刷新后台管理界面,依次找到应用–>插件–>找到刚刚创建的插件并点击设计,即可编辑刚刚创建的插件脚本了。这里仍然需要设置一下特殊主题。

  程序模块名称为前面插件创建时填写的名称。我们可以看看gfpaimai.class.php的具体代码

  这样可以清晰地看到哪个函数是干什么用的,我们只需要将业务逻辑处理好即可。然而现实总是残酷的,对于discuz不熟悉的同学这将是一个巨大的坑。至此特殊主题的骨架可以说已经搭建好了,那么怎样才可以发帖呢?这个地方找了很久才知道是什么原因,最后发现是权限的问题。

  3、设置板块权限

  论坛–>板块管理,找到对应的板块–>编辑–>帖子选项、权限相关

  4、设置用户组和管理组权限

  用户–>用户组(管理组)–>选择需要编辑的用户组–>批量编辑–>勾选可以发布特殊主题的用户组

  至此,没什么意外的话,就可以发帖了;相信大部分开发者到这一步也可以发帖了。可是偷懒的我,必然要为这个偷懒付出代价的。

  二、我范的愚蠢错误?还是discuz本身的bug呢?

  上诉步骤完成以后,为了快速地看看效果。直接从别的插件里面复制了一个模板newthread.htm到template目录下,然后修改了gfpaimai.class.php的newthread函数,让其加载自定义模板。

public function newthread($fid) { //TODO – Insert your code here include template(“gfpaimai:newthread”); //return ‘TODO:newthread’; return $return; }

  修改验证函数

public function newthread_submit($fid) { //TODO – Insert your code here $message=getgpc(‘message’); //对内容判断 if( empty($message) || strlen($message)


比丘资源网 » discuz特殊主题插件开发步骤和犯的愚蠢错误

发表回复

提供最优质的资源集合

立即查看 了解详情