POST TIME:2017-11-13 00:20
用dedecms做文章類網(wǎng)站,一直有個讓人頭痛的問題:就是添加文章很容易添加到重復的,也就是之前添加過了,等過了一段時間又添加一篇,加文章大多數(shù)是從不同的網(wǎng)站復制添加的,所以很容易所到這個問題,就拿跟版網(wǎng)來說近200個欄目、幾萬的文章數(shù)據(jù),添加重復的機率更大了,為角解決dedecms添加文章時重復內容,于是就有了以下內容
不得不說下dedecms自帶的檢測標題是否重復基本上毫無用處,“提示:系統(tǒng)已經(jīng)存在標題為 'xxx' 的文檔”,該提示只會在標題文本100%匹配的情況下才會出現(xiàn),現(xiàn)在收集的文章多數(shù)都是內容相同標題卻是偽原創(chuàng)了的,所以說根本匹配不了,下面就介紹下跟版網(wǎng)實現(xiàn)的方法吧,不算很好將就能用
打開/dede/article_add.htm在<head>后面添加jQuery庫
<scripttype="text/javascript"src="/images/js/j.js"></script>
這個jQuery庫是1.2的,很老的版本了,你可以直接去官網(wǎng)下載較新的版本
在第二個</form>的前面添加
<spanid="checkArcRepeatedTips"></span> <divstyle="margin:10px;"><labelfor="checkArcRepeated"><inputtype="checkbox"id="checkArcRepeated"checked="checked"/>檢測內容是否有重復</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('標題不能為空');
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('請隨機選擇一段文本進行文章重復檢測');
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('文章標題不能為空!');
returnfalse;
}
if(document.form1.typeid.value==0)
{
alert('請選擇檔案的主類別!');
returnfalse;
}第四步:新建php文件
在/dede/目錄新建一個php文件,命名為checkArcRepeated.php,復制粘貼以下代碼保存
<?php
/**
*檢測重復文檔
*
*@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">前臺預覽</a>';
}else{
echo'ok';
}使用方法:在添加文章時,隨機選擇文章內容,選擇時注意不要選擇有格式的文字,比如加粗、字體大小顏色什么的,反正選擇純文本就好,然后點擊保存按鈕,這里程序會根據(jù)你所選擇的內容查找之前添加過的文章有沒有包含該段文字的,如果有的話會提示重復,你可以預覽或者編輯該重復文章,如果沒有重復程序會自動提交并保存文章
到這里dedecms避免添加重復文章的工具就差不多了,有兩點需要說下,該工具獲取編輯器內選中的文本是以百度編輯器API為基礎的,如果你的dedecms沒有整合百度編輯器,你可以查看之前跟版網(wǎng)寫的:dedecms整合百度編輯器(Ueditor)一(基本整合)非要用dedecm自帶的編輯器應該也是可以的,你可以去官網(wǎng)查看API
最后來一張圖吧,寫文章真挺費事的
dedecms避免添加重復文章的工具截圖 查看大圖
相關文章推薦:
1.dedecms列表頁有縮略圖顯示圖文列表沒有則文字列表
2.dedecms利用[field:global.autoindex /]打造文章排行榜代碼
3.dedecms添加文章提示/templets/plus/win_templet.htm Not Found!
4.給dedecms添加文章下載遠程圖片失敗加個提醒功能
5.dedecms5.7轉帝國CMS系統(tǒng)之tag標簽導入
