DedeCMS 核心类TypeLink.class.php摘要笔记

  注:'//+'表示为本人另外加上的注释
  Class TypeLink
  {
  var$typeDir;
  var$dsql;
  var$TypeID;//+类别ID
  var$baseDir;//+站点根网址
  var$modDir;//+模板目录
  var$indexUrl;//+主页链接地址
  var$indexName;//+主页链接名
  var$TypeInfos;//+类目信息
  var$SplitSymbol;//+栏目位置的间隔符号
  var$valuePosition;//+主页>国内>两会动态>(带连接)
  var$valuePositionName;//+主页>国内>两会动态>(不带连接)
  var$OptionArrayList;//+类目下拉列表
  功能一,获得某类目的链接
  代码如下:
  01
  //获得某分类连接的URL
  02
  function GetOneTypeUrl($typeinfos)https://www.exiudaojia.com
  03
  {
  04
  return GetTypeUrl();
  05
  }
  06
  //获得某个类目的超链接信息
  07
  function GetOneTypeLink($typeinfos)
  08
  {
  09
  $typepage=$this->GetOneTypeUrl($typeinfos);
  10
  $typelink="<a href='".$typepage."'>".$typeinfos['typename']."</a>";
  11
  return$typelink;
  12
  }
  功能二,获得某类目的链接列表如:'类目一>类目二>'这样的形式。
  代码如下:
  01
  //islink表示返回的列表是否带连接
  02
  //+SplitSymbol栏目位置的间隔符号dede系统默认为'-'
  03
  function GetPositionLink($islink=true)
  04
  {//+获得主页链接名
  05
  $indexpage="<a href='".$this->indexUrl."'>".$this->indexName."</a>";
  06
  ……
  07
  ……
  08
  else
  09
  {
  10
  if($islink)
  11
  {
  12
  $this->valuePosition=$this->GetOneTypeLink($this->TypeInfos);
  13
  if($this->TypeInfos['reid']!=0)
  14
  {
  15
  //调用递归逻辑
  16
  $this->LogicGetPosition($this->TypeInfos['reid'],true);
  17
  }
  18
  $this->valuePosition=$indexpage.$this->SplitSymbol.$this->valuePosition;
  19
  return$this->valuePosition.$this->SplitSymbol;
  20
  }
  21
  else
  22
  {
  23
  $this->valuePositionName=$this->TypeInfos['typename'];
  24
  if($this->TypeInfos['reid']!=0)
  25
  {
  26
  //调用递归逻辑
  27
  $this->LogicGetPosition($this->TypeInfos['reid'],false);
  28
  }
  29
  return$this->valuePositionName;https://www.exiudaojia.com
  30
  }
  31
  }
  32
  }
  33
  //获得某类目的链接列表,递归逻辑部分
  34
  function LogicGetPosition($id,$islink)
  35
  {
  36
  $this->dsql->SetQuery("SQL查询语句");
  37
  $tinfos=$this->dsql->GetOne();
  38
  if($islink)
  39
  {//+列表带连接
  40
  $this->valuePosition=$this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;
  41
  }
  42
  else
  43
  {//+列表不带连接
  44
  $this->valuePositionName=$tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;
  45
  }
  46
  if($tinfos['reid']>0)
  47
  {//+递归
  48
  $this->LogicGetPosition($tinfos['reid'],$islink);
  49
  }
  50
  }
  功能三,获得类别列表高级搜索功能即highsearch.php即要用到此函数
  代码如下:
  01
  //hid是指默认选中类目,0表示“请选择类目”或“不限类目”
  02
  //oper是用户允许管理的类目,0表示所有类目
  03
  //channeltype是指类目的内容类型,0表示不限频道
  04
  function GetOptionArray($hid=0,$oper=0,$channeltype=0,$usersg=0)
  05
  {
  06
  return$this->GetOptionList($hid,$oper,$channeltype,$usersg);
  07
  }
  08
  function GetOptionList($hid=0,$oper=0,$channeltype=0,$usersg=0)
  09
  {
  10
  return$this->OptionArrayList;
  11
  }
  12
  //+为下级类目递归加上'-'
  13
  function LogicGetOptionArray($id,$step,$oper=0)
  14
  {
  15
  }
  功能四,
  //获得与该类相关的类目,本函数应用于模板标记{dede:channel}{/dede:channel}中
  //$typetype的值为:sun下级分类self同级分类top顶级分类
  代码如下:
  查看源码打印代码帮助
  1
  function GetChannelList($typeid=0,$reid=0,$row=8,$typetype='sun',$innertext='',
  2
  $col=1,$tablewidth=100,$myinnertext='')
  3
  {
  4
  }
  5

原文地址:https://www.cnblogs.com/zqw111/p/13083465.html