当前位置: 代码迷 >> Web前端 >> [手把手教]discuzX2插件制作教程_最初学者级别的入门坎 【二】
  详细解决方案

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

热度:105   发布时间:2012-10-26 10:30:59.0
[手把手教]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、其他功能请参考其他插件