织梦后台自动检测重复自定义字段禁止发布

织梦文档重复,要怎么实现标题重复时不允许发文章,其实后台是有个重复检测功能,但是添加文章的时候都能添加成,这显然没什么用原来的检测功能,现在我们要做的是在点击添加文章保存按钮之前,做下检测重复文档的操作,判断如果存在重复文档,提示,并且退出保存文章的函数。

找到对应的dede发布模型的php文件(如:我的是自定义模型中的自定义字段,打开archives_add.php)
查找:

//分析处理附加表数据

$$inadd_f = $$inadd_v = '';

if(!empty($$dede_addonfields))

{

$$addonfields = explode(';', $$dede_addonfields);

if(is_array($$addonfields))

{

foreach($$addonfields as $$v)

{

if($$v=='') continue;

$$vs = explode(',', $$v);

if($$vs[1]=='htmltext' || $$vs[1]=='textdata')

{

$${$$vs[0]} = AnalyseHtmlBody($${$$vs[0]}, $$description, $$litpic, $$keywords, $$vs[1]);

}

else

{

if(!isset($${$$vs[0]})) $${$$vs[0]} = '';

$${$$vs[0]} = GetFieldValueA($${$$vs[0]}, $$vs[1], $$arcID);

}

$$inadd_f .= ','.$$vs[0];

$$inadd_v .= " ,'".$${$$vs[0]}."' ";

}

}

}

在这段结尾添加以下代码:

//检测重复的自定义字段

if($$cfg_mb_cktitle=='Y')

{

$$row = $$dsql->GetOne("Select * From `dede_你的自定义模型数据表` where 自定义字段 like '$$自定义字段' ");

if(is_array($$row))

{

ShowMsg("对不起,请不要发布重复id!","-1");

exit();

}

}

同样的,在会员模型中也是如此添加一段即可.此方法暂只在v5.7上测试,其他版本暂未测试!

+