flea_class(); } /** * 分类管理 */ public function flea_class(){ $fleaclass_model = model('fleaclass'); /** * 删除,编辑 */ if (request()->isPost()){ /** * 删除 */ $check_fleaclass_id_array = input('post.check_fleaclass_id/a');#获取数组 if (input('post.submit_type') == 'del'){ if (!empty($check_fleaclass_id_array)){ if (is_array($check_fleaclass_id_array)){ $del_array = $fleaclass_model->getChildClass($check_fleaclass_id_array); if (is_array($del_array)){ foreach ($del_array as $k => $v){ $fleaclass_model->delFleaclass($v['fleaclass_id']); } } } $this->success(lang('goods_class_index_del_succ')); }else { $this->error(lang('goods_class_index_choose_del')); } } /** * 编辑 */ if (input('post.submit_type') == 'brach_edit'){ if (!empty($check_fleaclass_id_array)){ View::assign('id',implode(',',$check_fleaclass_id_array)); $this->setAdminCurItem('brach_edit'); return View::fetch('brach_edit'); }else { $this->error(lang('goods_class_index_choose_edit')); } } /** * 首页显示 */ if(input('post.submit_type') == 'index_show' or input('post.submit_type') == 'index_hide'){ if (!empty($check_fleaclass_id_array)){ if (is_array($check_fleaclass_id_array)){ $param = array(); $param['fleaclass_index_show'] = input('post.submit_type') == 'index_show'?'1':'0'; foreach ($check_fleaclass_id_array as $k=>$v){ $fleaclass_model->editFleaclass(array('fleaclass_id'=>$v),$param); } } $this->success(lang('goods_class_index_in_homepage').(input('post.submit_type') == 'index_show'?lang('goods_class_index_display'):lang('goods_class_index_hide')).lang('goods_class_index_succ')); }else { $this->error(lang('goods_class_index_choose_in_homepage').(input('post.submit_type') == 'index_show'?lang('goods_class_index_display'):lang('goods_class_index_hide')).lang('goods_class_index_content')); } } } /** * 父ID */ $parent_id = input('fleaclass_parent_id')?input('fleaclass_parent_id'):0; /** * 列表 */ $tmp_list = $fleaclass_model->getTreeClassList(4); $class_list=array(); if (is_array($tmp_list)){ foreach ($tmp_list as $k => $v){ if ($v['fleaclass_parent_id'] == $parent_id){ /** * 判断是否有子类 */ if (isset($tmp_list[$k+1]) && ($tmp_list[$k+1]['deep'] > $v['deep'])){ $v['have_child'] = 1; }else{ $v['have_child'] = 0; } $class_list[] = $v; } } } if (input('ajax') == '1'){ $output = json_encode($class_list); print_r($output); exit; }else { View::assign('class_list',$class_list); $this->setAdminCurItem('index'); return View::fetch('index'); } } /** * 保存批量修改分类 */ public function brach_edit_save(){ if (input('post.fleaclass_show') == '-1'){ $this->success(lang('goods_class_batch_edit_succ'),'fleaclass/flea_class'); } if (request()->isPost()){ $fleaclass_model = model('fleaclass'); $array = explode(',',input('post.id')); if (is_array($array)){ foreach ($array as $k => $v){ $update_array = array(); $update_array['fleaclass_show'] = input('post.fleaclass_show'); $fleaclass_model->editFleaclass(array('fleaclass_id'=>$v),$update_array); } $this->success(lang('goods_class_batch_edit_succ')); }else { $this->success(lang('goods_class_batch_edit_wrong_content')); } }else { $this->success(lang('goods_class_batch_edit_wrong_content')); } } /** * 商品分类添加 */ public function goods_class_add(){ $fleaclass_model = model('fleaclass'); if (request()->isPost()){ /** * 验证 */ $data=[ 'fleaclass_name' =>input('post.fleaclass_name'), 'fleaclass_sort' =>input('post.fleaclass_sort') ]; $fleaclass_validate = ds_validate('fleaclass'); if (!$fleaclass_validate->scene('goods_class_add')->check($data)){ $this->error($fleaclass_validate->getError()); }else { $insert_array = array(); $insert_array['fleaclass_name'] = input('post.fleaclass_name'); $insert_array['fleaclass_parent_id'] = input('post.fleaclass_parent_id'); $insert_array['fleaclass_sort'] = input('post.fleaclass_sort'); $insert_array['fleaclass_show'] = input('post.fleaclass_show'); $insert_array['fleaclass_index_show'] = input('post.fleaclass_index_show'); $result = $fleaclass_model->addFleaclass($insert_array); if ($result){ dsLayerOpenSuccess(lang('goods_class_add_succ')); }else { $this->error(lang('goods_class_add_fail')); } } } /** * 父类列表,只取到第三级 */ $parent_list = $fleaclass_model->getTreeClassList(3); if (is_array($parent_list)){ foreach ($parent_list as $k => $v){ $parent_list[$k]['fleaclass_name'] = str_repeat(" ",$v['deep']*2).$v['fleaclass_name']; } } View::assign('fleaclass_parent_id',input('fleaclass_parent_id')); View::assign('parent_list',$parent_list); $this->setAdminCurItem('add'); return View::fetch('add'); } /** * 编辑 */ public function goods_class_edit() { $fleaclass_model = model('fleaclass'); if (request()->isPost()) { /** * 验证 */ $data = [ 'fleaclass_name' => input('post.fleaclass_name'), 'fleaclass_sort' => input('post.fleaclass_sort') ]; $fleaclass_validate = ds_validate('fleaclass'); if (!$fleaclass_validate->scene('goods_class_edit')->check($data)){ $this->error($fleaclass_validate->getError()); } else { $update_array = array(); $update_array['fleaclass_name'] = input('post.fleaclass_name'); $fleaclass_parent_id = intval(input('post.fleaclass_parent_id')); if ($fleaclass_parent_id) { $update_array['fleaclass_parent_id'] = $fleaclass_parent_id; } $update_array['fleaclass_sort'] = input('post.fleaclass_sort'); $update_array['fleaclass_show'] = input('post.fleaclass_show'); $update_array['fleaclass_index_show'] = input('post.fleaclass_index_show'); $result = $fleaclass_model->editFleaclass(array('fleaclass_id'=>input('post.fleaclass_id')),$update_array); if ($result) { dsLayerOpenSuccess(lang('goods_class_batch_edit_ok')); } else { $this->error(lang('goods_class_batch_edit_fail')); } } } else { $class_array = $fleaclass_model->getOneFleaclass(input('param.fleaclass_id')); if (empty($class_array)) { $this->error(lang('goods_class_batch_edit_paramerror')); } /** * 父类列表,只取到第三级 */ $parent_list = $fleaclass_model->getTreeClassList(3); if (is_array($parent_list)) { $unset_sign = false; foreach ($parent_list as $k => $v) { if ($v['fleaclass_id'] == $class_array['fleaclass_id']) { $deep = $v['deep']; $unset_sign = true; } if ($unset_sign == true) { if ($v['deep'] == $deep && $v['fleaclass_id'] != $class_array['fleaclass_id']) { $unset_sign = false; } if ($v['deep'] > $deep || $v['fleaclass_id'] == $class_array['fleaclass_id']) { unset($parent_list[$k]); } } else { $parent_list[$k]['fleaclass_name'] = str_repeat(" ", $v['deep'] * 2) . $v['fleaclass_name']; } } } View::assign('parent_list', $parent_list); View::assign('class_array', $class_array); $this->setAdminCurItem('add'); return View::fetch('edit'); } } /** * 分类导入 */ public function goods_class_import(){ /** * 实例化模型 */ $fleaclass_model = model('fleaclass'); /** * 导入 */ if (request()->isPost()){ /** * 得到导入文件后缀名 */ $csv_name=explode('.',$_FILES['csv']['name']); $file_type = end($csv_name); if (!empty($_FILES['csv']) && !empty($_FILES['csv']['name']) && $file_type == 'csv'){ $fp = @fopen($_FILES['csv']['tmp_name'],'rb'); /** * 父ID */ $parent_id_1 = 0; while (!feof($fp)) { $data = fgets($fp, 4096); switch (strtoupper(input('post.charset'))){ case 'UTF-8': if (strtoupper(CHARSET) !== 'UTF-8'){ $data = iconv('UTF-8',strtoupper(CHARSET),$data); } break; case 'GBK': if (strtoupper(CHARSET) !== 'GBK'){ $data = iconv('GBK',strtoupper(CHARSET),$data); } break; } if (!empty($data)){ $data = str_replace('"','',$data); /** * 逗号去除 */ $tmp_array = array(); $tmp_array = explode(',',$data); if($tmp_array[0] == 'sort_order')continue; /** * 第一位是序号,后面的是内容,最后一位名称 */ $tmp_deep = 'parent_id_'.(count($tmp_array)-1); $insert_array = array(); $insert_array['fleaclass_sort'] = $tmp_array[0]; $insert_array['fleaclass_parent_id'] = $$tmp_deep; $insert_array['fleaclass_name'] = $tmp_array[count($tmp_array)-1]; $fleaclass_id = $fleaclass_model->addFleaclass($insert_array); /** * 赋值这个深度父ID */ $tmp = 'parent_id_'.count($tmp_array); $$tmp = $fleaclass_id; } } /** * 重新生成缓存 */ $this->success(lang('goods_class_import_succ'),'fleaclass/flea_class'); }else { $this->error(lang('goods_class_import_csv_null')); } } $this->setAdminCurItem('import'); return View::fetch('import'); } /** * 分类导出 */ public function goods_class_export() { /** * 导出 */ if (request()->isPost()) { /** * 实例化模型 */ $fleaclass_model = model('fleaclass'); /** * 分类信息 */ $class_list = $fleaclass_model->getTreeClassList(); @header("Content-type: application/unknown"); @header("Content-Disposition: attachment; filename=flea_class.csv"); if (is_array($class_list)) { foreach ($class_list as $k => $v) { $tmp = array(); /** * 序号 */ $tmp['fleaclass_sort'] = $v['fleaclass_sort']; /** * 深度 */ for ($i = 1; $i <= ($v['deep'] - 1); $i++) { $tmp[] = ''; } /** * 分类名称 */ $tmp['fleaclass_name'] = $v['fleaclass_name']; /** * 转码 utf-gbk */ if (strtoupper(CHARSET) == 'UTF-8') { switch (input('post.if_convert')) { case '1': $tmp_line = iconv('UTF-8', 'GB2312//IGNORE', join(',', $tmp)); break; case '0': $tmp_line = join(',', $tmp); break; } } else { $tmp_line = join(',', $tmp); } $tmp_line = str_replace("\r\n", '', $tmp_line); echo $tmp_line . "\r\n"; } } exit; } else { $this->setAdminCurItem('export'); return View::fetch('export'); } } /** * 删除分类 */ public function goods_class_del(){ $fleaclass_model = model('fleaclass'); $fleaclass_id = input('get.fleaclass_id'); if ($fleaclass_id > 0){ /* 删除分类 */ $fleaclass_model->delFleaclass($fleaclass_id); ds_json_encode(10000, lang('goods_class_index_del_succ')); }else { ds_json_encode(10001, lang('goods_class_index_choose_del')); } } /** * ajax操作 */ public function ajax(){ switch (input('branch')){ /** * 验证是否有重复的名称 */ case 'goods_class_name': $fleaclass_model = model('fleaclass'); $class_array = $fleaclass_model->getOneFleaclass(input('id')); $condition = array(); $condition[] = array('fleaclass_name','=',input('param.value')); $condition[] = array('fleaclass_parent_id','=',$class_array['fleaclass_parent_id']); $condition[] = array('fleaclass_id','not in',input('param.id')); $class_list = $fleaclass_model->getFleaclassList($condition); if (empty($class_list)){ $update_array = array(); $update_array['fleaclass_name'] = input('value'); $fleaclass_model->editFleaclass(array('fleaclass_id'=> intval(input('param.id'))),$update_array); echo 'true';exit; }else { echo 'false';exit; } break; /** * 分类 排序 显示 设置 */ case 'goods_class_sort': case 'goods_class_show': case 'goods_class_index_show': $fleaclass_model = model('fleaclass'); $update_array = array(); $update_array[input('column')] = input('value'); $fleaclass_model->editFleaclass(array('fleaclass_id'=>intval(input('param.id'))),$update_array); echo 'true';exit; break; /** * 添加、修改操作中 检测类别名称是否有重复 */ case 'check_class_name': $fleaclass_model = model('fleaclass'); $condition = array(); $condition[] = array('fleaclass_name','=',input('param.fleaclass_name')); $condition[] = array('fleaclass_parent_id','=',input('param.fleaclass_parent_id')); $condition[] = array('fleaclass_id','not in',input('param.fleaclass_id')); $class_list = $fleaclass_model->getFleaclassList($condition); if (empty($class_list)){ echo 'true';exit; }else { echo 'false';exit; } break; } } protected function getAdminItemList() { $menu_array = array( array( 'name' => 'index', 'text' => lang('ds_manage'), 'url' => (string)url('Fleaclass/flea_class') ), array( 'name' => 'add', 'text' => lang('ds_add'), 'url' => "javascript:dsLayerOpen('".(string)url('Fleaclass/goods_class_add')."','".lang('ds_add')."')" ), array( 'name' => 'export', 'text' => lang('ds_export'), 'url' => (string)url('Fleaclass/goods_class_export') ), array( 'name' => 'import', 'text' => lang('ds_import'), 'url' => (string)url('Fleaclass/goods_class_import') ), ); return $menu_array; } }