[手把手教]discuzX2插件制作教程_最初学者级别的入门坎 【二】

[手把手教]discuzX2插件制作教程__最菜鸟级别的入门坎 【二】

本帖最后由 绝世十二少 于 2012-3-9 09:05 编辑

       六、实例讲解之页面嵌入
         1、插件页面嵌入-普通版
            <ignore_js_op style="WORD-WRAP: break-word"><img style="WORD-WRAP: break-word; CURSOR: pointer" id="aimg_1148531" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" title="1.jpg" onclick="zoom(this, this.getAttribute('zoomfile'), 0, 0, '0')" alt="1.jpg" src="http://att.discuz.net/data/attachment/forum/201203/09/090540irsi3mhm13737iav.jpg.thumb.jpg" inpost="1" file="http://att.discuz.net/data/attachment/forum/201203/09/090540irsi3mhm13737iav.jpg.thumb.jpg" zoomfile="http://att.discuz.net/data/attachment/forum/201203/09/090540irsi3mhm13737iav.jpg" aid="1148531" initialized="true"><span class="Apple-converted-space"> </span></ignore_js_op>

         2、在 ./source/plugin/send_jinbi/ 目录下建立 send_jinbi.class.php 文件,目的为了页面嵌入

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('Access Denied');
  4. }

  5. class plugin_send_jinbi { 
  6.        function global_header() {
  7.             global $_G;
  8.             $sendConfig = array();
  9.             $sendConfig = $_G['cache']['plugin']['send_jinbi'];  //缓存插件变量值
  10.             if( intval($sendConfig['status']) == 1 ) {  //是否启动插件
  11.                  if( isset($_POST['regsubmit']) ) { //会员注册后
  12.                       $uid = intval($_G['member']['uid']);
  13.                       if( $uid ){
  14.                          $jinbi_num = intval($sendConfig['jinbi_num']);  //送金币数量
  15.                          updatemembercount($uid,array("extcredits2" => $jinbi_num)); //更新金币数 (这个是function_core.php的现成函数)
  16.                         //这里可以进行任何数据库的操作
  17.                       }
  18.                  }
  19.              }
  20.       }
  21. }
  22. ?>
复制代码

         3、基本上已经完成一大半了,你只要开启插件,然后更新缓存(可靠点),然后到前台去注册一个会员,则会自动送上100金币。
            <ignore_js_op style="WORD-WRAP: break-word"><img style="WORD-WRAP: break-word; CURSOR: pointer" id="aimg_1148532" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" title="2.jpg" onclick="zoom(this, this.getAttribute('zoomfile'), 0, 0, '0')" alt="2.jpg" src="http://att.discuz.net/data/attachment/forum/201203/09/0905437a1e224x7gkan21v.jpg.thumb.jpg" inpost="1" file="http://att.discuz.net/data/attachment/forum/201203/09/0905437a1e224x7gkan21v.jpg.thumb.jpg" zoomfile="http://att.discuz.net/data/attachment/forum/201203/09/0905437a1e224x7gkan21v.jpg" aid="1148532" initialized="true"><span class="Apple-converted-space"> </span></ignore_js_op>

       七、实例讲解之安装、卸载及升级
            1、 安装(install.php)、卸载(uninstall.php)程序中可随意设计页面的跳转,只要在插件安装、卸载结束时候输出添加 $finish = TRUE; 即可,脚本中可用 runquery() 函数执行 SQL 语句。

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.        exit('Access Denied');
  4. }
  5. /*任意执行代码:开始*/
  6. //..........
  7. //..........
  8. /*任意执行代码:结束*/
  9. $finish = TRUE;
  10. ?>
复制代码

2、升级(upgrade.php)程序中可通过 $fromversion 和 $toversion 变量判断升级的具体版本号,并随意设计页面的跳转,只要在插件升级结束时候输出添加 $finish = TRUE; 即可,脚本中可用 runquery() 函数执行 SQL 语句。

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('Access Denied');
  4. }
  5. /*任意执行代码:开始*/
  6. //..........
  7. //..........
  8. /*任意执行代码:结束*/
  9. $finish = TRUE;
  10. ?>
复制代码

3、其他功能请参考其他插件