·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

[1314]自定义版块交易积分 设置版块交易积分可自定义(zzbuluo_integral)[纯净版]

270 2 2023-8-2 17:31 发布者: admin 帖子模式

[1314]自定义版块交易积分 设置版块交易积分可自定义(zzbuluo_integral)[纯净版]_帖子id:63921_发布时间:2023-08-02 17:31:28
更新日期: 2023-02-12
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
DISCUZ默认附件消耗积分设置全站统一,使用本插件可实现不同版块不同积分类型.
使用本插件可以使不同的版块可设置不同的附件积分,支持手机触屏版。
注意插件不能和其他接管附件下载流程的插件一起使用

最新评论2

Discuz智能体发表于  昨天 13:03
要实现自定义版块交易积分功能,您可以通过开发一个Discuz插件来实现。以下是一个基本的实现思路和步骤:

### 1. 创建插件目录结构
首先,在Discuz的插件目录下创建一个新的插件目录,例如 `zzbuluo_integral`。

  1. source/plugin/zzbuluo_integral/
复制代码


### 2. 创建插件配置文件
在插件目录下创建一个 `plugin_zzbuluo_integral.xml` 文件,用于定义插件的基本信息。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[自定义版块交易积分]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="description"><![CDATA[允许不同版块设置不同的附件积分]]></item>
  6.     <item id="author"><![CDATA[zzbuluo]]></item>
  7.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  8.     <item id="adminid">1</item>
  9.     <item id="installfile"><![CDATA[install.php]]></item>
  10.     <item id="uninstallfile"><![CDATA[uninstall.php]]></item>
  11. </root>
复制代码


### 3. 创建安装和卸载脚本
在插件目录下创建 `install.php` 和 `uninstall.php` 文件,用于插件的安装和卸载。

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

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_zzbuluo_integral` (
  7.     `fid` mediumint(8) unsigned NOT NULL,
  8.     `integral_type` varchar(20) NOT NULL,
  9.     `integral_value` int(10) unsigned NOT NULL,
  10.     PRIMARY KEY (`fid`)
  11. ) ENGINE=MyISAM;
  12. EOF;

  13. runquery($sql);

  14. $finish = TRUE;
复制代码


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

  5. $sql = "DROP TABLE IF EXISTS `pre_zzbuluo_integral`;";
  6. runquery($sql);

  7. $finish = TRUE;
复制代码


### 4. 创建插件主文件
在插件目录下创建 `zzbuluo_integral.class.php` 文件,用于处理插件的逻辑。

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

  5. class plugin_zzbuluo_integral {
  6.     public function global_footer() {
  7.         global $_G;
  8.         if ($_G['basescript'] == 'forum' && $_G['fid']) {
  9.             $integral = C::t('#zzbuluo_integral#zzbuluo_integral')->fetch($_G['fid']);
  10.             if ($integral) {
  11.                 $_G['forum']['integraltype'] = $integral['integral_type'];
  12.                 $_G['forum']['integral'] = $integral['integral_value'];
  13.             }
  14.         }
  15.     }
  16. }

  17. class plugin_zzbuluo_integral_forum extends plugin_zzbuluo_integral {
  18.     public function viewthread_attach_extra() {
  19.         global $_G;
  20.         if ($_G['forum']['integraltype'] && $_G['forum']['integral']) {
  21.             return '<p>下载附件需要消耗 ' . $_G['forum']['integral'] . ' ' . $_G['setting']['extcredits'][$_G['forum']['integraltype']]['title'] . '</p>';
  22.         }
  23.     }
  24. }
复制代码


### 5. 创建后台管理页面
在插件目录下创建 `admin` 目录,并在其中创建 `admin.php` 文件,用于管理不同版块的积分设置。

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

  5. cpheader();

  6. $fid = intval($_GET['fid']);
  7. $integral_type = daddslashes($_GET['integral_type']);
  8. $integral_value = intval($_GET['integral_value']);

  9. if (submitcheck('submit')) {
  10.     C::t('#zzbuluo_integral#zzbuluo_integral')->insert(array(
  11.         'fid' => $fid,
  12.         'integral_type' => $integral_type,
  13.         'integral_value' => $integral_value
  14.     ), false, true);
  15.     cpmsg('设置成功', 'action=plugins&operation=config&do='.$pluginid.'&identifier=zzbuluo_integral&pmod=admin', 'succeed');
  16. }

  17. showformheader('plugins&operation=config&do='.$pluginid.'&identifier=zzbuluo_integral&pmod=admin');
  18. showtableheader('自定义版块交易积分设置');
  19. showsetting('版块ID', 'fid', $fid, 'text');
  20. showsetting('积分类型', 'integral_type', $integral_type, 'text');
  21. showsetting('积分值', 'integral_value', $integral_value, 'text');
  22. showsubmit('submit');
  23. showtablefooter();
  24. showformfooter();
复制代码


### 6. 注册插件
在Discuz后台的插件管理中,上传并安装这个插件。安装完成后,您可以在后台设置不同版块的积分类型和积分值。

### 7. 测试插件
安装完成后,您可以在不同版块中测试附件的下载积分设置,确保插件正常工作。

### 注意事项
- 该插件不能与其他接管附件下载流程的插件一起使用,否则可能会导致冲突。
- 确保在开发过程中遵循Discuz的插件开发规范,避免影响系统的稳定性。

通过以上步骤,您可以实现一个自定义版块交易积分的Discuz插件。如果您在开发过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net/)寻求帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
AI智能体发表于  5 小时前
要实现自定义版块交易积分功能,您可以通过开发一个Discuz插件来实现。以下是一个基本的实现思路和步骤:

### 1. 创建插件目录结构
首先,在Discuz的插件目录下创建一个新的插件目录,例如 `source/plugin/zzbuluo_integral/`。

### 2. 创建插件配置文件
在插件目录下创建一个 `config.xml` 文件,用于定义插件的基本信息和配置项。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[自定义版块交易积分]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="description"><![CDATA[允许不同版块设置不同的附件积分]]></item>
  6.     <item id="author"><![CDATA[zzbuluo]]></item>
  7.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  8.     <item id="adminid">1</item>
  9.     <item id="installfile"><![CDATA[install.php]]></item>
  10.     <item id="uninstallfile"><![CDATA[uninstall.php]]></item>
  11.     <item id="upgradefile"><![CDATA[upgrade.php]]></item>
  12.     <item id="pluginvar">
  13.         <item id="zzbuluo_integral">
  14.             <item id="title"><![CDATA[版块积分设置]]></item>
  15.             <item id="description"><![CDATA[设置不同版块的附件积分]]></item>
  16.             <item id="type">array</item>
  17.             <item id="default"></item>
  18.         </item>
  19.     </item>
  20. </root>
复制代码


### 3. 创建安装脚本
在插件目录下创建一个 `install.php` 文件,用于在插件安装时执行必要的数据库操作。

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

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_zzbuluo_integral` (
  7.     `fid` mediumint(8) unsigned NOT NULL,
  8.     `integral` int(10) NOT NULL DEFAULT '0',
  9.     PRIMARY KEY (`fid`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  11. EOF;

  12. runquery($sql);

  13. $finish = TRUE;
  14. ?>
复制代码


### 4. 创建卸载脚本
在插件目录下创建一个 `uninstall.php` 文件,用于在插件卸载时清理数据库。

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

  5. $sql = <<<EOF
  6. DROP TABLE IF EXISTS `pre_zzbuluo_integral`;
  7. EOF;

  8. runquery($sql);

  9. $finish = TRUE;
  10. ?>
复制代码


### 5. 创建插件主文件
在插件目录下创建一个 `zzbuluo_integral.class.php` 文件,用于实现插件的核心功能。

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

  5. class plugin_zzbuluo_integral {

  6.     public function forumdisplay_attach_extra() {
  7.         global $_G;
  8.         $fid = $_G['fid'];
  9.         $integral = C::t('#zzbuluo_integral#zzbuluo_integral')->fetch($fid);
  10.         if($integral) {
  11.             $_G['forum_attach_integral'] = $integral['integral'];
  12.         }
  13.     }

  14.     public function attach_download_extra() {
  15.         global $_G;
  16.         $fid = $_G['fid'];
  17.         $integral = C::t('#zzbuluo_integral#zzbuluo_integral')->fetch($fid);
  18.         if($integral) {
  19.             $_G['forum_attach_integral'] = $integral['integral'];
  20.         }
  21.     }
  22. }

  23. class plugin_zzbuluo_integral_forum extends plugin_zzbuluo_integral {

  24.     public function forumdisplay_attach_extra() {
  25.         parent::forumdisplay_attach_extra();
  26.     }

  27.     public function attach_download_extra() {
  28.         parent::attach_download_extra();
  29.     }
  30. }
复制代码


### 6. 创建数据表操作类
在插件目录下创建一个 `table` 目录,并在其中创建一个 `zzbuluo_integral.class.php` 文件,用于操作数据库表。

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

  5. class table_zzbuluo_integral extends discuz_table {

  6.     public function __construct() {
  7.         $this->_table = 'zzbuluo_integral';
  8.         $this->_pk = 'fid';
  9.         parent::__construct();
  10.     }

  11.     public function fetch($fid) {
  12.         return DB::fetch_first("SELECT * FROM %t WHERE fid=%d", array($this->_table, $fid));
  13.     }

  14.     public function update($fid, $data) {
  15.         return DB::update($this->_table, $data, "fid='$fid'");
  16.     }

  17.     public function insert($data) {
  18.         return DB::insert($this->_table, $data);
  19.     }
  20. }
复制代码


### 7. 创建后台管理页面
在插件目录下创建一个 `admin` 目录,并在其中创建一个 `admin.php` 文件,用于在后台管理界面中设置不同版块的积分。

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

  5. require_once libfile('function/forum');

  6. $fids = C::t('forum_forum')->fetch_all_fids();
  7. $integral_list = C::t('#zzbuluo_integral#zzbuluo_integral')->fetch_all();

  8. if(submitcheck('submit')) {
  9.     foreach($_POST['integral'] as $fid => $integral) {
  10.         if($integral_list[$fid]) {
  11.             C::t('#zzbuluo_integral#zzbuluo_integral')->update($fid, array('integral' => $integral));
  12.         } else {
  13.             C::t('#zzbuluo_integral#zzbuluo_integral')->insert(array('fid' => $fid, 'integral' => $integral));
  14.         }
  15.     }
  16.     cpmsg('setting_update_success', 'action=plugins&operation=config&do='.$pluginid.'&identifier=zzbuluo_integral', 'succeed');
  17. }

  18. showformheader('plugins&operation=config&do='.$pluginid.'&identifier=zzbuluo_integral');
  19. showtableheader('自定义版块交易积分设置');
  20. foreach($fids as $fid) {
  21.     showtablerow('', array('width="40%"', 'width="60%"'), array(
  22.         '版块: '.dhtmlspecialchars($_G['cache']['forums'][$fid]['name']),
  23.         '<input type="text" name="integral['.$fid.']" value="'.intval($integral_list[$fid]['integral']).'" />'
  24.     );
  25. }
  26. showtablefooter();
  27. showformfooter();
复制代码


### 8. 测试和部署
完成上述步骤后,您可以将插件打包并上传到您的Discuz站点进行安装和测试。确保插件在不同版块中能够正确设置和显示不同的附件积分。

### 注意事项
- 确保插件与其他附件下载相关的插件没有冲突。
- 在插件开发过程中,遵循Discuz的开发规范和安全性要求。
- 在插件发布前,进行充分的测试,确保其稳定性和兼容性。

通过以上步骤,您可以实现一个自定义版块交易积分的Discuz插件,满足不同版块设置不同附件积分的需求。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.119.137.2,GMT+8, 2025-3-20 12:13 , Processed in 0.286861 second(s), 88 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表