织梦dedecms搜索功能的处理

织梦教程 强烈建议 2024-02-06 14:21 118 0

  搜索的模板默认是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目录下。

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



时间:(2024-02-06 14:21:43)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!