POST TIME:2017-11-13 00:20
用dedecms做文章類網(wǎng)站,一直有個(gè)讓人頭痛的問題:就是添加文章很容易添加到重復(fù)的,也就是之前添加過了,等過了一段時(shí)間又添加一篇,加文章大多數(shù)是從不同的網(wǎng)站復(fù)制添加的,所以很容易所到這個(gè)問題,就拿跟版網(wǎng)來說近200個(gè)欄目、幾萬的文章數(shù)據(jù),添加重復(fù)的機(jī)率更大了,為角解決dedecms添加文章時(shí)重復(fù)內(nèi)容,于是就有了以下內(nèi)容
不得不說下dedecms自帶的檢測標(biāo)題是否重復(fù)基本上毫無用處,“提示:系統(tǒng)已經(jīng)存在標(biāo)題為 'xxx' 的文檔”,該提示只會在標(biāo)題文本100%匹配的情況下才會出現(xiàn),現(xiàn)在收集的文章多數(shù)都是內(nèi)容相同標(biāo)題卻是偽原創(chuàng)了的,所以說根本匹配不了,下面就介紹下跟版網(wǎng)實(shí)現(xiàn)的方法吧,不算很好將就能用
打開/dede/article_add.htm在<head>后面添加jQuery庫
<scripttype="text/javascript"src="/images/js/j.js"></script>
這個(gè)jQuery庫是1.2的,很老的版本了,你可以直接去官網(wǎng)下載較新的版本
在第二個(gè)</form>的前面添加
<spanid="checkArcRepeatedTips"></span> <divstyle="margin:10px;"><labelfor="checkArcRepeated"><inputtype="checkbox"id="checkArcRepeated"checked="checked"/>檢測內(nèi)容是否有重復(fù)</label></div> <inputname="imageField"id="imageFieldBtn"type="image"src="images/button_save.gif"width="60"height="22"class="np"border="0"style="cursor:pointer;display:none;"/> <inputtype="button"value="保存"id="checkArcRepeatedBtn"style="width:150px;height:;line-height:30px;background:green;font-size:14px;font-weight:bold;color:#fff;padding:10px;cursor:pointer;"/>
<scripttype="text/javascript"> $(function(){ $('#checkArcRepeatedBtn').click(function(){ if($('#title').val()==''){ alert('標(biāo)題不能為空'); returnfalse; } if($('#typeid').val()==''||$('#typeid').val()==0){ alert('請選擇欄目'); returnfalse; } if($('#checkArcRepeated').attr('checked')!=''){ varrange=ue.selection.getRange(); range.select(); varcheckWord=ue.selection.getText(); if(!checkWord){ alert('請隨機(jī)選擇一段文本進(jìn)行文章重復(fù)檢測'); isRepeat=true; returnfalse; }else{ $.ajax({ type:'get', url:'checkArcRepeated.php?checkWord='+checkWord, async:false, beforeSend:function(){ $('#checkArcRepeatedTips').text('請稍候...'); }, success:function(data){ if(data=='ok'){ //ue.execCommand("insertHtml",checkWord+qmtx3Node) $('#checkArcRepeated').removeAttr('checked'); $('#checkArcRepeatedTips').html(w); //$('#imageFieldBtn').trigger('click'); isRepeat=false; }else{ isRepeat=true; $('#checkArcRepeatedTips').html(data); } } }); } if(isRepeat==false){ $('#imageFieldBtn').trigger('click') } returnfalse; }else{ $('#imageFieldBtn').trigger('click'); } }); }); </script>
刪除
<inputname="imageField"type="image"src="images/button_save.gif"width="60"height="22"class="np"border="0"style="cursor:pointer;"/>
Tips:有以上代碼有兩處
刪除
if(document.form1.title.value=='') { alert('文章標(biāo)題不能為空!'); returnfalse; } if(document.form1.typeid.value==0) { alert('請選擇檔案的主類別!'); returnfalse; }
第四步:新建php文件
在/dede/目錄新建一個(gè)php文件,命名為checkArcRepeated.php,復(fù)制粘貼以下代碼保存
<?php /** *檢測重復(fù)文檔 * *@version2013-6-5AniuQQ:2655101040$ *@linkhttp://www.genban.org */ require_once(dirname(__FILE__)."/config.php"); $checkWord=$_GET['checkWord']; $aid=$_GET['aid']; if(empty($checkWord)||$cfg_check_title=='N'){ echo'檢測功能未開啟或者所選文本為空,請聯(lián)系'; exit; } $where='andmain.arcrank>-1andmain.id=addon.aid'; if(!empty($aid)){ $where.='andaid<>'.$aid; } $sql="SELECTaidFROMdede_addonarticleaddon,dede_archivesmainWHEREbodyLIKE'%".$checkWord."%'".$where; $row=$dsql->GetOne($sql); if(is_array($row)){ echo'<astyle="color:red;"href="article_edit.php?aid='.$row['aid'].'"target="_blank">編輯文章</a><astyle="color:red;"href="../plus/view.php?aid='.$row['aid'].'"target="_blank">前臺預(yù)覽</a>'; }else{ echo'ok'; }
使用方法:在添加文章時(shí),隨機(jī)選擇文章內(nèi)容,選擇時(shí)注意不要選擇有格式的文字,比如加粗、字體大小顏色什么的,反正選擇純文本就好,然后點(diǎn)擊保存按鈕,這里程序會根據(jù)你所選擇的內(nèi)容查找之前添加過的文章有沒有包含該段文字的,如果有的話會提示重復(fù),你可以預(yù)覽或者編輯該重復(fù)文章,如果沒有重復(fù)程序會自動(dòng)提交并保存文章
到這里dedecms避免添加重復(fù)文章的工具就差不多了,有兩點(diǎn)需要說下,該工具獲取編輯器內(nèi)選中的文本是以百度編輯器API為基礎(chǔ)的,如果你的dedecms沒有整合百度編輯器,你可以查看之前跟版網(wǎng)寫的:dedecms整合百度編輯器(Ueditor)一(基本整合)非要用dedecm自帶的編輯器應(yīng)該也是可以的,你可以去官網(wǎng)查看API
最后來一張圖吧,寫文章真挺費(fèi)事的
dedecms避免添加重復(fù)文章的工具截圖 查看大圖
相關(guān)文章推薦:
1.dedecms列表頁有縮略圖顯示圖文列表沒有則文字列表
2.dedecms利用[field:global.autoindex /]打造文章排行榜代碼
3.dedecms添加文章提示/templets/plus/win_templet.htm Not Found!
4.給dedecms添加文章下載遠(yuǎn)程圖片失敗加個(gè)提醒功能
5.dedecms5.7轉(zhuǎn)帝國CMS系統(tǒng)之tag標(biāo)簽導(dǎo)入