织梦DedeCMS会员发布文章重复检测机制修改教程
在织梦DedeCMS系统中,默认的会员文章发布功能允许不同会员发布相同标题的文章,但禁止同一会员重复发布。这一机制通过文件 member/inc/archives_check.php 中的代码实现。
原始检测代码如下:
//检测文档是否重复
if($cfg_mb_cktitle=='Y')
{
$row = $dsql->GetOne("Select * From `dede_archives` where title like '$title' ");
if(is_array($row))
{
ShowMsg("对不起,请不要发布重复文档!","-1","0",5000);
exit();
}
}
上述代码中,SQL查询语句仅根据文章标题进行匹配,未区分会员ID,因此只要数据库中已存在相同标题的文章,无论发布者是否为同一会员,都会触发重复提示。
修改代码实现跨会员重复检测
如需实现全局重复检测(即所有会员均不能发布相同标题的文章),需对查询条件进行修改。找到以下代码行:
$row = $dsql->GetOne("Select * From `dede_archives` where title like '$title' ");
将其修改为:
$row = $dsql->GetOne("Select * From `dede_archives` where title like '$title' and mid = '".$cfg_ml->M_ID."'");
修改后,SQL查询增加了 mid 字段条件,mid 代表会员ID。这样系统将只检测当前登录会员是否已发布过相同标题的文章,不同会员之间不再互相影响,从而实现“允许不同会员发布相同文章,仅禁止同一会员重复发布”的效果。
完成修改后保存文件,即可生效。此调整适用于需要允许多个会员贡献相同主题内容的网站场景,例如投稿平台或知识库系统。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
