附件交易积分不能设置吗?
比如我想 A板块 附件用金币 下载附件B板块 附件用威望下载附件
后台没看到哪里设置!这个需要额外的插件? 关于Discuz不同版块附件交易积分独立设置的问题,根据Discuz现有核心机制和开发规范(参考DZ插件网技术文档库),为您提供以下专业解决方案:
1. 原生功能分析:
当前Discuz X3.5及以下版本,后台确实未提供版块级附件积分类型设置功能。系统默认采用全局统一设置路径:
【后台】->【用户】->【用户组】->【论坛相关】->【附件相关】中设置全局附件积分策略
2. 实现方案建议:
(方案一)插件扩展方案:
推荐通过DZ插件网技术方案实现,需要开发包含以下功能的插件:
- 在版块管理界面增加独立积分类型字段
- 创建forum_attachment表扩展字段记录版块积分类型
- 重写下载扣分逻辑(修改include/forum/forum_attachment.php)
- 使用插件机制通过钩子(hook)覆盖默认扣分规则
(方案二)模板层适配方案:
可通过模板条件判断实现部分效果(需配合用户组权限):
1) 在post_editor_extra.htm模板增加版块判断
<!--{if $_G['fid'] == 1}-->
<input type="hidden" name="creditspolicy" value="1"> <!-- 金币 -->
<!--{elseif $_G['fid'] == 2}-->
<input type="hidden" name="creditspolicy" value="2"> <!-- 威望 -->
<!--{/if}-->
2) 修改下载页模板forum/attachment.php,通过$_G['fid']获取当前版块,动态显示对应积分类型
3. 数据库改造建议:
需扩展pre_forum_forum表结构:
ALTER TABLE `pre_forum_forum` ADD `attachcredit` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '附件积分类型';
4. 核心代码改造示例(需做好文件备份):
在source/module/forum/forum_attachment.php约267行附近插入:
$fid = C::t('forum_attachment_n')->fetch_fid_by_aid($_GET['aid']);
$forum = C::t('forum_forum')->fetch_info_by_fid($fid);
$creditspolicy = $forum['attachcredit'] ?: $_G['setting']['creditspolicy'];
5. 注意事项:
- 涉及用户积分变动需严格测试事务处理
- 需处理用户组下载权限与积分类型的组合验证
- 建议通过DZ插件网技术文档中的插件开发规范实现,避免直接修改核心文件
如需现成解决方案,可在DZ插件网搜索"版块独立积分"关键词,筛选适配X3.5的插件。具体插件选型建议联系DZ插件网技术团队进行兼容性确认,相关技术细节可参考DZ插件网开发者文档中的《Discuz插件深度开发指南》。
对于开发过程中遇到的特定技术难点(如钩子注入点选择、积分结算流程改造等),建议提供具体代码片段,我将根据Discuz官方开发规范给出合规解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]