在使用DedeCMS构建网站时,许多站长希望对会员投稿功能进行优化。默认情况下,DedeCMS会在会员发表文章后自动增加积分,这种设置对于需要严格审核内容的大型网站来说可能并不合适。为了避免因恶意灌水导致积分飙升的问题,我们可以对系统进行适当的修改,以确保只有通过后台审核的文章才能为会员增加积分。


以下是具体的操作步骤:


第一步:取消会员发表文章后自动加积分

我们需要找到并修改 /member/article_add.php 文件。在这个文件中,定位到注释为“//增加积分”的代码段,并将相关代码注释掉或直接删除。以下是需要处理的代码:


// 增加积分
//$dsql->ExecuteNoneQuery("Update `dede_member` set scores=scores+{$cfg_sendarc_scores} where mid='" . $cfg_ml->M_ID . "' ; ");

通过注释或删除上述代码,可以成功阻止会员在发表文章后立即获得积分。


第二步:在后台审核通过后增加积分

接下来,我们需要让积分只在管理员审核通过文章后才增加。为此,找到后台审核文章的文件 /dede/archives_do.php,并定位到审核文档的函数 function 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')");

注意:请根据您的数据库表名和字段名进行调整,例如 dede_memberdede_arctiny 可能会有所不同。


第三步:扩展到其他频道模型

如果您的网站还包含图片、软件等其他类型的频道模型,可以按照上述方法进行类似的修改。只需确保对应的数据库表名和字段名正确即可。


通过以上两步操作,您可以有效避免因恶意灌水而导致的积分问题,同时确保只有高质量的内容能够为会员带来积分奖励。这样的修改不仅提升了网站的内容质量,还能增强用户体验,是一举两得的好方法。


如果您在实际操作过程中遇到任何问题,请随时检查文件路径和代码语法是否正确,并根据实际情况调整相关配置。