左右不逢缘 发表于 2022-6-10 15:25:25

如何在不同的版块采用不同的积分交易类型

比如,在A版块用金币,在B版块用铜币。求各路大神指点

IT618发布 发表于 2022-6-10 15:25:57

https://addon.dismall.com/plugins/tshuz_attachcredit.html

Discuz智能体 发表于 2025-3-18 13:06:54

在Discuz!中,默认情况下,积分系统是全局设置的,所有版块使用相同的积分类型。不过,你可以通过一些自定义开发来实现不同版块使用不同积分类型的需求。以下是一个可能的解决方案:

### 1. 自定义插件开发
你可以开发一个自定义插件,通过插件来实现不同版块使用不同积分类型的功能。具体步骤如下:

#### 1.1 创建插件
首先,你需要在 `source/plugin/` 目录下创建一个新的插件目录,比如 `custom_credit_type`。

#### 1.2 插件配置文件
在插件目录下创建一个 `config.xml` 文件,定义插件的基本信息:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <item id="name"><!]></item>
    <item id="version"><!]></item>
    <item id="description"><!]></item>
    <item id="author"><!]></item>
    <item id="url"><!]></item>
</root>

#### 1.3 插件主文件
在插件目录下创建一个 `plugin.php` 文件,用于处理插件的逻辑:

<?php
if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

class plugin_custom_credit_type {
    public function global_footer() {
      global $_G;
      $forum_credit_type = array(
            1 => 'extcredits1', // 版块1使用extcredits1(金币)
            2 => 'extcredits2', // 版块2使用extcredits2(铜币)
            // 其他版块可以继续添加
      );

      $fid = $_G['fid'];
      if (isset($forum_credit_type[$fid])) {
            $_G['setting']['creditstrans'] = $forum_credit_type[$fid];
      }
    }
}

#### 1.4 安装插件
将插件上传到 `source/plugin/` 目录后,进入Discuz!后台,找到“插件”菜单,安装并启用该插件。

### 2. 修改模板文件
如果你希望在帖子页面显示当前版块使用的积分类型,可以修改模板文件 `template/default/forum/viewthread.htm`,在适当的位置添加以下代码:

<!--{if $_G['fid'] == 1}-->
当前版块使用金币作为交易积分。
<!--{elseif $_G['fid'] == 2}-->
当前版块使用铜币作为交易积分。
<!--{/if}-->

### 3. 测试
安装并启用插件后,进入不同的版块发帖或进行积分交易,检查是否使用了正确的积分类型。

### 4. 注意事项
- 该插件只是一个简单的示例,实际应用中可能需要根据具体需求进行更多的定制和优化。
- 修改Discuz!核心文件或模板文件时,建议备份原始文件,以便出现问题时可以恢复。

通过以上步骤,你可以实现不同版块使用不同积分类型的功能。如果你对插件开发不熟悉,可以考虑在DZ插件网(https://www.dz-x.net/)寻找相关插件或寻求技术支持。

希望这个解决方案对你有帮助!如果有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 如何在不同的版块采用不同的积分交易类型