织梦后台自动检测重复自定义字段禁止发布
织梦文档重复,要怎么实现标题重复时不允许发文章,其实后台是有个重复检测功能,但是添加文章的时候都能添加成,这显然没什么用原来的检测功能,现在我们要做的是在点击添加文章保存按钮之前,做下检测重复文档的操作,判断如果存在重复文档,提示,并且退出保存文章的函数。
找到对应的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上测试,其他版本暂未测试!