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在所有模块执行前,都会执行嵌入函数(钩子)。
© 版权声明
1. 资源都是经过站长或作者收集测试修改后发布分享。如若转载请在文内以超链形式注明狐狸库文章出处,谢谢合作!
2. 本站除原创内容,其余所有内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性承担任何责任。如有版权内容,请通知我们或作者删除,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,或已将原有信息丢失,所以敬请原作者谅解!
3. 本站用户所发布的一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责,若您对本站所载资源作品版权归属存有异议,请留言附说明联系邮箱,我们将在第一时间予以处理 ,同时向您表示歉意!为尊重作者版权,请购买原版作品,支持您喜欢的作者,谢谢!
4. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客如有发现请立即向站长举报;本站资源文件大多存储在云盘,如发现链接或图片失效,请联系作者或站长及时更新。
THE END
请登录后查看评论内容