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.     }  

  • 相关阅读:
    kettle 9.1 windows 安装
    C# post 方式调用 webservice
    crm 2016 隐藏 crmTopBar 新建活动 新建记录 导入数据
    SqlServer修改数据库文件存放位置
    always on 下移动数据库文件 AlwaysON move database without breaking HADR
    kettle 启动问题 spoon 处理方法
    kettle Spoon.bat 启动 java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
    SQL 查询学生缺考情况
    SQL学习笔记:选取第N条记录
    观察者模式在MVP中的应用
  • 原文地址:https://www.cnblogs.com/wawahaha/p/3569299.html
Copyright © 2011-2022 走看看