详解Discuz插件开发之自定义页面嵌入点
我们能想到,那就意味着Discuz可能已经做到。没错!确实做到了,从其官方文档(传送门)我们可以知道是支持自定义嵌入点的,而且实现起来非常简单。但是据了解,部分人看文档的时候可能会觉得文档不好理解,有时候甚至搞半天才成功执行。文档原文为:
其中forumdisplay_threadsimglist_output这个方法就是为了自定义嵌入点而创造的,而其中的forumdisplay就是CURMODULE,threadsimglist就是USERDEFINE。在模版中的嵌入点为
做过Discuz二次开发的童鞋都知道,我们所需要做的就是增加templat和plugin目录,也就是通过自定义的插件和模版来改造属于我们自己个性化的Discuz。而插件开发中不可以不得不提的就是插件嵌入点(hook)了,类似的其他开源程序也有类似的概念,就比如说WordPress其实也有。
毫无疑问,作为一款成功的社区建站软件,Discuz在很多方面确实是花了功夫,尤其是是让数万开发者加入其中,可以这么说,现在Discuz的发展离不开这些第三方的开发者。Discuz应用中心之所以有这么多开发者,这得益于其本身的便捷性,让具备技术功底的开发者能够较快上手对其进行二次开发。
<li>
<!--{hook/forumdisplay_thread_mobile $key}-->
<a href=http://www.ym97.com/discuz/"forum.php?mod=viewthread&tid=$thread[tid]&extra=$extra">
<h6>{$thread[subject]}</h6>
.......
</a>
</li>
这里官方的默认嵌入点已经给了我们在这条记录上方的一个嵌入点,这个嵌入点可以让我们通过插件来操作这一部分内容。但我们有时候想在h6的下方嵌入内容,那怎么办呢?当然不是一定需要自定义嵌入点,各位民间开发者自然有自己的神奇的技巧,但我只想说如果有自定义嵌入点该多好啊。
CURMODULE指明了此函数在哪个模块执行,可通过常量 CURMODULE 得到当前页面的 CURMODULE 值。 USERDEFINE 可自定义,如果函数名以“_output”结尾则会在模板输出前调用,否则会在模块执行前调用。
相信到这里,大家结合官方文档应该知道如何自定义前端点了,以上实例是我开发的的一个插件的部分代码,所以肯定是可以实现的的。如果在实践中遇到问题,欢迎留言或者联系我交流。
$_config['plugindeveloper'] = 2;
//全局嵌入点类
class mobileplugin_muquan_m_seting {
//代码块
}
//脚本嵌入点类
class mobileplugin_muquan_m_seting_forum extends mobileplugin_muquan_m_seting{
//读取前面四张附件图片的方法,用于显示在主题列表中
public function forumdisplay_threadsimglist_output(){
//代码块
}
//其他方法
}
可以这么说,这些自带的嵌入点已经帮我们考虑了大多数页面嵌入的场景。然而,我们同时做过插件开发及模版开发的童鞋可能就有体会,有时候当我们的某个插件和自己的某个模版整合后,我们希望在除默认嵌入点之外的位置放上额外的嵌入点。比如我们手机模版forumdisplay.htm这个文件中,有其中如下代码:
<!--{hook/forumdisplay_threadsimglist $key}-->
我们知道Discuz默认情况下有许多自带的嵌入点,我们可以在config/config_global.php加入如下代码后在网站的前台查看各个自带嵌入点的位置:
function CURMODULE_USERDEFINE[_output]()
其实很简单,意思就是只要是[脚本名_自定义名称]即可,而CURMODULE常量就是代表当前的脚本名称,比如论坛的首页的CURMODULE值应该是forum,不同页面中我们可以输出下常量就知道是什么,后面就是下划线,接着就是我们自定义的其他名称(建议这个名称是有意义的,让他人和你自己一看这个函数名称就知道这个插件大概干嘛,当然这也是通常的命名规则)。
还是拿刚才最开始举的例子来说,就是那个说在手机页面的。这个页面就是手机版的主题列表页面,自定义的位置就是用来显示由插件读取出来的主题的前四张附件图片。对应的这个类的主体代码如下:
函数名并不限于以上列表,您可以自定义,只要符合以下规则,函数就会在适当的地方被调用。
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jz/discuz/2950.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Discuz x2.5 伪静态规则成功
时间:2020-12-29
-
discuz X2正式版forum首页的
时间:2020-12-27
-
Discuz伪静态 配置搜索引擎
时间:2020-12-26
-
Discuz登录后总是显示未登
时间:2020-12-23
-
怎么换云服务器? Discuz论坛
时间:2020-12-23
-
Discuz!7.0主题回收站功能详
时间:2020-12-23
-
discuz 修改创始人密码、管
时间:2020-12-23
-
discuz论坛用户通过邮件验
时间:2020-12-23
热门文章
-
去掉discuz列表页的最新公告_Discuz模板开发
时间:2020-12-13
-
修改discuz X3.2论坛标题80个字符的长度限制
时间:2020-12-14
-
discuz 修改创始人密码、管理员登录密码的
时间:2020-12-23
-
discuz主题内容页面的打印按钮代码
时间:2020-12-13
-
Discuz!7.0主题回收站功能详解
时间:2020-12-23
-
footer.htm底部文件$_G['setting']['icp']、{if $
时间:2020-12-13
-
discuz教程_discuz视频教程_discuz论坛模板制
时间:2020-12-14
-
$article['related']Discuz 门户文章内容页的相
时间:2020-12-13
-
discuz教程_discuz视频教程_discuz论坛模板制
时间:2020-12-14
-
Discuz教程:使用微信登陆出现“目前无法
时间:2020-12-15
