马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1、如何保证主题被回复时业务代码被执行。
2、获得主题,主题发布者,贴子等信息。
3、discuz发送email邮件。
discuz使用嵌入点(钩子)来处理代码的执行时机。
当用户开启插件开发者模式时,页面上会输出提供好的预先定义的嵌入点。
例如:我们需要在用户发贴时,告知用户是否开启了回贴通知。
1、我们在插件后台添加页面嵌入
2、在插件目录下创建noticeme.class.php文件
该文件为类文件,定义该插件的嵌入类,该类中的方法就是嵌入点中的钩子方法。
嵌入类:1、全局嵌入类,2、模块嵌入类- <?php
- //判断是否被常规请求
- defined('IN_DISCUZ') or die('Access Denied');
- //全局嵌入类
- class plugin_插件标识符 {
- }
- //模块嵌入类
- class plugin_插件标识符_forum extends plugin_插件标识符 {
- }
复制代码 通过嵌入点,选择使用嵌入类。- <?php
- //判断是否被常规请求
- defined('IN_DISCUZ') or die('Access Denied');
- //全局嵌入类
- class plugin_post_notice {
- }
- //模块嵌入类
- class plugin_post_notice_forum extends plugin_post_notice {
- //嵌入贴子发表的钩子函数
- public function post_top() {
- //当前$_G成为全局$_G的一个引用
- global $_G;
- $mForumPostNotice = C::t('#post_notice#forum_post_notice');
- $isNotice = $mForumPostNotice->getNoticeState($_G['uid']);
- return $isNotice ? lang('plugin/post_notice', 'enable_notice') :
- lang('plugin/post_notice', 'disable_notice');
- }
- }
复制代码
除了页面上可以看到的嵌入点,discuz在所有模块执行前,都会执行嵌入函数(钩子)。
源址:https://www.cnblogs.com/jkko123/p/6294648.html
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|