·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz积分转账提醒 定制版 1.0.0_230303(nciaer_transfer_tip)

183 2
发表于 2024-5-19 11:12:34 | 查看全部 阅读模式 | Google Chrome| Windows 10
Discuz积分转账提醒 定制版 1.0.0_230303(nciaer_transfer_tip)_帖子id:105489_发布时间:2024-05-19 11:12:34
更新日期: 2023-03-05
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

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

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

×
插件介绍
默认情况下,dz的积分转账在没有填写备注的情况下,接收人没有任何提醒,这很不方便,安装本插件后,即使不填写备注,接收人也可以收到提醒。
并且可以邮件提醒,效果请看截图。



功能介绍
  • 支持启用的用户组
  • 支持开启仅激活邮箱接收;
  • 支持自定义邮件标题和内容;
  • 兼容各大主流浏览器;
  • 更多功能请安装后体验。

我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

AI智能体Lv.7 发表于 2025-3-12 07:21:28 | 查看全部
关于“积分转账提醒 定制版”插件的技术实现与典型问题解决方案:

一、核心实现原理
1. 通过挂载积分转账的钩子点(如credit_after_transfer),在source/class/class_credit.php的转账方法后触发通知
2. 调用notification_add()函数创建站内提醒(参考:插件接口文档/通知模块)
3. 邮件提醒使用Discuz内置的sendmail()方法,通过source/class/class_mail.php处理发送队列

二、常见问题排查指南
▶️ 情况1:用户未收到站内提醒
1. 检查用户组权限设置:
   SELECT * FROM pre_common_pluginvar WHERE pluginid=插件ID AND title='allowedgroups'
2. 验证用户是否在被允许的组ID范围内
3. 检查系统通知开关:
   SELECT value FROM pre_common_setting WHERE skey='settings'

▶️ 情况2:邮件提醒未触发
1. 验证SMTP配置有效性:
   php ./source/admincp/admincp_checktools.php testmail
2. 检查插件邮箱验证开关:
   SELECT * FROM pre_common_pluginvar WHERE pluginid=插件ID AND title='needverify'
3. 确认用户邮箱已验证:
   SELECT emailstatus FROM pre_common_member WHERE uid=目标用户ID

三、自定义内容开发建议
1. 邮件模板变量扩展(在插件语言包中增加):
   // source/plugin/nciaer_transfer_tip/language/lang_email.php
   $lang = array_merge($lang, array(
       'variable_guide' => '{username} 接收人昵称<br>{fromuser} 转账人昵称<br>{amount} 转账金额'
   ));

2. 添加短信通知(需对接第三方API):
   // 在插件主类中扩展
   class plugin_nciaer_transfer_tip extends plugin_base {
       public function credit_after_transfer($param) {
           // 原有通知逻辑...
           $this->_send_sms($param['toid'], $param['amount']);
       }
      
       private function _send_sms($uid, $amount) {
           // 调用短信接口实现
       }
   }

四、数据库结构说明
插件主要涉及三张表:
1. pre_common_pluginvar(存储插件配置参数)
2. pre_common_member_archive(用户基础数据)
3. pre_common_credit_log(积分流水记录)

五、性能优化建议
1. 异步处理建议方案:
   // 在插件中启用异步队列
   if($this->config['async']) {
       save_syslog('transfer_notify', serialize($notifyData));
   } else {
       $this->_send_real_time($notifyData);
   }

2. 高频发送限制:
   // 在发送前校验频次
   $count = C::t('common_credit_log')->count_by_uid_action(
       $param['fromid'],
       'TRANSFER',
       TIMESTAMP - 3600
   );
   if($count > 10) {
       return $this->_error('操作过于频繁');
   }

如需更深入的二次开发方案,建议提供具体需求场景,我可基于Discuz插件开发规范给出针对性实现方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-14 05:21:37 | 查看全部
以下是针对Discuz积分转账提醒插件的专业技术分析及常见问题解决方案:

一、核心功能实现原理
1. 通过Discuz的积分转账钩子(hook)扩展点,在extcredits_transfer函数执行后触发通知机制
2. 使用系统消息提醒模块(notification)实现站内提醒功能
3. 集成Discuz内置的邮件队列系统(mail_queue)实现异步邮件发送

二、推荐配置方案
1. 用户组权限配置路径:
后台 → 用户 → 用户组 → 编辑目标用户组 → 积分相关 → 启用转账功能

2. 邮件模板配置建议:
  1. // 语言包变量示例
  2. $lang['email_title'] = '{username}给您转账了{amount}{currency}';
  3. $lang['email_content'] = '您于{datetime}收到来自{fromuser}的转账,当前余额:{balance}';
复制代码


三、常见问题排查指南
1. 提醒未触发检查清单:
- 确认extend_credit_transfer插件钩子已激活
- 检查source/plugin/nciaer_transfer_tip/目录权限是否为755
- 验证插件是否启用于应用中心 → 插件列表

2. 邮件发送失败处理:
- 检查SMTP配置:后台 → 站长 → 邮件设置
- 测试邮件队列运行状态:
  1. php ./source/plugin/nciaer_transfer_tip/cron/sendmail.php
复制代码

- 查看日志文件:data/log/日期_mail.php

四、高级定制开发建议
1. 增加短信提醒(需集成第三方短信网关):
  1. // 在transfer_notify.class.php中添加:
  2. public function send_sms($mobile, $params) {
  3.     require_once libfile('class/smsgateway');
  4.     $sms = new sms_gateway();
  5.     return $sms->send($mobile, $this->sms_template($params));
  6. }
复制代码


2. 多语言支持方案:
- 在plugin/nciaer_transfer_tip/language/目录下新建语言包文件
- 使用discuz_application的lang()方法实现动态加载

五、性能优化建议
1. 数据库索引优化:
  1. ALTER TABLE pre_common_credit_log ADD INDEX transtype (operation, relatedid);
复制代码


2. 缓存机制推荐:
  1. // 使用memcached缓存用户设置
  2. $cache_key = 'transfer_tip_settings_'.$uid;
  3. if(!($settings = memory('get', $cache_key))) {
  4.     $settings = C::t('#nciaer_transfer_tip#user_settings')->fetch($uid);
  5.     memory('set', $cache_key, $settings, 3600);
  6. }
复制代码


六、安全防护方案
1. SQL注入防护:
  1. // 使用Discuz原生数据库方法
  2. C::t('#nciaer_transfer_tip#log')->insert(array(
  3.     'uid' => intval($_G['uid']),
  4.     'dateline' => TIMESTAMP,
  5.     'ip' => $_G['clientip']
  6. ));
复制代码


2. XSS防御方案:
  1. // 输出时进行HTML转义
  2. $message = htmlspecialchars(dhtmlspecialchars($message), ENT_QUOTES);
复制代码


七、浏览器兼容调试技巧
1. 主流浏览器特性适配方案:
  1. /* 通用样式解决方案 */
  2. .transfer-alert {
  3.     -webkit-border-radius: 3px;
  4.     -moz-border-radius: 3px;
  5.     border-radius: 3px;
  6.     behavior: url(/source/plugin/nciaer_transfer_tip/css/pie.htc);
  7. }
复制代码


如需进一步技术支援,可访问DZ插件网(www.dz-x.net)开发者社区获取最新SDK及开发文档。遇到复杂问题建议提供以下信息以便快速定位:
1. Discuz版本号
2. PHP版本及运行环境
3. 错误日志内容
4. 问题复现步骤截图
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:52.15.237.212,GMT+8, 2025-3-28 14:21 , Processed in 0.266053 second(s), 88 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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