织梦58

织梦dedecms搜索功能的处理

相关案例演示

搜索的模板默认是search.htm位于templet -》default目录下。

 

我试着在模板下,写入arclist标签,从而在得到的搜索页面能够载入更多的信息。

但是,结果却不是这样的,没有返回任何的搜索结果,相反像其它的global list pagelist等标签就有返回相应的数据。

我猜想能不能够使用include标签的。看可不可以返回结果。因此,我就写一个页面。在templets的default目录下。当然也用到arclist标签

{dede:arclist typeid='1'}

[field:title/]

{/dede:arclist}

得到栏目为1的内容标题。

刷新搜索页面后,成功返回结果。因此,我决定看看dedecms的搜索底层处理过程。

/plus/search.php是处理搜索的。

并在页面中载入require_once(DEDEINC."/arc.searchview.class.php");

顺藤摸瓜发现,在searchview类中,

第一   $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm"; 搜索模板

第二   在display方法中有对list pagelist等的处理,因此,直接在搜索模板的页面中写入的list标签处理的有返回结果。

第三   在DedeTagParse类的display中打印getresult返回的值,而在getresult中发现 $this->AssignSysTag(); 进一步发现但载入include时,

就调用DedeTagParse类的includefile方法,很好,快有结果了。最后,在includefile方法中看到

//编译

       if($ismake!="no")

       {

           require_once(DEDEINC."/channelunit.func.php");

           $dtp = new DedeTagParse();

           $dtp->LoadTemplet($okfile);

           MakeOneTag($dtp,$this->refObj);

           $restr = $dtp->GetResult();

       }

此刻,通过makeonetag函数,就可以看到通过include标签载入的文件,并对文件的dedecms标签的处理过程了。

通过,这一次,才知道dedecms的标签处理放在include的taglib目录下。

每日贴出一点知识,就可以多学会一项技巧!


有问题可以加入织梦技术QQ群一起交流学习

本站vip会员 请加入织梦58 VIP②群 PS:加入时备注用户名或昵称

普通注册会员或访客 请加入织梦58 技术交流②群

作者:DEDE58.CC时间:2020-05-23
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制(了解更多)
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ进行交流。
相关织梦教程
QQ在线咨询
双语模板 营销型模板 手机模板 响应式模板