<?php
include_once('objectPage.php');
class ctl_virtualcat extends objectPage{

    var $workground = 'goods';
    var $object = 'goods/virtualcat';
    var $finder_action_tpl = 'product/finder_action.html';
    var $finder_filter_tpl = 'product/finder_filter.html';
    var $allowImport = true;
    var $ioType = 'goods';

    function addNew($id=0){
        $this->path[] = array('text'=>__('商品虚拟分类新增'));
        $vobjCat = &$this->system->loadModel('goods/virtualcat');
        $objCat = &$this->system->loadModel('goods/productCat');
        $aCat = $vobjCat->get_virtualcat_list(true);
        $aCatNull[] = array('cat_id'=>0,'cat_name'=>__('----无----'),'step'=>1);
        if(empty($aCat)){
            $aCat = $aCatNull;
        }else{
            $aCat = array_merge($aCatNull, $aCat);
        }
        $this->pagedata['catList'] = $aCat;
        $this->pagedata['gtypes'] = $objCat->getTypeList();
        $oGtype = &$this->system->loadModel('goods/gtype');
        $this->pagedata['gtype']['status'] = $oGtype->checkDefined();
        if($id){
            $aCat = $this->model->instance($id);
            $this->pagedata['cat']['parent_id'] = $aCat['virtual_cat_id'];
            $this->pagedata['cat']['type_id'] = $aCat['type_id'];
        }else{
            $aTmp = $oGtype->getDefault();
            $this->pagedata['cat']['type_id'] = $aTmp[0]['type_id'];
        }
        $this->pagedata['cat']['p_order'] = 0;

        $this->page('product/virtualcat/info.html');
    }

    function doAdd(){
        $this->begin('index.php?ctl=goods/virtualcat&act=index');
        $objCat = &$this->system->loadModel('goods/virtualcat');
        $cat = $_POST['cat'];
        $cat['virtualcat_template'] = $_POST['virtualcat_template'];
        if($objCat->addNew($cat)){
            $this->end(true,__('保存成功'));
        }else{
            $this->end(false,__('保存失败'));

        }
    }
    function doImport(){

        if(!is_array($_POST['cat']) || empty($_POST['cat'])){
            $this->splash('failed', 'index.php?ctl=goods/virtualcat&act=import', __('请选择商品分类源节点'));
        }else{
            $this->begin('index.php?ctl=goods/virtualcat&act=index');
            foreach($_POST['cat'] as $key=>$v){
                if($v){
                    $search[]=$v;
                }
            }
            $objCat = &$this->system->loadModel('goods/virtualcat');
            $this->end($objCat->doImport($search,$_POST['vCat_id'],$_POST['defaultfilter']),__('保存成功'));
        }
    }
    function import(){
        $vobjCat = &$this->system->loadModel('goods/virtualcat');
        $aCat = $vobjCat->get_virtualcat_list(true);
        $objCat = &$this->system->loadModel('goods/productCat');
        $this->pagedata['tree']=$objCat->getMapTree(0,'');

        $aCatNull[] = array('cat_id'=>0,'cat_name'=>__('根目录'),'step'=>1);
        if(empty($aCat)){
            $aCat = $aCatNull;
        }else{
            $aCat = array_merge($aCatNull, $aCat);
        }
        $this->pagedata['catList'] = $aCat;
        $this->page('product/virtualcat/import.html');
    }

    function getGoodsCatById($cat_id=0){
        $vobjCat = &$this->system->loadModel('goods/virtualcat');
        echo json_encode($vobjCat->getGoodsCatById($cat_id));

    }


    function edit($catid){
        $this->path[] = array('text'=>__('商品虚拟分类编辑'));
        $vobjCat = &$this->system->loadModel('goods/virtualcat');
        $objCat = &$this->system->loadModel('goods/productCat');
        //$aCat = $vobjCat->getFieldById($catid);
        $aCat = $this->model->instance($catid);
        $this->pagedata['virtual_cat_name'] = $aCat['virtual_cat_name'];
        $aCat['addon'] = unserialize($aCat['addon']);
        $this->pagedata['cat'] = $aCat;
        $aCat = $vobjCat->get_virtualcat_list(true);
        $aCatNull[] = array('cat_id'=>0,'cat_name'=>__('----无----'),'step'=>1);
        $aCat = array_merge($aCatNull, $aCat);
        $this->pagedata['catList'] = $aCat;
        $this->pagedata['gtypes'] = $objCat->getTypeList();
        $oGtype = &$this->system->loadModel('goods/gtype');
        $this->pagedata['gtype']['status'] = $oGtype->checkDefined();

        $this->page('product/virtualcat/info.html');
    }




    function index(){
        $objCat = &$this->system->loadModel('goods/virtualcat');
        if($objCat->checkTreeSize()){
            $this->pagedata['hidenplus']=true;
        }

        $tree=$objCat->get_virtualcat_list();
        $this->pagedata['tree_number']=count($tree);
        foreach($tree as $k=>$v){
           parse_str($v['filter'],$filter);
           $link = array();
           foreach($filter as $n=>$f){
               if($n=='pricefrom'&&!$f){
                   $link[$n] = array('v'=>0,'t'=>$v['cat_name']);
               }
               if($f){
                    //(is_array($f)?implode(',',$f):$f)
                   $link[$n] = array('v'=>$f,'t'=>$v['cat_name']);
               }
           }
           $tree[$k]['link'] = $link;
        }
        $this->pagedata['tree']=&$tree;
        $depath=array_fill(0,$objCat->get_virtualcat_depth(),'1');
        $this->pagedata['depath']=$depath;
        $this->page('product/virtualcat/map.html');

    }

    function getChildCat($pid){
        $pid = $_POST['pid'];
        $objType=&$this->system->loadModel('goods/virtualcat');
        $this->pagedata['tree']=$objType->getTreeList($pid, false);
        $this->display('product/virtualcat/rows.html');
    }


    function toRemove($id){

        $this->begin('index.php?ctl=goods/virtualcat&act=index');
        $objType=&$this->system->loadModel('goods/virtualcat');
        $this->end($objType->toRemove($id),__('分类删除成功'));
    }

    function update(){

        $this->begin('index.php?ctl=goods/virtualcat&act=index');
        $objType=&$this->system->loadModel('goods/virtualcat');
        $this->end($objType->updateOrder($_POST['p_order']), __('更新成功'));
    }
}
?>