php 无限分类,支持缓存分类树

原创
2016-06-08 17:29:33 853浏览

//这个是后台管理当中的分类列表页

//包含无限分类

include ROOT.'include/tree.class.php';

//声明无限分类

$tree = new tree();

//设置缓存目录

$tree->cDir = ROOT.'cache/class/';

//读入分类缓存

$tree->getCache('class');

//获取缓存

$rootArray = $tree->nodes; //分类信息在写入缓存之前,就已经按照顺序排列好了,不需再次生成分类树,可以拿来直接进行输出
复制代码//只有在修改数据库中的分类表时才需要重新生成分类树

//包含无限分类

include ROOT.'include/tree.class.php';

//声明无限分类

$tree = new tree();

//设置缓存目录

$tree->cDir = ROOT.'cache/class/';

//查询数据库,返回分类的ID,名称,父类3个字段

$db->select('all','class','id,name,parent');

//遍历结果集,并压入无限分类

while ($row = $db->record('all'))

{

$tree->newNode($row['id'],$row['name'],(int)$row['parent']); //父类ID需要为数字

}

//生成分类树,并写入缓存

$tree->putCache('class');
复制代码//另一种更简便的重写缓存方式,该代码是删除分类页中的

//包含无限分类

include ROOT.'include/tree.class.php';

//声明无限分类

$tree = new tree();

//设置缓存目录

$tree->cDir = ROOT.'cache/class/';

//读入分类缓存

$tree->getCache('class');

//是否存在该分类

if (isset($tree->nodes[$id]))

{

//生成查询条件

$condition = 'id='.$id;

//获取该分类的子分类ID

$childsId = $tree->getChildsId($id); //如果存在子分类,改方法返回的是一个一维数组,值分别为各子分类的ID,如果不存在子分类,该方法返回false

//如果存在子分类

if ($childsId)

{

//如果子分类存在,连同子分类一同删除

foreach ($childsId as $childId)

{

$condition .= ' or id='.$childId; //生成删除条件

//卸载无限分类中的条目

unset($tree->nodes[$childId]); //直接将分类树中对应ID的分类信息删除

}

}

//开始删除

$db->delete('class',$condition);

//删除该分类在无限分类中条目

unset($tree->nodes[$id]);

//重写无限分类缓存

$tree->putCache('class');

//输出删除成功标记

exit('OK');

} else {

//不存在则输出错误消息

exit('该分类不存在!');

}
复制代码

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:php 分页类函数 下一条:php天气小偷程序,可自动识别IP地址

相关文章

查看更多