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


Posted in PHP onApril 07, 2010

注:'//+' 表示为本人另外加上的注释
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; //+ 类目下拉列表
功能一,获得某类目的链接

//获得某分类连接的URL 
function GetOneTypeUrl($typeinfos) 
{ 
return GetTypeUrl(); 
} 
//获得某个类目的超链接信息 
function GetOneTypeLink($typeinfos) 
{ 
$typepage = $this->GetOneTypeUrl($typeinfos); 
$typelink = "<a href='".$typepage."'>".$typeinfos['typename']."</a>"; 
return $typelink; 
}

功能二,获得某类目的链接列表 如:'类目一>类目二>' 这样的形式。
//islink 表示返回的列表是否带连接 
//+ SplitSymbol 栏目位置的间隔符号 dede系统默认为'-' 
function GetPositionLink($islink=true) 
{ //+ 获得 主页链接名 
$indexpage = "<a href='".$this->indexUrl."'>".$this->indexName."</a>"; 
…… 
…… 
else 
{ 
if($islink) 
{ 
$this->valuePosition = $this->GetOneTypeLink($this->TypeInfos); 
if($this->TypeInfos['reid']!=0) 
{ 
//调用递归逻辑 
$this->LogicGetPosition($this->TypeInfos['reid'],true); 
} 
$this->valuePosition = $indexpage.$this->SplitSymbol.$this->valuePosition; 
return $this->valuePosition.$this->SplitSymbol; 
} 
else 
{ 
$this->valuePositionName = $this->TypeInfos['typename']; 
if($this->TypeInfos['reid']!=0) 
{ 
//调用递归逻辑 
$this->LogicGetPosition($this->TypeInfos['reid'],false); 
} 
return $this->valuePositionName; 
} 
} 
} 
//获得某类目的链接列表,递归逻辑部分 
function LogicGetPosition($id,$islink) 
{ 
$this->dsql->SetQuery(" SQL查询语句 "); 
$tinfos = $this->dsql->GetOne(); 
if($islink) 
{ //+ 列表带连接 
$this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition; 
} 
else 
{ //+ 列表不带连接 
$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName; 
} 
if($tinfos['reid']>0) 
{ //+ 递归 
$this->LogicGetPosition($tinfos['reid'],$islink); 
} 
}

功能三, 获得类别列表 高级搜索功能 即highsearch.php 即要用到此函数
//hid 是指默认选中类目,0 表示“请选择类目”或“不限类目” 
//oper 是用户允许管理的类目,0 表示所有类目 
//channeltype 是指类目的内容类型,0 表示不限频道 
function GetOptionArray($hid=0,$oper=0,$channeltype=0,$usersg=0) 
{ 
return $this->GetOptionList($hid,$oper,$channeltype,$usersg); 
} 
function GetOptionList($hid=0,$oper=0,$channeltype=0,$usersg=0) 
{ 
return $this->OptionArrayList; 
} 
//+ 为下级类目递归加上 '-' 
function LogicGetOptionArray($id, $step, $oper=0) 
{ 
}

功能四,
//获得与该类相关的类目,本函数应用于模板标记{dede:channel}{/dede:channel}中
//$typetype 的值为: sun 下级分类 self 同级分类 top 顶级分类
function GetChannelList($typeid=0,$reid=0,$row=8,$typetype='sun',$innertext='', 
$col=1,$tablewidth=100,$myinnertext='') 
{ 
} 
}
PHP 相关文章推荐
一个目录遍历函数
Oct 09 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
php判断变量类型常用方法
Apr 24 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
通俗易懂的php防注入代码
Apr 07 #PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 #PHP
用PHP实现读取和编写XML DOM代码
Apr 07 #PHP
php session和cookie使用说明
Apr 07 #PHP
DedeCMS dede_channeltype表字段注释
Apr 07 #PHP
php抓取https的内容的代码
Apr 06 #PHP
php中几种常见安全设置详解
Apr 06 #PHP
You might like
无限级别菜单的实现
2006/10/09 PHP
聊天室php&amp;mysql(二)
2006/10/09 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
基于php判断客户端类型
2016/10/14 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
Python三元运算实现方法
2015/01/12 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
学Python 3的理由和必要性
2019/11/19 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
Ruby如何定义一个类
2012/10/08 面试题
科研先进个人典型材料
2014/01/31 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
php解析非标准json、非规范json的方式实例
2022/05/10 PHP
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android