ThinkPHP的无限分类


 首先看数据库表:xp_cate


ThinkPHP的无限分类_第1张图片

  控制器: CateAction.class.php
  <?php
  class CateAction extends Action{
  function index(){
  $cate=M('Cate');
  $list=$cate->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select();
  foreach($list as $key=>$value){
  $list[$key]['count']=count(explode('-',$value['bpath']));
  }
  $this->assign('alist',$list);
  $this->display();
  }//添加栏目
  function add(){
  $cate=new CateModel();if($vo=$cate->create()){
  if($cate->add()){
  $this->success('添加栏目成功');
  }else{
  $this->error('添加栏目失败');
  }
  }else{
  $this->error($cate->getError());
  }
  }}
  ?>


  模型:CateModel.class.php
  <?php
  class CateModel extends Model{//对应数据库中的表xp_cate
  protected $_auto=array(
  array('path','tclm',3,'callback'),
  );function tclm(){
  $pid=isset($_POST['pid'])?(int)$_POST['pid']:0;
  echo ($pid);
  if($pid==0){
  $data=0;
  }else{
  $list=$this->where("id=$pid")->find();
  $data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id
  }
  return $data;
  }
  }
  ?>


  模板:index.html
  <form action="__URL__/add" method="post">
  请选择父级栏目:<select name="pid" size="20">
  <option value="0">根栏目</option>
  <volist name="alist" id="vo">
  <option value="{$vo['id']}">
  <for start="0" end="$vo['count']">
  &nbsp; 
  </for>
  {$vo['name']}
  </option>
  </volist>
  </select><br />
  新的栏目名称:<input type="text" name="name" /><br />
  <input type="submit" value="添加栏目" />

  </form>


你可能感兴趣的:(ThinkPHP的无限分类)