首页 > 其他 > 详细

时间: 2014年4月1日16:17:28 栏目删除功能完善

时间:2014-04-02 01:51:59      阅读:546      评论:0      收藏:0      [点我收藏+]


一、解决删除上级目录,其子目录仍有内容,

/*

1 要判断该栏目是否有子栏目,如果有子栏目,不能删除

思路:无限极分类,查子栏目,子孙栏目,家谱树

可以在model里写一个方法,查子栏目,判断是否有子栏目

*/

修改CatModel.class.php ,增加查找子栏目功能

   public function getSon($id){

       $sql = ‘select cat_id,cat_name,parent_id from ‘.$this->table.‘ where parent_id = ‘.$id;

       return $this->db->getAll($sql);

   }

修改catedel.php,增加判断是否有子栏目

$res = $cat->getSon($cat_id);

if (!empty($res)) {

exit(‘有子栏目删除失败!‘);

}

二 解决:栏目编辑,栏目选择上的混乱

一个栏目A,不能修改成A的子孙栏目的子栏目

思考:

如果BA的后代,则A不能成为B的子栏目

反之,如果BA的后代,则AB 的祖先

因此,我们为A设定一个新的父栏目时,设为N

先查找N的家谱树,

如果N 的家谱树里,如果有A ,那么子孙差辈了

修改CatModel.class.php ,增加查找家谱树功能

   //查找家谱树

   public function getTree($id){

       $trees = array();

       $res = $this->select();

       while ($id>0) {

           foreach($res as $v){

               if ($v[‘cat_id‘] == $id) {

                   $trees[] = $v;

                   $id = $v[‘parent_id‘];

                   break;

               }

           }

       }

       return $trees;

   }

修改cateditAct.php ,增加判断在新选择的父栏目的家谱树中,是否存在子栏目

//查找新父栏目的家谱树

$trees = $cat->getTree($data[‘parent_id‘]);

//判断自身是否在新父栏目的家谱树中

//如果存在,那么自身就是新父栏目的父栏目,不允许修改

$flag = true;

foreach($trees as $v){

if ($v[‘cat_id‘] == $cat_id) {

$flag = false;

break;

}

}

if (!$flag) {

echo "父栏目选取失败";

exit;

}


本文出自 “杜国栋个人PHP学习博文” 博客,请务必保留此出处http://duguodong.blog.51cto.com/7667978/1388574

时间: 2014年4月1日16:17:28 栏目删除功能完善,布布扣,bubuko.com

时间: 2014年4月1日16:17:28 栏目删除功能完善

原文:http://duguodong.blog.51cto.com/7667978/1388574

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!