·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
返回列表 发布新帖

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

61 0
发表于 2 小时前 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、如何保证主题被回复时业务代码被执行。
2、获得主题,主题发布者,贴子等信息。
3、discuz发送email邮件。

discuz使用嵌入点(钩子)来处理代码的执行时机。

当用户开启插件开发者模式时,页面上会输出提供好的预先定义的嵌入点。

例如:我们需要在用户发贴时,告知用户是否开启了回贴通知。

1、我们在插件后台添加页面嵌入
2、在插件目录下创建noticeme.class.php文件
该文件为类文件,定义该插件的嵌入类,该类中的方法就是嵌入点中的钩子方法。
嵌入类:1、全局嵌入类,2、模块嵌入类
  1. <?php
  2. //判断是否被常规请求
  3. defined('IN_DISCUZ') or die('Access Denied');
  4. //全局嵌入类
  5. class plugin_插件标识符 {
  6. }
  7. //模块嵌入类
  8. class plugin_插件标识符_forum extends plugin_插件标识符 {
  9. }
复制代码
通过嵌入点,选择使用嵌入类。
  1. <?php
  2. //判断是否被常规请求
  3. defined('IN_DISCUZ') or die('Access Denied');
  4. //全局嵌入类
  5. class plugin_post_notice {
  6. }
  7. //模块嵌入类
  8. class plugin_post_notice_forum extends plugin_post_notice {
  9.     //嵌入贴子发表的钩子函数
  10.     public function post_top() {
  11.         //当前$_G成为全局$_G的一个引用
  12.         global $_G;
  13.         $mForumPostNotice = C::t('#post_notice#forum_post_notice');
  14.         $isNotice = $mForumPostNotice->getNoticeState($_G['uid']);
  15.         return $isNotice ? lang('plugin/post_notice', 'enable_notice') :
  16.         lang('plugin/post_notice', 'disable_notice');
  17.     }
  18. }
复制代码

除了页面上可以看到的嵌入点,discuz在所有模块执行前,都会执行嵌入函数(钩子)。

源址:https://www.cnblogs.com/jkko123/p/6294648.html
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.137.186.26,GMT+8, 2025-1-11 20:06 , Processed in 0.327711 second(s), 76 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表