在實(shí)現(xiàn)織夢(mèng)站內(nèi)搜索過(guò)程中,我們不想讓某些欄目下的文章被檢索出來(lái),此時(shí)需要對(duì)織夢(mèng)dedecms進(jìn)行二次開(kāi)發(fā),主要實(shí)現(xiàn)方法有以下兩種:
一、打開(kāi)include/arc.searchview.class.php,找到以下代碼(大概在第450行):
$cquery = "SELECT * FROM `{$this->AddTable}` arc WHERE ".$this->AddSql;
換成
$cquery = "Select * From `dede_archives` arc where arc.typeid not in (1,2,3...) and {$this->AddSql}";
找到以下代碼(大概在第661行):
//搜索
$query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
FROM `dede_archives` arc LEFT JOIN `dede_arctype` act ON arc.typeid=act.id
WHERE arc.id IN ($aids)";
換成
//搜索
$query = "Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
from `dede_archives` arc left join `dede_arctype` act on arc.typeid=act.id
where act.id not in (4,5,,6....) and {$this->AddSql} $ordersql limit $limitstart,$row";
這樣就可以屏蔽掉不需要被檢索的欄目了。
二、我們還可以利用另外一個(gè)思路,直接在搜索頁(yè)面里設(shè)置我們需要被檢索的欄目即可,打開(kāi)plus/search.php,找到以下代碼(大概在第107行):
$sp = new SearchView($typeid,$keyword,$orderby,$channeltype,$searchtype,$starttime,$pagesize,$kwtype,$mid);
換成
$typeid=1;
$sp = new SearchView($typeid,$keyword,$orderby,$channeltype,$searchtype,$starttime,$pagesize,$kwtype,$mid);
數(shù)字即代表我們需要指定的欄目ID,這樣就可以實(shí)現(xiàn)搜索指定的欄目了。
如果是要搜索某個(gè)內(nèi)容模型中的文章,其他模型都不參與搜索,那么只需打開(kāi)plus/search.php,找到以下代碼(大概在第17行):
$channeltype = (isset($channeltype) && is_numeric($channeltype)) ? $channeltype : 0;
其中$channeltype就是指定搜索的內(nèi)容模型,默認(rèn)為0即搜索全部模型,我們需要將最后的數(shù)字修改為對(duì)應(yīng)的內(nèi)容模型即可。
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: 織夢(mèng)禁止搜索指定欄目或模型的辦法