加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

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

发布时间:2021-03-30 10:37:18 所属栏目:教程 来源:网络整理
导读:1、如何保证主题被回复时业务代码被执行。 2、获得主题,主题发布者,贴子等信息。 3、discuz发送email邮件。 ? discuz使用嵌入点(钩子)来处理代码的执行时机。 当用户开启插件开发者模式时,页面上会输出提供好的预先定义的嵌入点。 ? 例如:我们需要在用户

1、如何保证主题被回复时业务代码被执行。 2、获得主题,主题发布者,贴子等信息。 3、discuz发送email邮件。 ? discuz使用嵌入点(钩子)来处理代码的执行时机。

discuz回贴通知插件实现-页面嵌入点(钩子) - 怀素真 - 因上努力 果上随缘

当用户开启插件开发者模式时,页面上会输出提供好的预先定义的嵌入点。 ? 例如:我们需要在用户发贴时,告知用户是否开启了回贴通知。

discuz回贴通知插件实现-页面嵌入点(钩子) - 怀素真 - 因上努力 果上随缘

1、我们在插件后台添加页面嵌入

discuz回贴通知插件实现-页面嵌入点(钩子) - 怀素真 - 因上努力 果上随缘

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回贴通知插件实现-页面嵌入点(钩子) - 怀素真 - 因上努力 果上随缘

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

?

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!