知识问答
如何实现DEDECMS文档审核通过后的奖励机制?
在DEDECMS中实现文档通过审核后再奖励的机制,可以通过以下两个主要步骤来完成:
1、删除会员发布文章时自动增加积分的代码:需要找到并修改文件article_add.php
,在该文件中,有一段代码是用于在会员发布文章时自动增加积分的,具体代码如下:
//增加积分$dsql>ExecuteNoneQuery("updatedede_member
set scores=scores+{$cfg_sendarc_scores} where mid='".$cfg_ml>M_ID."' ; ");
将上述代码注释掉或者删除,以避免在文章发布时立即增加积分。
2、在文章审核通过后增加积分:接下来需要在后台审核文章的文件archives_do.php
中找到审核文档的函数checkArchives()
,在该函数中,找到以下代码:
$aid = $row['id'];
在这段代码后面添加以下代码:
//审核后增加积分$dsql>ExecuteNoneQuery("update 'dede_member' set scores=scores+{$cfg_sendarc_scores} where mid=(select mid from 'dede_arctiny' where id='$aid')");
这样,当文章通过审核后,系统会自动为相应的会员增加积分。
以下是关于上述操作的FAQs:
Q1: 为什么需要删除会员发布文章时的自动加积分代码?
A1: 如果不删除该代码,会员在发布文章时会立即获得积分,这可能会被不良会员利用来刷分,通过删除该代码,可以确保只有在文章通过审核后才给予积分奖励,从而有效控制恶意灌水行为。
Q2: 如何确保文章审核通过后才能增加积分?
A2: 通过在archives_do.php
文件中的checkArchives()
函数里添加代码,可以在文章审核通过后自动为相应的会员增加积分,这样可以确保只有经过审核的文章才会使会员获得奖励。
Q3: 是否有其他方法可以实现类似的功能?
A3: 除了直接修改代码外,还可以通过创建自定义字段和编写插件来实现,在后台创建一个“审核状态”字段,并在插件中**文章保存事件,当文章保存且审核状态为已审核时,执行积分或金币的增加操作。
Q4: 这种方法是否适用于所有DEDECMS版本?
A4: 上述方法主要针对标准的DEDECMS系统,如果使用的是定制版或其他变种,可能需要根据具体情况进行调整,建议在进行任何修改前备份相关文件,以防出现意外情况。
通过以上步骤,您可以有效地在DEDECMS系统中实现文档通过审核后再奖励的功能,提升网站管理效率并减少恶意灌水行为。