专注前端,专注网页设计制作 - (承接网页制作/模板制作/设计) QQ:755150799 织梦模板 | 网页特效 | 网站模板 | 建站教程 | TOP排行榜 | Tag标签 | 联系我们
当前位置: 网站首页 > 建站教程 > dedeCMS教程 > >

dedecms搜索功能的处理

时间:2014-06-07来源:学技巧网站制作 作者:学技巧 阅读: 次 【 点评一下

织梦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目录下。

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

分享到:
  • 用微信  “扫一扫”

    将文章分享到朋友圈。

    关注公众号:xue-jiqiao

本文版权归原作者所有,转载请注明原文来源出处,学技巧网站制作感谢您的支持!