dedecms 实现织梦搜索页面调用 文章功能 – DeDecms


avatar
pcwnas 2023-04-21 186

原文来自:https://www.zixuephp.com

dedecms 实现织梦搜索页面调用 文章功能

直接进入主题,今天使用dedecms织梦开源系统做企业网站,要实现在搜索页面里调用推荐新闻的,但是dedecms织梦在搜索页面里不可以直接使用以下代码调用文章的:

  1. {dede:arclistflag='c'titlelen=42row=6}
  2. [field:title/]
  3. [field:descriptionfunction='cn_substr(@me,80)'/]…
  4. {/dede:arclist}

如是笔者硬是把搜索页面的内核代码完全的看了一遍,终于实现了搜索页面调用“推荐文章”.

为什么搜索页面不能调用新闻呢,下面我来告诉大家,找到arc.searchview.class.php文件,看以下代码:

  1. functionDisplay()
  2. {
  3. foreach($this->dtp->CTagsas$tagid=>$ctag)
  4. {
  5. $tagname=$ctag->GetName();
  6. if($tagname=="list")
  7. {
  8. $limitstart=($this->PageNo-1)*$this->PageSize;
  9. $row=$this->PageSize;
  10. if(trim($ctag->GetInnerText())=="")
  11. {
  12. $InnerText=GetSysTemplets("list_fulllist.htm");
  13. }
  14. else
  15. {
  16. $InnerText=trim($ctag->GetInnerText());
  17. }
  18. $this->dtp->Assign($tagid,
  19. $this->GetArcList($limitstart,
  20. $row,
  21. $ctag->GetAtt("col"),
  22. $ctag->GetAtt("titlelen"),
  23. $ctag->GetAtt("infolen"),
  24. $ctag->GetAtt("imgwidth"),
  25. $ctag->GetAtt("imgheight"),
  26. $this->ChannelType,
  27. $this->OrderBy,
  28. $InnerText,
  29. $ctag->GetAtt("tablewidth"))
  30. );
  31. }
  32. elseif($tagname=="pagelist")
  33. {
  34. $list_len=trim($ctag->GetAtt("listsize"));
  35. if($list_len=="")
  36. {
  37. $list_len=3;
  38. }
  39. $this->dtp->Assign($tagid,$this->GetPageListDM($list_len));
  40. }
  41. elseif($tagname=="likewords")
  42. {
  43. $this->dtp->Assign($tagid,$this->GetLikeWords($ctag->GetAtt('num')));
  44. }
  45. elseif($tagname=="hotwords")
  46. {
  47. $this->dtp->Assign($tagid,lib_hotwords($ctag,$this));
  48. }
  49. elseif($tagname=="field")
  50. {
  51. //类别的指定字段
  52. if(isset($this->Fields[$ctag->GetAtt('name')]))
  53. {
  54. $this->dtp->Assign($tagid,$this->Fields[$ctag->GetAtt('name')]);
  55. }
  56. else
  57. {
  58. $this->dtp->Assign($tagid,"");
  59. }
  60. }
  61. elseif($tagname=="channel")
  62. {
  63. //下级频道列表
  64. if($this->TypeID>0)
  65. {
  66. $typeid=$this->TypeID;$reid=$this->TypeLink->TypeInfos['reid'];
  67. }
  68. else
  69. {
  70. $typeid=0;$reid=0;
  71. }
  72. $GLOBALS['envs']['typeid']=$typeid;
  73. $GLOBALS['envs']['reid']=$typeid;
  74. $this->dtp->Assign($tagid,lib_channel($ctag,$this));
  75. }//Endif
  76. elseif($tagname=="arclist")//这是笔者自己加的代码只要加上这行代码我们就能调用“acrlist”标签
  77. {
  78. MakeOneTag($this->dtp,$this);
  79. }
  80. }
  81. global$keyword,$oldkeyword;
  82. if(!emptyempty($oldkeyword))$keyword=$oldkeyword;
  83. $this->dtp->Display();
  84. }

只要把代码中加注释的那段语句加入arc.searchview.class.php文件里就可以实现搜索页面调用文章.