返回首页
当前位置: 首页 > 建站技巧 >

DEDE检测重复自定义字段禁止发布

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

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

找到对应的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]}."' ";
            }
        }
    }
在这段结尾添加以下代码:jinmengqiang.cn
//检测重复的自定义字段
    if($cfg_mb_cktitle=='Y')
    {   
        $row = $dsql->GetOne("Select * From `dede_你的自定义模型数据表` where 自定义字段 like '$自定义字段' ");
        if(is_array($row))
        {
            ShowMsg("对不起,请不要发布重复id!","-1");
            exit();
        }
    }
同样的,在会员模型中也是如此添加一段即可.此方法暂只在v5.7上测试,其他版本暂未测试!

------分隔线----------------------------
推荐内容