增
模型
<?php namespace Admin\Model; use Think\Model; class CategoryModel extends Model { protected $_validate = array( array('cate_name','require','栏目名称必填!',1,regex,3), //默认情况下用正则进行验证 ); public function catetree(){ $data=$this->select(); return $this->resort($data); } public function resort($data,$parentid=0,$level=0){ static $ret=array(); foreach($data as $k=>$v){ if($v['parentid']==$parentid){ $v['level']=$level; $ret[]=$v; $this->resort($data,$v['cate_id'],$level+1); } } return $ret; }
}
控制器
public function add(){ $cate=D('category'); if(IS_POST){ $data['cate_name']=I('cate_name'); $data['cate_ename']=I('cate_ename'); $data['parentid']=I('parentid'); if($cate->create($data)){ if($cate->add()){ $this->success('栏目新增成功',U('lst')); }else{ $this->error('栏目新增失败!'); } }else{ $this->error($cate->getError()); } return; } $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->display(); }
视图
<form method="post" action="" enctype="multipart/form-data"> <table class="tbl" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce" οnmοuseοver="changeto()" οnmοuseοut="changeback()"> <tr> <td height="20" bgcolor="#FFFFFF" class="STYLE6" align="right">栏目名称</td> <td height="20" bgcolor="#FFFFFF" class="STYLE19" align="left"><input name="cate_name" type="text" /></td> </tr> <tr> <td height="20" bgcolor="#FFFFFF" class="STYLE6" align="right">英文名称</td> <td height="20" bgcolor="#FFFFFF" class="STYLE19" align="left"><input name="cate_ename" type="text" /></td> </tr> <tr> <td height="20" bgcolor="#FFFFFF" class="STYLE6" align="right">上级栏目</td> <td class="cd" height="20" bgcolor="#FFFFFF" class="STYLE19" align="left"> <select name="parentid"> <option value="0">顶级栏目</option> <volist name="cateres" id="vo"> <option value="{$vo.cate_id}"><?php echo str_repeat('-',$vo[level]*8);?>{$vo.cate_name}</option> </volist> </select> </td> </tr> <tr> <td height="20" colspan="2" bgcolor="#FFFFFF" class="STYLE6" align="center"><input type="submit" value="确定添加" /></td> </tr> </table> </form>
删
控制器
public function del($cate_id){ $cate=D('category'); if($cate->delete($cate_id)){ $this->success('删除栏目成功!',U('lst')); }else{ $this->error('删除栏目失败!'); } }
视图
<a href="__CONTROLLER__/del/cate_id/{$vo.cate_id}" οnclick="return confirm('您确定要删除该栏目吗?');">删除</a>
改
控制器
public function edit($cate_id){ $cate=D('category'); if(IS_POST){ $data['cate_id']=I('cate_id'); $data['cate_name']=I('cate_name'); $data['cate_ename']=I('cate_ename'); $data['parentid']=I('parentid'); if($cate->create($data)){ if($cate->save()){ $this->success('栏目修改成功',U('lst')); }else{ $this->error('栏目修改失败!'); } }else{ $this->error($cate->getError()); } return; } $cateresa=$cate->find($cate_id); $this->assign('cateresa',$cateresa); $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->display(); }
视图
<form method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="cate_id" value="{$cateresa.cate_id}" /> <table class="tbl" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce" οnmοuseοver="changeto()" οnmοuseοut="changeback()"> <tr> <td height="20" bgcolor="#FFFFFF" class="STYLE6" align="right">栏目名称</td> <td height="20" bgcolor="#FFFFFF" class="STYLE19" align="left"><input name="cate_name" type="text" value="{$cateresa.cate_name}" /></td> </tr> <tr> <td height="20" bgcolor="#FFFFFF" class="STYLE6" align="right">英文名称</td> <td height="20" bgcolor="#FFFFFF" class="STYLE19" align="left"><input name="cate_ename" type="text" value="{$cateresa.cate_ename}" /></td> </tr> <tr> <td height="20" bgcolor="#FFFFFF" class="STYLE6" align="right">上级栏目</td> <td class="cd" height="20" bgcolor="#FFFFFF" class="STYLE19" align="left"> <select name="parentid"> <option value="0">顶级栏目</option> <volist name="cateres" id="vo"> <option <if condition="$cateresa[cate_id] eq $vo[cate_id]">style="display:none;"</if> <if condition="$cateresa[parentid] eq $vo[cate_id]"> selected="selected"</if> value="{$vo.cate_id}"><?php echo str_repeat('-',$vo[level]*8);?>{$vo.cate_name}</option> </volist> </select> </td> </tr> <tr> <td height="20" colspan="2" bgcolor="#FFFFFF" class="STYLE6" align="center"><input type="submit" value="确定修改" /></td> </tr> </table> </form>
查
控制器
public function lst(){ $cate=D('category'); $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->display(); }
视图
<volist name="cateres" id="vo"> <tr> <td height="20" bgcolor="#FFFFFF"><div align="center"> <input type="checkbox" class="selall" name="bdel[]" value="{$vo.cate_id}" /> </div></td> <td height="20" bgcolor="#FFFFFF" class="STYLE6"><div align="center"><span class="STYLE19">{$vo.cate_id}</span></div></td> <td height="20" bgcolor="#FFFFFF" class="STYLE19" align="left" style="padding-left:5px;"><?php echo str_repeat('-',$vo[level]*8);?>{$vo.cate_name}</td> <td height="20" bgcolor="#FFFFFF" class="STYLE19"><div align="center">{$vo.parentid}</div></td> <td height="20" bgcolor="#FFFFFF"><div align="center" class="STYLE21"><a href="__CONTROLLER__/edit/cate_id/{$vo.cate_id}">修改</a> | <a href="__CONTROLLER__/del/cate_id/{$vo.cate_id}" οnclick="return confirm('您确定要删除该栏目吗?');">删除</a></div></td> </tr> </volist>