商城开发(3)_栏目管理
这里我们先定义一个cateModel.class.php文件。存在在model文件夹下。
(1)获取无限级分类
为了以树状的形式显示无限级分类,我们需要创建两个方法。
一个是获取所有的分类,返回一个二维数组。
public function select() { $sql = 'select cat_id,cat_name,parent_id from ' . $this->table; return $this->db->getAll($sql); }
第二个是将无限级分类树状格式化。传入一个数组,并传入开始的id值和层级标识符lev
public function getCatTree($arr,$id = 0,$lev=0) { $tree = array(); foreach($arr as $v) { if($v['parent_id'] == $id) { $v['lev'] = $lev; $tree[] = $v; $tree = array_merge($tree,$this->getCatTree($arr,$v['cat_id'],$lev+1)); } } return $tree; }
(2).栏目的添加方法
将需要添加的栏目的相关信息封装到一个数组中,然后将数组的值再通过定义的函数添加到数据库中。
public function add($data) { return $this->db->autoExecute($this->table,$data); }
(3)栏目的删除方法方法
删除栏目,则是将需要删除的栏目的id传过来,进行删除。但是在删除的过程中,首先要判断是否还有子栏目,若有,则不需删除。
在通过判断后,子栏目为空,则可以进行删除。
public function getSon($id) { $sql = 'select cat_id,cat_name,parent_id from ' . $this->table . ' where parent_id=' . $id; return $this->db->getAll($sql); }
public function delete($cat_id){ $sql='delete from '.$this->table . ' where cat_id='.$cat_id; $this->db->query($sql); return $this->db->affected_rows(); } }
(4)栏目的编辑
先到栏目列表页,点击编辑,通过传递的cat_id值则可以判断是修改哪个栏目。然后通过find()方法,找出相关信息catinfo。修改好后跳转到修改处理页面。进行修改。
1)先找到所需要修改的栏目信息。
public function find($cat_id){ $sql='select * from '.$this->table . ' where cat_id='.$cat_id; return $this->db->getRow($sql); }
$cat_info=$cat->find($cat_id);
2)将修改好的内容传递给处理页面,进行修改。在此之前要判断修改后的父栏目是不是以前的子孙栏目。所以先判断他的家谱树。
public function getTree($id=0){ $tree=array(); $cats=$this->select(); while($id>0){ foreach($cats as $v){ if($v['cat_id']==$id){ $tree[]=$v; $id=$v['parent_id']; break; } } } return $tree; }
然后开始删除工作
public function delete($cat_id){ $sql='delete from '.$this->table . ' where cat_id='.$cat_id; $this->db->query($sql); return $this->db->affected_rows(); }
这样就完成了对商城栏目的增删改查工作。