/dede/member/member_model.php
文件,找到 addMoney
方法,添加以下代码:,,“php,function addMoney($money = 0, $typeid = 0) {, global $dsql;, $userid = $this>mid;, $nowtime = time();, $newmoney = $this>money + $money;, $query = "UPDATE dede_member SET money=$newmoney, lastupdate={$nowtime} WHERE mid={$userid}";, $dsql>ExecuteNoneQuery($query);, return true;,},
`,,2. 打开
/dede/archives_article_do.php 文件,找到
checkArchives 方法,添加以下代码:,,
`php,function checkArchives() {, global $dsql, $cfg_df_yes, $cfg_arcCache;, if (!empty($this>aid)) {, $aid = intval($this>aid);, $row = $dsql>GetOne("SELECT id,mid,typeid FROM #@__archives WHERE id = {$aid}");, if ($row['id']) {, $archives = $row;, $archives['typelink'] = '';, if (!empty($row['typeid']) && !in_array($row['typeid'], array(1, 2))) {, $archives['typelink'] = 'index.php?m=content&c=index&a=list&catid=' . $row['typeid'];, }, $archives['url'] = $cfg_df_yes == 'Y' ? $row['typelink'] : $row['filename'];, $archives['title'] = htmlspecialchars($row['title']);, $archives['click'] = $row['click'] + 1;, $archives['lastupdate'] = $row['pubdate'] > $cfg_arcCache ? $row['pubdate'] : $row['clickdate'];, $archives['description'] = $row['description'];, $archives['writer'] = $row['writer'];, $archives['source'] = $row['source'];, $archives['ismake'] = $row['ismake'];, $archives['istop'] = $row['istop'];, $archives['isdefault'] = $row['isdefault'];, $archives['ispart'] = $row['ispart'];, $archives['isimage'] = $row['isimage'];, $archives['isremote'] = $row['isremote'];, $archives['isflow'] = $row['isflow'];, $archives['corank'] = $row['corank'];, $archives['litpic'] = $row['litpic'];, $archives['ip'] = gethostbyname(getenv('REMOTE_ADDR'));, if (empty($cfg_df_yes) || empty($cfg_df_yes[0])) {, $archives['filename'] = $row['filename'];, if (!file_exists(DEDE_ROOT . "/data/" . $archives['filename'] . ".htm")) {, $query = "UPDATE #@__archives SET click=click+1, clickdate={$nowtime} WHERE id={$aid}";, $dsql>ExecuteNoneQuery($query);, $this>assign('msg', '文档更新成功');, $this>assign('type', 'success');, $this>assign('jumpUrl', 'javascript:;');, $this>display('result');, exit;, } else {, $this>assign('msg', '文档已经存在,请重新编辑');, $this>assign('type', 'error');, $this>assign('jumpUrl', 'javascript:;');, $this>display('result');, exit;, }, } else {, $this>assign('msg', '文档更新成功');, $this>assign('type', 'success');, $this>assign('jumpUrl', 'javascript:;');, $this>display('result');, exit;, }, } else {, $this>assign('msg', '文档不存在');, $this>assign('type', 'error');, $this>assign('jumpUrl', 'javascript:history.go(1)');, $this>display('result');, exit;, }, } else {, $this>assign('msg', '缺少参数');, $this>assign('type', 'error');, $this>assign('jumpUrl', 'javascript:history.go(1)');, $this>display('result');, exit;, },},
`,,3. 打开
/dede/member_hook.php 文件,添加以下代码:,,
`php,function memberAfterSave($rid, &$member) {, if ($member['typeid'] == 1) { // 文章类型为1时,增加积分或金币, $addMoney = 10; // 增加的金额, $member>addMoney($addMoney, 1); // 增加积分或金币, },},
“,,4. 保存所有文件并上传到服务器。当文章审核通过后,会员将获得相应的积分或金币奖励。在织梦DedeCMS系统中,会员发表文章后通常会自动增加积分或金币,为了防止会员通过发布低质量或灌水内容快速获取积分,可以在文章审核通过后再为会员增加积分或金币,下面将详细介绍如何实现这一功能:
取消会员发表完文章后的自动加积分
1、修改文件路径:需要找到并修改member/article_add.php
文件,使用FTP工具(如FlashFXP)将文件下载到本地电脑,然后使用文本编辑器(如Notepad++)打开。
2、注释掉加积分代码:在文件中搜索“//增加积分”,将以下代码注释掉或删除:
“`php
//增加积分
$dsql>ExecuteNoneQuery("Updatedede_member
set scores=scores+{$cfg_sendarc_scores} where mid=’".$cfg_ml>M_ID."’ ; ");
“`
3、上传修改后的文件:保存修改后的文件,并通过FTP工具上传回服务器覆盖原文件。
设置后台审核文章后增加积分
1、找到审核文件:需要找到并修改后台审核文章的文件dede/archives_do.php
,同样地,使用FTP工具下载该文件到本地电脑。
2、添加加积分代码:在文件中搜索function checkArchives()
,然后在$aid = $row['id'];
下方添加以下代码:
“`php
//审核后增加积分
$dsql>ExecuteNoneQuery("Updatedede_member
set scores=scores+{$cfg_sendarc_scores} where mid=(select mid fromdede_arctiny
where id=’$aid’)");
“`
3、上传修改后的文件:保存修改后的文件,并通过FTP工具上传回服务器覆盖原文件。
自定义字段和插件实现
除了上述方法外,还可以通过创建自定义字段和使用插件来实现文章审核后给会员增加积分或金币的功能,这种方法更加灵活,可以根据具体需求进行定制。
1、创建自定义字段:在后台创建一个自定义字段,审核状态”,用于记录文章是否已经审核,字段类型可以选择为单选框,选项包括“未审核”和“已审核”。
2、编写插件代码:编写一个插件,监听文章的保存事件,当文章被保存时,检查“审核状态”字段的值,如果值为“已审核”,则执行积分或金币的增加操作,具体规则可以根据需求设定,例如每篇文章审核通过后增加10积分或10金币等。
3、安装并启用插件:将编写好的插件上传到网站根目录的data/module
目录下,并在后台启用该插件,这样,当会员提交的文章通过审核后,系统就会自动为会员增加相应的积分或金币。
常见问题及解答
1、Q1: 修改文件后没有生效怎么办?
A1: 请确保修改后的文件已经正确上传到服务器并覆盖了原文件,可以尝试清除浏览器缓存或重启服务器以查看效果。
2、Q2: 是否可以为不同的栏目设置不同的积分规则?
A2: 是的,可以通过在dede/archives_do.php
文件中添加条件判断语句来实现,根据不同的栏目ID或其他条件来设置不同的积分规则。
3、Q3: 是否可以设置积分上限以防止恶意刷分?
A3: 可以,在积分增加操作中添加条件判断,当会员的积分达到一定上限时不再增加,可以在后台设置积分规则以限制每天或每周的积分获取上限。
4、Q4: 是否可以将此功能与其他插件集成?
A4: 可以,只需在其他插件中调用相同的积分增加函数即可实现集成,确保插件之间的兼容性以避免冲突。
5、Q5: 如果我想在文章审核后同时增加金币和积分怎么办?
A5: 可以在dede_archives_do.php
文件中同时添加增加金币和积分的代码,确保两个操作都成功执行且不会相互影响,同时注意数据库字段的更新和数据一致性问题。
通过以上步骤和注意事项的实施,您可以有效地在Dedecms系统中实现文章审核后为会员增加积分或金币的功能,这不仅有助于提高会员的积极性和参与度,还能有效防止灌水行为的发生。
Dedecms 文章审核后给会员增加积分或金币的方法
准备工作
1、确保DedeCMS版本:确保您的DedeCMS版本支持积分或金币系统,且已安装相关插件或模块。
2、积分或金币插件:下载并安装相应的积分或金币插件,如“DedeCMS积分系统”或“DedeCMS金币系统”。
3、配置积分或金币设置:根据插件说明,配置积分或金币的获取规则、兑换比例等。
设置文章审核机制
1、开启文章审核功能:在DedeCMS后台,进入“文章管理”模块,开启文章审核功能。
2、设置审核规则:根据需要设置文章审核的标准,如字数、图片、链接等。
3、分配审核权限:设置审核员,分配相应的审核权限。
实现积分或金币增加
1、编写审核通过后的处理脚本:
“`php
// 示例:文章审核通过后增加积分
if($vartype == ‘1’) {
$memberid = $row[‘mid’]; // 获取文章提交者会员ID
$point = 10; // 设置审核通过后增加的积分值
$sql = "UPDATE#@__member
SETscores
=scores
+$point WHERE mid=’$memberid’";
if(!empty($memberid)) {
$dsql>ExecuteNoneQuery($sql);
}
}
“`
2、调用脚本:
在DedeCMS文章审核模块中,设置审核通过后自动调用此脚本。
或者,在DedeCMS的钩子(Hook)系统中注册此脚本,使其在特定事件发生时自动执行。
测试与优化
1、测试积分或金币增加:发布一篇新文章,提交审核,审核通过后检查会员积分或金币是否增加。
2、优化脚本:根据实际情况调整积分或金币的增加规则,确保符合网站运营策略。
注意事项
安全性与稳定性:确保脚本安全可靠,避免因错误操作导致数据丢失或网站异常。
用户体验:合理设置积分或金币的增加规则,提高用户参与度。
维护与更新:定期检查积分或金币系统,确保其与DedeCMS版本兼容。
通过以上步骤,您可以在DedeCMS文章审核通过后为会员增加积分或金币,请根据实际情况调整配置和脚本,以满足您的具体需求。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1137052.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复