最近访客
百度未收录

discuz回贴通知插件实现-页面嵌入点(钩子)

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在所有模块执行前,都会执行嵌入函数(钩子)。

温馨提示:本文最后更新于2022/10/20 00:53:23。若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容