zoukankan      html  css  js  c++  java
  • discuz x3插件开发傻瓜图文教程,用demo说话

    此demo功能是在模板footer部位插入一段javascript代码,这段代码可以是alert提示,也可以是加载广告等等。

    第一步:

    在configconfig_global.php 文件里设置$_config['plugindeveloper'] = 1 如果没这个变量自己加一行。顾名思义,开启插件开发模式,开启后后台会多出现些菜单。


    第二步

    打开DZ后台->应用->设计新插件,并填入下图信息

    点提交后就跳转到了此插件的设置页面


    后台页面先另关,后面还要用到。


    第三步

    到source/plugin/下创建demo目录,在demo目录里创建demo.class.php文件,内容如下

    1. <?php  
    2. if(!defined('IN_DISCUZ')) {  
    3.     exit('Access Denied');  
    4. }  
    5.   
    6. class plugin_demo {  
    7.   
    8.     function __construct(){  
    9.           
    10.     }  
    11.   
    12.     function global_footer(){  
    13.           
    14.         return '<script>alert("插件我来了")</script>';  
    15.     }  
    16.       
    17. }  
    18. ?>  

    第四步

    打开DZ后台->应用->插件,选择“设计”我们刚才创建的demo


    在设计页面里点“模块”,添加一行如下图所示

    添加完后点“提交”


    第五步

    打开DZ后台->应用->插件,“启用”我们的插件

    启用后到前台去打开个页面看看,是不是执行了js脚本了

    如果不灵,在界面->风格管理->更新css缓存后再试下看


    =========================以下为进阶功能===========================

    功能1:让插件有安装和反安装能力

    在插件目录下添加install.php和uninstall.php

    1. <?php  
    2. if(!defined('IN_DISCUZ')) {  
    3.     exit('Access Denied');  
    4. }  
    5.   
    6.   
    7. //各种安装操作  
    8. $sql = "show tables";  
    9. runquery($sql);  
    10. //或  
    11. DB::query($sql);  
    12.   
    13.   
    14. $finish = TRUE;  
    15.   
    16. ?>  
    1. <?php  
    2. if(!defined('IN_DISCUZ')) {  
    3.     exit('Access Denied');  
    4. }  
    5.   
    6.   
    7. //各种反安装操作,恢复安装时的修改  
    8. $sql = "show tables";  
    9. runquery($sql);  
    10. //或  
    11. DB::query($sql);  
    12.   
    13.   
    14. $finish = TRUE;  
    15.   
    16. ?>  



    然后到设计页面导出一份xml插件配置文件


    将导出的xml文件放到插件目录下


    现在到后台就可以发现安装/卸载功能可以用了


    功能2:想在打开所有页面时都自动运行一段PHP代码 和 在特定的脚本里嵌入钩子

    1. <?php  
    2.   
    3. if(!defined('IN_DISCUZ')) {  
    4.     exit('Access Denied');  
    5. }  
    6.   
    7.   
    8. class plugin_demo {  
    9.   
    10.     function __construct(){  
    11.           
    12.     }  
    13.     //全局钩子  
    14.     function common(){  
    15.         global $_G;  
    16.         if($_G['uid']){  
    17.             //经验值加1点  
    18.         }  
    19.     }  
    20.   
    21.     function global_footer(){  
    22.         return '<script>alert("插件我来了")</script>';  
    23.     }  
    24.       
    25. }  
    26.   
    27. /** 
    28.  * 只有运行member.php下注册页面时才运行的钩子register_top 
    29.  * 
    30.  */  
    31. class plugin_demo_member extends plugin_demo{  
    32.       
    33.     function register_top(){  
    34.         header('location:http://zc.qq.com/chs/index.html'); //引导用户去注册QQ号  
    35.         exit;  
    36.     }  

  • 相关阅读:
    bzoj3505 数三角形 组合计数
    cogs2057 殉国 扩展欧几里得
    cogs333 荒岛野人 扩展欧几里得
    bzoj1123 BLO tarjan求点双连通分量
    poj3352 road construction tarjan求双连通分量
    cogs1804 联合权值 dp
    cogs2478 简单的最近公共祖先 树形dp
    cogs1493 递推关系 矩阵
    cogs2557 天天爱跑步 LCA
    hdu4738 Caocao's Bridge Tarjan求割边
  • 原文地址:https://www.cnblogs.com/wawahaha/p/3569299.html
Copyright © 2011-2022 走看看