admin 发表于 2021-9-22 14:57:34

Discuz 验证扩展【X3.4】 二次开发 - 在线手册


验证扩展二次开发
本扩展由PHP+MYSQL语言开发,通过内嵌在新秀网络验证系统HOOK钩子,在正常API接口执行时自动调用,不需要扩展时无需设置。1、验证扩展是结合新秀网络验证系统进行的二次开发,不能独立使用;2、验证扩展开发遵循Discuz、新秀网络验证、PHP语言规范开发;3、验证扩展适用于新秀网络验证系统ver6.1版本以后;4、本功能与新秀网络验证系统,代码相互独立,但功能同时执行;5、验证扩展开发可使用Discuz内置函数、新秀网络验证内置函数、PHP函数等。
适用环境:php版本>5.6、Mysql版本>5.5以上、Discuz版本>3.0。
= Discuz资料库= Discuz插件开发文档= 开发交流=BUG反馈=QQ客服:3188639QQ交流群:281079920


二次开发常用函数
1、DB数据库操作函数    /*常用MYSQL数据库操作命令,增、减、改、查功能函数。*/
2、新秀网络验证数据库对照表    /*新秀网络验证系统内部,所有数据库表及说明*/
3、Discuz官方数据库对照表/*Discuz官方数据库表,包括discuz、UCente数据库字典。*/
4、Discuz基础框架、类、函数    /*包含Discuz官方基础框架、类、函数、方法使用说明。*/
5、新秀网络基础框架类、函数    /*包含新秀网络验证基础框架、类、函数、方法使用说明。*/
6、PHP在线手册    /*PHP官方原生态语法、类、库手册。*/


验证扩展开发视频教程
新手入门教程 链接:http://www.xinxiuvip.com/plugin.php?id=it618_video:product&pid=2


验证扩展开发开发示例
1、获取版块主题API更改返回值 点击访问


使 用 简 介
1、下载安装ver6.0以上新秀网络验证系统:点击下载2、安装完成后,在后台点击插件 —> “验证扩展”页面3、根据内置扩展开发说明,进行开发即可,完成后直接保存。

4、内置扩展文件目录说明
Discuz论坛系统内绝对路径:\source\plugin\xinxiu_network\extend\extend_network.phpxinxiu_network \\新秀网络验证系统插件主目录—extend \\内置扩展存放目录——extend_network.php \\验证扩展开发文件 (即:后台“验证扩展”页面内编辑的文件)
5、如何安装、开发、调试?
#1、下载新秀网络验证文件后,自带扩展文件,无需额外下载。需注意:【版本更新时请及时备份扩展开发代码,否则将会被覆盖。】#2、使用PHP代码编辑软件或后台验证扩展页面,对扩展文件 extend_network.php 进行开发,注意:UTF8及GBK编码问题。【开发者必须具备基础以上PHP语言水平】#3、如需新增方法类时,请不要与Discuz通用函数类、新秀验证框架通用函数类、PHP语言通用函数类冲突,否则无法使用,开发调试时请做好数据库备份。#4、根据扩展开发文档开发,不想使用某一个钩子功能时,代码进行注释即可,无需删除代码:       单行注释:在代码行前输入: //   双斜杠即可。        多行注释:在代码块上下输入: /* 注释代码行 */即可。


验证扩展源文件extend_network.php
<?php
    /*
   技术支持 QQ:3188639 QQ交流群:281079920
   官方网站 http://www.xinxiuvip.com/
   获取授权 http://www.xinxiuvip.com/plugin.php?id=xinxiu_license:accredit
   扩展开发手册 http://www.xinxiuvip.com/forum.php?mod=viewthread&tid=432
   严禁反编译、逆向等任何形式的侵权行为,违者将追究法律责任!
    */
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}

C::import('class/client','plugin/xinxiu_network',false);//引入系统核心类

class extend_network extends class_client{

    public $config;//可自定义变量,在构造方法中设置变量值。

    public function __construct()//构造方法
    {
      $this->config = xx_G::xinxiu_network();//获取新秀网络插件配置信息
      parent::__construct(false);//禁止删除或更改
    }

    //内置扩展代码区域
}


URLS参数加密传输代码实例
    public function hook_urls($function,$action,$urls){
      /**
         * 高级自定义,参数传输urls解密处理功能
         * 如果参数中带有&urls参数,就会调用此功能
         * @param string $function 接口模块
         * @param string $action 接口方法
         * @param string $urls 接口密串
         * 无需返回值,直接处理json返回
         */
         //将加密的密文串进行解密还原
      $str = base64_decode($urls);
         //将解密还原的密文串,重新按明文api接口进行组装
      $geturl = $_SERVER['SERVER_NAME'].'/plugin.php?id='.$function.'&action='.$action.$str;
      $outp = xx_curl::get_url($geturl);//利用内置的api接口get方法进行访问
      exit($outp);//退出,并返回数据
    }


传输、管理密钥自定义代码实例
    public function hook_apikey($key,$salt,$apikey){
      /**
         * 使用带传输密钥的接口时,触发对传输密钥进行自定义验证!
         * @param string $key 用户提交的传输密钥
         * @param string $salt 后台设置的salt值
         * @param string $apikey 后台设置的传输密钥
         * 接收三个参数,进行判断比对!
         */
      $md5str = md5($apikey.$salt);
      if ($key == $md5str){//判断是否相等
            return true;
                //正确不做任何处理,跳过系统下一步key逻辑验证。
      }else{
            return false;
                //错误,则进行系统下一步key逻辑验证。也可使用$this->json_output(400,'返回错误信息');直接结束。
         
      }
    }
    public function hook_adminkey($key,$salt,$adminkey){
      /**
         * 使用带管理密钥的接口时,触发对管理密钥进行自定义验证!
         * @param string $key 用户提交的管理密钥
         * @param string $salt 后台设置的salt值
         * @param string $adminkey 后台设置的管理密钥
         * 接收三个参数,进行判断比对!
         */
      $md5str = md5($adminkey.$salt);//base64或者RSA、RC4、sha1~
         if ($key == $md5str){//判断是否相等
            return true ;
                //正确不做任何处理,跳过系统下一步adminkey逻辑验证。
      }else{
            return false;
                //错误,则进行系统下一步adminkey逻辑验证。也可使用$this->json_output(400,'返回错误信息');直接结束。
      }
    }


所有接口方法、接口参数代码实例
举例:
用户登录接口:http://xxx.com/...&action=login_user&username=demo&password=demo
其中:login_user 是 接口方法username、password 是 接口参数!
    public function hook_action_login_user($uid,$array_get){//所有接口方法调用
      /**
         * 所有接口方法使用时,触发此操作!调用方式为:“hook_action_+接口方法”,例:hook_action_login_user
         * @param string $uid 用户uid
         * @param array$array_get 接收用户提交的所有参数及对应值
         * 接收以上两个参数,无需返回值,自动执行系统下一步操作。
         */
      var_dump($uid,$array_get);//输出返回数据
    }
    public function hook_param_username($params,$value){//所有参数调用
      /**
         * 所有接口方法使用时,触发此操作!调用方式为:“hook_param_+参数”,例:hook_param_username
         * @param string $params 接口传输参数username名字
         * @param string $value 接口传输参数username对应的值
         * 接收以上一个参数的值,并返回一个替换的值。return
         */
      //正常情况下用户名是 demo

      $params = base64_decode($value);//如果是BASE64加密,对值进行解密
      return $params;//返回解密结果,替换username参数的值
    }


接口方法执行结束代码实例
    public function hook_exit_login_user($output){//所有接口方法执行结束,记录日志到数据库之前调用
      /**
         * 所有接口方法使用时,触发此操作!调用方式为:“hook_exit_接口方法”,例:hook_exit_login_user
         * @param string $output 执行结果
         * 接收$output参数,无需返回值,如无退出操作,则进行下一步日志入库。
         */
      exit($output);//直接退出,则实现日志不入库。
    }


login_user登录接口代码实例
    public function hook_login_user_start(){//login_user登录接口开始
      /**
         * 用户通过login_user登录前触发
         * 截取提交参数信息$_GET;
         * 具体信息参数解释详见login_user接口文档
         * 无需返回值,不能结束
         */
      var_dump($_GET);
    }
    public function hook_login_user_end($arr){//login_user登录接口结束
      /**
         * 用户通过login_user登录结束后触发
         * 接收返回数据$arr;
         * $arr--用户uid 、$arr--用户名、$arr--用户密码、$arr--用户邮箱;
         * 其中$arr大于 0:返回用户 ID,表示用户登录成功、-1:用户不存在,或者被删除、-2:密码错、-3:安全提问错
         * 无需返回值,不能结束
         */
      var_dump($arr);
    }


login_register注册接口代码实例
    public function hook_login_register_start(){//login_register注册接口开始
      /**
         * 用户通过login_register登录前触发
         * 截取提交参数信息$_GET;
         * 具体信息参数解释详见login_register接口文档
         * 无需返回值,不能结束
         */
      var_dump($_GET);
    }
    public function hook_login_register_end($uid){//login_register注册接口结束
    /**
   * 用户通过login_register登录结束后触发
   * 接收返回数据$uid;
   * 当$uid大于 0:返回用户 ID,表示用户注册成功、-1:用户名不合法、-2:包含不允许注册的词语、
-3:用户名已经存在、-4:Email 格式有误、-5:Email 不允许注册、-6:该 Email 已经被注册
   * 无需返回值,不能结束
   */
      var_dump($uid);
    }


DISCUZ官方网页嵌入点代码实例
特别注意:
1、确定使用某一个嵌入点时,请在后台“验证扩展”页面,编辑嵌入点文件(hook.class.php),将使用的对应嵌入点代码前面注释清除即可。
2、在调试完成后,不需要的嵌入点,请及时注释;
3、注意:把不用的嵌入点必须全部注释掉,否则将影响论坛访问速度,切记!!!。

    public function hook_discuz_userapp_userapp_menu_bottom(){
      ##官方嵌入点,调用实例
      return 'userapp_menu_bottom'.'调用成功!';
    }

    //全局钩子
    //      所有模块执行前被调用

    function common(){
    xx_client::class_hook('hook_discuz_common',array(xx_G::member(),$_GET));
    }
    /**
   * 用于在帖子内容解析时嵌入自己的功能,函数中 $_G['discuzcodemessage'] 变量为待解析的字串
   * $value: array(
   * 'param' => caller 函数的参数数组,
   * 'caller' => caller 函数,此嵌入点被哪个函数调用
   * 'discuzcode' 被 discuzcode() 调用
   * 'messagecutstr' 被 messagecutstr() 调用
   */
    public function hook_discuz_discuzcode($value, $member, $get)
    {
    }

    /**
   * 用于在主题删除前后嵌入自己的功能,此函数将在 deletethread() 中被调用 2 次,
   * 函数中 $_G['deletethreadtids'] 变量为待处理的 TID 数组
   * $value: array(
   * 'param' => deletethread() 函数的参数数组,
   * 'step' => 删除的步骤
   * 'check' 检测步骤
   * 'delete' 删除步骤
   * )
   */
    public function hook_discuz_deletethread($value, $member, $get)
    {
    }

    /**
   * 用于在帖子删除前后嵌入自己的功能,此函数将在 deletepost() 中被调用 2 次,
   * 函数中 $_G['deletepostids'] 变量为待处理的 ID 数组
   * $value: array(
   * 'param' => deletepost() 函数的参数数组,
   * 'step' => 删除的步骤
   * 'check' 检测步骤
   * 'delete' 删除步骤
   * )
   */
    public function hook_discuz_deletepost($value, $member, $get)
    {
    }

    /**
   * 用于在头像调用时嵌入自己的功能,函数中 $_G['hookavatar'] 变量为新头像返回值
   * $value: array(
   * 'param' => avatar() 函数的参数数组
   * )
   */
    public function hook_discuz_avatar($value, $member, $get)
    {
    }

    /**
   * 贴内用户信息标记,返回值为标记显示内容    全局嵌入点类
   * $post: 当前帖子信息数组
   * $start: 用户填写的前置字符
   * $end: 用户填写的后置字符
   */
    public function hook_discuz_profile_node($post, $start, $end, $member, $get)
    {
    }
    public function hook_discuz_spacecp_credit_extra($member, $get)
    {
    }
    public function hook_discuz_faq_extra($member, $get)
    {
    }
    public function hook_discuz_global_footer($member, $get)
    {
    }
    public function hook_discuz_global_footerlink($member, $get)
    {
    }
    public function hook_discuz_global_cpnav_top($member, $get)
    {
    }
    public function hook_discuz_global_cpnav_extra1($member, $get)
    {
    }
    public function hook_discuz_global_cpnav_extra2($member, $get)
    {
    }
    public function hook_discuz_global_usernav_extra1($member, $get)
    {
    }
    public function hook_discuz_global_usernav_extra2($member, $get)
    {
    }
    public function hook_discuz_global_usernav_extra3($member, $get)
    {
    }
    public function hook_discuz_global_usernav_extra4($member, $get)
    {
    }
    public function hook_discuz_global_nav_extra($member, $get)
    {
    }
    public function hook_discuz_global_header($member, $get)
    {
    }
    public function hook_discuz_global_userabout_top($member, $get)
    {
    }
    public function hook_discuz_userapp_menu_top($member, $get)
    {
    }
    public function hook_discuz_userapp_menu_middle($member, $get)
    {
    }
    public function hook_discuz_global_userabout_bottom($value, $member, $get)
    {
    }
    public function hook_discuz_forum_post_top($member, $get)
    {
    }
    public function hook_discuz_forum_post_infloat_top($member, $get)
    {
    }
    public function hook_discuz_forum_index_status_extra($member, $get)
    {
    }
    public function hook_discuz_forum_collection_index_top($member, $get)
    {
    }
    public function hook_discuz_forum_collection_index_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_collection_nav_extra($member, $get)
    {
    }
    public function hook_discuz_forum_collection_viewoptions($member, $get)
    {
    }
    public function hook_discuz_forum_collection_view_top($member, $get)
    {
    }
    public function hook_discuz_forum_collection_threadlistbottom($member, $get)
    {
    }
    public function hook_discuz_forum_collection_relatedop($member, $get)
    {
    }
    public function hook_discuz_forum_collection_view_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_collection_side_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_index_nav_extra($member, $get)
    {
    }
    public function hook_discuz_forum_index_top($member, $get)
    {
    }
    public function hook_discuz_forum_index_catlist_top($member, $get)
    {
    }
    public function hook_discuz_forum_index_favforum_extra($value, $member, $get)
    {
    }
    public function hook_discuz_forum_index_catlist($value, $member, $get)
    {
    }
    public function hook_discuz_forum_index_forum_extra($value, $member, $get)
    {
    }
    public function hook_discuz_forum_index_middle($member, $get)
    {
    }
    public function hook_discuz_forum_index_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_index_side_top($member, $get)
    {
    }
    public function hook_discuz_forum_index_side_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_attach_extra($value, $member, $get)
    {
    }
    public function hook_discuz_forum_post_image_btn_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_image_tab_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_attach_btn_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_attach_tab_extra($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_leftside_top($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_leftside_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_forumaction($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_modlink($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_top($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_middle($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_postbutton_top($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_threadtype_inner($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_filter_extra($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_threadtype_extra($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_side_top($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_side_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_fastpost_content($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_fastpost_func_extra($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_fastpost_ctrl_extra($member, $get)
    {
    }
    public function hook_discuz_forum_global_login_text($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_fastpost_btn_extrat($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_fastpost_sync_method($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_thread($value, $member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_thread_subject($value, $member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_author($value, $member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_threadlist_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_postbutton_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_subforum_extra($value, $member, $get)
    {
    }
    public function hook_discuz_forum_guide_nav_extra($member, $get)
    {
    }
    public function hook_discuz_forum_guide_top($member, $get)
    {
    }
    public function hook_discuz_forum_guide_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_index_navbar($member, $get)
    {
    }
    public function hook_discuz_forum_post_middle($member, $get)
    {
    }
    public function hook_discuz_forum_post_btn_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_sync_method($member, $get)
    {
    }
    public function hook_discuz_forum_post_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_post_activity_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_debate_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_editorctrl_right($member, $get)
    {
    }
    public function hook_discuz_forum_post_editorctrl_left($member, $get)
    {
    }
    public function hook_discuz_forum_post_editorctrl_top($member, $get)
    {
    }
    public function hook_discuz_forum_post_editorctrl_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_post_side_top($member, $get)
    {
    }
    public function hook_discuz_forum_post_side_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_post_infloat_middle($member, $get)
    {
    }
    public function hook_discuz_forum_post_infloat_btn_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_poll_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_reward_extra($member, $get)
    {
    }
    public function hook_discuz_forum_post_trade_extra($member, $get)
    {
    }
    public function hook_discuz_forum_forumdisplay_modlayer($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_tradeinfo_extra($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_top($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_postbutton_top($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_modoption($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_beginline($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_title_extra($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_title_row($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_middle($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_activity_extra1($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_activity_extra2($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_fastpost_side($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_fastpost_content($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_fastpost_func_extra($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_fastpost_ctrl_extra($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_fastpost_btn_extra($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_postheader($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_endline($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_profileside($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_imicons($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_magic_user($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_avatar($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_sidetop($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_sidebottom($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_modaction($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_share_method($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_useraction($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_postsightmlafter($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_postfooter($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_postaction($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_magic_thread($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_magic_post($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_posttop($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_postbottom($value, $member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_poll_top($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_poll_bottom($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_useraction_prefix($member, $get)
    {
    }
    public function hook_discuz_forum_viewthread_side_bottom($member, $get)
    {
    }
    public function hook_discuz_group_group_navlink($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_navlink($member, $get)
    {
    }
    public function hook_discuz_group_group_top($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_top($member, $get)
    {
    }
    public function hook_discuz_group_group_nav_extra($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_nav_extra($member, $get)
    {
    }
    public function hook_discuz_group_group_bottom($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_bottom($member, $get)
    {
    }
    public function hook_discuz_group_group_side_bottom($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_side_bottom($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_postbutton_top($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_filter_extra($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_thread($value, $member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_postbutton_bottom($member, $get)
    {
    }
    public function hook_discuz_group_my_header($member, $get)
    {
    }
    public function hook_discuz_group_my_bottom($member, $get)
    {
    }
    public function hook_discuz_group_my_side_top($member, $get)
    {
    }
    public function hook_discuz_group_my_side_bottom($member, $get)
    {
    }
    public function hook_discuz_group_group_index_side($member, $get)
    {
    }
    public function hook_discuz_group_group_side_top($member, $get)
    {
    }
    public function hook_discuz_group_forumdisplay_side_top($member, $get)
    {
    }
    public function hook_discuz_group_index_header($member, $get)
    {
    }
    public function hook_discuz_group_index_top($member, $get)
    {
    }
    public function hook_discuz_group_index_bottom($member, $get)
    {
    }
    public function hook_discuz_group_index_side_top($member, $get)
    {
    }
    public function hook_discuz_group_index_side_bottom($member, $get)
    {
    }
    public function hook_discuz_home_follow_nav_extra($member, $get)
    {
    }
    public function hook_discuz_home_follow_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_avatar_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_avatar_bottom($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_blog_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_blog_middle($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_blog_bottom($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_credit_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_credit_extra($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_credit_bottom($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_privacy_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_privacy_base_extra($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_privacy_feed_extra($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_privacy_bottom($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_profile_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_profile_extra($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_profile_bottom($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_promotion_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_promotion_bottom($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_usergroup_top($member, $get)
    {
    }
    public function hook_discuz_home_spacecp_usergroup_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_album_pic_top($member, $get)
    {
    }
    public function hook_discuz_home_space_album_pic_op_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_album_pic_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_album_pic_face_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_album_op_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_blog_list_status($value, $member, $get)
    {
    }
    public function hook_discuz_home_space_blog_title($member, $get)
    {
    }
    public function hook_discuz_home_space_blog_share_method($member, $get)
    {
    }
    public function hook_discuz_home_space_blog_op_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_blog_face_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_card_top($member, $get)
    {
    }
    public function hook_discuz_home_space_card_baseinfo_middle($member, $get)
    {
    }
    public function hook_discuz_home_space_card_baseinfo_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_card_option($member, $get)
    {
    }
    public function hook_discuz_home_space_card_magic_user($member, $get)
    {
    }
    public function hook_discuz_home_space_card_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_blog_comment_op($value, $member, $get)
    {
    }
    public function hook_discuz_home_space_blog_comment_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_doing_top($member, $get)
    {
    }
    public function hook_discuz_home_space_doing_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_favorite_nav_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_interaction_extra($member, $get)
    {
    }
    public function hook_discuz_home_global_usernav_extra1($member, $get)
    {
    }
    public function hook_discuz_home_global_usernav_extra2($member, $get)
    {
    }
    public function hook_discuz_home_space_home_side_top($member, $get)
    {
    }
    public function hook_discuz_home_space_home_side_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_home_top($member, $get)
    {
    }
    public function hook_discuz_home_space_home_navlink($member, $get)
    {
    }
    public function hook_discuz_home_space_home_bottom($member, $get)
    {
    }
    public function hook_discuz_home_magic_nav_extra($member, $get)
    {
    }
    public function hook_discuz_home_medal_nav_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_menu_extra($member, $get)
    {
    }
    public function hook_discuz_home_space_profile_baseinfo_top($member, $get)
    {
    }
    public function hook_discuz_home_follow_profile_baseinfo_top($member, $get)
    {
    }
    public function hook_discuz_home_space_profile_baseinfo_middle($member, $get)
    {
    }
    public function hook_discuz_home_follow_profile_baseinfo_middle($member, $get)
    {
    }
    public function hook_discuz_home_space_profile_baseinfo_bottom($member, $get)
    {
    }
    public function hook_discuz_home_follow_profile_baseinfo_bottom($member, $get)
    {
    }
    public function hook_discuz_home_space_profile_extrainfo($member, $get)
    {
    }
    public function hook_discuz_home_follow_profile_extrainfo($member, $get)
    {
    }
    public function hook_discuz_home_space_home_doing_sync_method($member, $get)
    {
    }
    public function hook_discuz_home_space_wall_face_extra($member, $get)
    {
    }
    public function hook_discuz_member_logging_side_top($member, $get)
    {
    }
    public function hook_discuz_member_logging_top($member, $get)
    {
    }
    public function hook_discuz_member_logging_input($member, $get)
    {
    }
    public function hook_discuz_member_logging_method($member, $get)
    {
    }
    public function hook_discuz_member_global_login_extra($member, $get)
    {
    }
    public function hook_discuz_member_register_side_top($member, $get)
    {
    }
    public function hook_discuz_member_register_top($member, $get)
    {
    }
    public function hook_discuz_member_register_input($member, $get)
    {
    }
    public function hook_discuz_member_register_logging_method($member, $get)
    {
    }
    public function hook_discuz_member_register_bottom($member, $get)
    {
    }
    public function hook_discuz_portal_portalcp_top($member, $get)
    {
    }
    public function hook_discuz_portal_portalcp_extend($member, $get)
    {
    }
    public function hook_discuz_portal_portalcp_middle($member, $get)
    {
    }
    public function hook_discuz_portal_portalcp_bottom($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_top($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_subtitle($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_summary($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_content($member, $get)
    {
    }
    public function hook_discuz_portal_view_share_method($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_op_extra($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_side_top($member, $get)
    {
    }
    public function hook_discuz_portal_view_article_side_bottom($member, $get)
    {
    }
    public function hook_discuz_search_album_top($member, $get)
    {
    }
    public function hook_discuz_search_album_bottom($member, $get)
    {
    }
    public function hook_discuz_search_blog_top($member, $get)
    {
    }
    public function hook_discuz_search_blog_bottom($member, $get)
    {
    }
    public function hook_discuz_search_global_footer($member, $get)
    {
    }
    public function hook_discuz_search_global_footerlink($member, $get)
    {
    }
    public function hook_discuz_search_forum_top($member, $get)
    {
    }
    public function hook_discuz_search_forum_bottom($member, $get)
    {
    }
    public function hook_discuz_search_group_top($member, $get)
    {
    }
    public function hook_discuz_search_group_bottom($member, $get)
    {
    }
    public function hook_discuz_search_global_usernav_extra1($member, $get)
    {
    }
    public function hook_discuz_search_global_usernav_extra2($member, $get)
    {
    }
    public function hook_discuz_search_portal_top($member, $get)
    {
    }
    public function hook_discuz_search_portal_bottom($member, $get)
    {
    }
    public function hook_discuz_userapp_userapp_app_top($member, $get)
    {
    }
    public function hook_discuz_userapp_userapp_app_bottom($member, $get)
    {
    }
    public function hook_discuz_userapp_userapp_index_top($member, $get)
    {
    }
    public function hook_discuz_userapp_userapp_index_bottom($member, $get)
    {
    }
    public function hook_discuz_userapp_userapp_menu_top($member, $get)
    {
    }
    public function hook_discuz_userapp_userapp_menu_middle($member, $get)
    {
    }
页: [1]
查看完整版本: Discuz 验证扩展【X3.4】 二次开发 - 在线手册