zoukankan      html  css  js  c++  java
  • discuz hook使用

    公共hook  global_footer

    模板显示形式: $_G['setting']['pluginhooks']['global_footer']

    追踪

    runhooks();

    ↓ 

    if($_G['setting']['plugins'][HOOKTYPE.'_common']) {
                hookscript('common', 'global', 'funcs', array(), 'common'); 
            }

    插件类中相对应的方法

    //plugin_qqconnect == plugin_qqconnect_common    
    class
    plugin_qqconnect extends plugin_qqconnect_base { var $allow = false; function plugin_qqconnect() { $this->init(); } function common() { $this->common_base(); } function global_footer() { if(!$this->allow) { return; } global $_G; if(!$_G['cookie']['client_token'] || !empty($_G['inshowmessage']) || empty($_G['cookie']['connect_js_name'])) { return; } if($_G['cookie']['connect_js_name'] == 'user_bind') { require_once libfile('function/connect'); $params = array('openid' => $_G['cookie']['connect_uin']); return connect_user_bind_js($params); }elseif($_G['cookie']['connect_js_name'] == 'feed_resend') { require_once libfile('function/connect'); return connect_feed_resend_js(); } } }

    模块动作 hook 

    模板显示形式:  $_G['setting']['pluginhooks']['logging_method']

    追踪

    runhooks();

    hookscript(CURMODULE, $_G['basescript']);// 如CURMODULE :logging   $_G['basescript']: member

    插件类中相对应的方法

    class plugin_qqconnect_member extends plugin_qqconnect {
    
        function logging_method() {// CURMODULE...
            if(!$this->allow) {
                return;
            }
            return tpl_login_bar();
        }
    }

    手动添加一个公共的hook

    在专题中添加一个hook

    <!--{hook/global_topic_show}-->

    在插件类common类(即没有basescript类)中添加方法 global_topic_show(begin with global_...)

    如:

    class plugin_rotate_award extends plugin_rotate_award_base {
    
        var $allow = false;
    
        function plugin_rotate_award() {
            $this->init();
        }
    
        function common() {
            $this->common_base();
        }
    
        //抽奖转盘
        function global_rotate_reward() {
            global $_G;
            if (!$this->allow) {
                return;
            }
            $extrastr = '';
            if (!$_G['pluginrotateaward']['loadedjquery']) {
                $extrastr = '<script type="text/javascript" src="source/plugin/rotate_award/template/jquery-1.7.2.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>';
            }
            return $extrastr. tpl_rotate_reward();
        }
    
    }
  • 相关阅读:
    OC学习13——Foundation框架中的集合
    OC学习12——字符串、日期、日历
    OC学习11——循环引用与@class
    OC学习10——内存管理
    OC学习9——反射机制
    OC学习8——异常处理
    OC学习7——类别、扩展和协议
    OC学习6——面相对象的三大特性
    OC学习5——类和对象
    Unity3D应用防外挂与防破解
  • 原文地址:https://www.cnblogs.com/bandbandme/p/3299101.html
Copyright © 2011-2022 走看看