织梦栏目页调用-dede织梦cms栏目下的子栏目分页显示的实现方法

大家都知道dede程序自带一个栏目下的文章分页功能。 这个分页非常简单。 只要正确使用 dede 标签即可。 但是,如果您想对列下的子列进行分页怎么办? 比如有一个应用场景,某个栏目下有很多子栏目,无法在一页上显示,必须分页显示。 遇到这样的情况怎么办? 这肯定需要修改dede源代码。 如何修改呢? 应该更改哪些文件? 你会想到在网上寻找相关的教程,但是网上几乎没有品类栏目的分页教程。 今天钱网科技为您提供dede栏目下子栏目分页显示的实现方法。

要完成这个功能,只需要修改include文件夹中的arc.listview.class.php文件即可。 该文件是用于列内容列表的文件。 用于生成列列表的静态文件,该文件中有两个文件。 关键函数,一个是MakeHtml函数,另一个是GetArcList函数。 MakeHtml是主要的控制函数。 生成多少个页面、每页有多少篇文章、当前是哪个页面等都是在这个函数中完成的,而一个页面的具体文章内容是通过GetArcList获取的。 GetArcList函数返回当前页面文章的html代码。 了解了这两个函数之后,我们就知道如何完成我们想要的功能了。 我们来整理一下吧。 类别栏分页实际上是将类别列表中的内容替换为类别栏,所以我们需要修改的是总页数和一页的具体内容html。 下面我们贴出具体的代码来分析一下过程。

在MakeHtml函数中执行自定义函数CheckChannel。 作用是控制当前栏目列表内容是默认文章内容还是子栏目内容。 如果我们要在ID为1的列列表下显示的内容是它的子列,那么我们的代码是这样写的:


	function CheckChannel()
 {
  $sql="SELECT id FROM `dede_arctype` where reid=".$this->TypeID." and reid=1";
  $this->dsql->SetQuery($sql);
  $this->dsql->Execute();
  while($arr =$this->dsql->GetArray()) {
   $this->ChannelIds[]=$arr['id'];
  }
  if(count($this->ChannelIds)>0)
  {
   $this->TotalResult=count($this->ChannelIds);
  }
 }

织梦如何给栏目增加缩略图_织梦栏目页调用_织梦栏目描述调用

该函数的作用是获取ID为1的子列的ID集合,并将其存储在变量ChannelIds中。 如果集合不为空,则修改总页数,即TotalResult的值。

织梦栏目页调用_织梦栏目描述调用_织梦如何给栏目增加缩略图

然后执行GetArcList函数中的一段代码。 代码判断上述变量ChannelIds是否为空。 如果不为空织梦栏目页调用,则返回自定义函数GetArcString返回的值。 作用是,如果上面的变量ChannelIds不为空,那么GetArcList函数返回的内容就是变量ChannelIds中所有ID对应的类别的内容。 该函数的具体代码如下:

织梦栏目描述调用_织梦如何给栏目增加缩略图_织梦栏目页调用


	function GetArcString($limitstart,$row)
 {
  $html='';
  preg_match("/{dede:list.+?}([sS]+?){/dede:list}/",$this->dtp->SourceString,$m);
  $ids=join(',',$this->ChannelIds);
  $query="SELECT * FROM `dede_arctype` where id in ($ids) order by id desc limit $limitstart,$row";
  $this->dsql->SetQuery($query);
  $this->dsql->Execute();
  while($arr=$this->dsql->GetArray())
  {
   $str=$m[1];
   $str=str_replace('[field:title/]',$arr['typename'],$str);
   $str=str_replace('[field:arcurl/]',$arr['siteurl'],$str);
   $str=str_replace('[field:keywords/]',$arr['keywords'],$str);
   $html.=$str;
  }
  return $html;
 }

织梦如何给栏目增加缩略图_织梦栏目页调用_织梦栏目描述调用

该函数的作用是通过正则规则获取当前模板的列表部分的html代码,然后查询ChannelIds中对应的子栏目,并根据已有的模板代码组合所有子栏目的html代码,并归还它。

通过添加这两个自定义函数,就可以完成子栏目分页显示的功能。 如果您在使用过程中有任何疑问织梦栏目页调用,可以联系钱网科技客服QQ。 小问题我们可以免费指导,大问题我们可以提供有偿服务。 未来,钱网科技将会发布更多关于dede二次开发的教程。 希望大家多多关注钱网科技!

本文由钱网科技湘潭网站建设原创。 转载请保留此地址! 否则将视为侵权,谢谢合作!