zoukankan      html  css  js  c++  java
  • 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在所有模块执行前,都会执行嵌入函数(钩子)。
     
     
  • 相关阅读:
    仿EXT风格,仿EXT功能,Jquery页签插件,EM.Tabs 1.1,新增事件处理机制,可拓展
    插入数据的同时,返回ID值
    xml格式的string转换为dataset
    ASP.NET缓存:方法分析和实践示例
    showModalDialog()方法使用详解 (转)
    160809325贺彦
    vncdotool A command line VNC client
    使Windows服务以控制台方式调试
    DIV CSS阴影
    允许与桌面交互[.net Windows服务]
  • 原文地址:https://www.cnblogs.com/jkko123/p/6294648.html
Copyright © 2011-2022 走看看