POST TIME:2020-03-31 15:24
織夢(mèng)搜索功能的處理
搜索的模板默認(rèn)是search.htm位于templet -》default目錄下。
我試著在模板下,寫入arclist標(biāo)簽,從而在得到的搜索頁(yè)面能夠載入更多的信息。但是,結(jié)果卻不是這樣的,沒有返回任何的搜索結(jié)果,相反像其它的global list pagelist等標(biāo)簽就有返回相應(yīng)的數(shù)據(jù)。我猜想能不能夠使用include標(biāo)簽的。看可不可以返回結(jié)果。因此,我就寫一個(gè)頁(yè)面。在templets的default目錄下。當(dāng)然也用到arclist標(biāo)簽
{dede:arclist typeid='1'}
[field:title/]
{/dede:arclist}
得到欄目為1的內(nèi)容標(biāo)題。
刷新搜索頁(yè)面后,成功返回結(jié)果。因此,我決定看看dedecms的搜索底層處理過程。
/plus/search.php是處理搜索的。
并在頁(yè)面中載入require_once(DEDEINC."/arc.searchview.class.php");
順藤摸瓜發(fā)現(xiàn),在searchview類中,
第一 $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm"; 搜索模板
第二 在display方法中有對(duì)list pagelist等的處理,因此,直接在搜索模板的頁(yè)面中寫入的list標(biāo)簽處理的有返回結(jié)果。
第三 在DedeTagParse類的display中打印getresult返回的值,而在getresult中發(fā)現(xiàn) $this->AssignSysTag(); 進(jìn)一步發(fā)現(xiàn)但載入include時(shí),就調(diào)用DedeTagParse類的includefile方法,很好,快有結(jié)果了。最后,在includefile方法中看到
//編譯
if($ismake!="no")
{
require_once(DEDEINC."/channelunit.func.php");
$dtp = new DedeTagParse();
$dtp->LoadTemplet($okfile);
MakeOneTag($dtp,$this->refObj);
$restr = $dtp->GetResult();
}
此刻,通過makeonetag函數(shù),就可以看到通過include標(biāo)簽載入的文件,并對(duì)文件的dedecms標(biāo)簽的處理過程了。
通過,這一次,才知道dedecms的標(biāo)簽處理放在include的taglib目錄下。
每日貼出一點(diǎn)知識(shí),就可以多學(xué)會(huì)一項(xiàng)技巧!