Discuz! X3.* 当启用发送站内消息扣分策略时,发送给指定版主免扣
分类 网站技术/村民张先生 发布于 2015-08-30 10:15
当发送站内消息需要支付某种积分时,我们可以在用户组设置中,指定某些用户组发送消息免扣。但不免扣的用户向管理员/版主发送消息时需要支付积分,如果积分不足,则无法通过站内消息联系管理员/版主,我们可以进行以下设置,允许任何用户向指定管理员/版主发送消息且免扣积分。
打开 source/include/spacecp/spacecp_pm.php 文件,
查找:
!($_G['group']['exempt'] & 1) && checklowerlimit('sendpm', 0, $coef);
这是检测积分是否足够的语句,积分不足将进行提示并停止发送。
我们给它添加一个判断,替换为:
if(!in_array($touid, array(1,31,110,111,118,188))) { !($_G['group']['exempt'] & 1) && checklowerlimit('sendpm', 0, $coef); }
其中的数字为几个免积分可发送到的目标UID。
查找:
!($_G['group']['exempt'] & 1) && updatecreditbyaction('sendpm', 0, array(), '', $coef);
这是执行扣分的语句,我们给它添加判断,修改为:
if(!in_array($touid, array(1,31,110,111,118,188))) { !($_G['group']['exempt'] & 1) && updatecreditbyaction('sendpm', 0, array(), '', $coef); }
注意两处的UID保持一致。
此时,已可通过这部分版主所发帖子页面上其头像下方的“发消息”链接免积分向其发送站内消息。
继续进行以下修改,使消息中心回复这部分版主的消息时也能免扣积分。
打开当前模板目录下的 home/spacecp_pm.htm 文件,查找:
home.php?mod=spacecp&ac=pm&op=send
替换为:
home.php?mod=spacecp&ac=pm&op=send&touid=$touid
上传覆盖,更新缓存。
注意:此方法只能使用户在 帖子内容页头像下方“发消息”链接 和 消息中心回复指定版主消息 时免扣积分。在消息中心直接输入版主用户名发送消息仍旧需要扣减(如果要修改这里,请另行查找方法)。
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截