/cms/admin/Lib/Action/CategoryAction.class.php
http://iiccms.googlecode.com/ · PHP · 195 lines · 150 code · 10 blank · 35 comment · 19 complexity · cb6c26ecbf9a7f95ba6f749c7ebc8c87 MD5 · raw file
- <?php
- class CategoryAction extends GlobalAction
- {
- protected $dao, $category;
- function _initialize()
- {
- parent::_initialize();
- $getData = getCache('Module');
- //??????
- foreach ((array)$getData as $rw){
- if(!in_array($rw['module_name'], array('Menu','Tags','Comment','Admin','Theme','AdminRole','Module','Config','Database','AdminLog','Tools','Label'))){
- $data['module'][] = $rw;
- }
- }
- $this->assign($data);
- $this->dao = D('Category');
- $this->category = $this->dao->Order('display_order DESC,id DESC')->findAll();
-
- }
-
- /**
- * ??
- *
- */
- public function index()
- {
- parent::_checkPermission();
- $dataList = getCategory($this->category);
- if($dataList != false)
- {
- $this->assign('dataList',$dataList);
- }
- parent::_sysLog('index');
- $this->display();
- }
-
- /**
- * ??
- *
- */
- public function insert()
- {
- parent::_checkPermission('Category_insert');
- $dataList = getCategory($this->category);
- $parentId = trim($_GET['parentId']);
- $this->assign('parentId', $parentId);
- $this->assign('dataList', $dataList);
- $this->display();
- }
-
- /**
- * ????
- *
- */
- public function doInsert()
- {
- parent::_checkPermission('Category_insert');
- parent::_setMethod('post');
- if($daoCreate = $this->dao->create())
- {
- //????????????
- $this->dao->module = empty($_POST['parent_id']) ? $_POST['module'] : '' ;
- $daoAdd = $this->dao->add();
- if(false !== $daoAdd)
- {
- writeCache('Category');
- parent::_sysLog('insert', "??:$daoAdd");
- parent::_message('success', '????');
- }else
- {
- parent::_message('error', '????');
- }
- }else
- {
- parent::_message('error', $this->dao->getError());
- }
- }
-
- /**
- * ??
- *
- */
- public function modify()
- {
- parent::_checkPermission('Category_modify');
- $item = intval($_GET['id']);
- $record = $this->dao->Where('id='.$item)->find();
- if(empty($item) || empty($record)) parent::_message('error', '?????');
- $dataList = getCategory($this->category);
- $this->assign('vo', $record);
- $this->assign('dataList', $dataList);
- $this->display();
- }
-
- /**
- * ????
- *
- */
- public function doModify()
- {
- parent::_checkPermission('Category_modify');
- parent::_setMethod('post');
- $item = intval($_POST['id']);
- $parentId = intval($_POST['parent_id']);
- empty($item) && parent::_message('error', '?????');
- //??????????
- $this->parentTrue($item, $parentId);
- if($daoSave = $this->dao->create())
- {
- //????????????
- $this->dao->module = empty($_POST['parent_id']) ? $_POST['module'] : '' ;
- $daoSave = $this->dao->save();
- if(false !== $daoSave)
- {
- writeCache('Category');
- parent::_sysLog('modify', "??:$item");
- parent::_message('success', '????');
- }else
- {
- parent::_message('error', '????');
- }
- }else
- {
- parent::_message('error', $this->dao->getError());
- }
- }
-
- /**
- * ??????????
- * ???????????????????
- * @param unknown_type $item
- * @param unknown_type $parentId
- */
- public function parentTrue($item = 0, $parentId = 0)
- {
- $subCategory = getCategory($this->category, $item);
- if(empty($subCategory)){
- $getCategory[] = $item;
- }else{
- foreach ((array)$subCategory as $row){
- $getCategory[] = $row['id'];
- }
- //???ID??????
- array_push($getCategory, $item);
- }
- if (in_array($parentId, $getCategory)) parent::_message('error', '??????????????????????????!', 0, 5);
- }
-
- /**
- * ????
- *
- */
- public function doCommand()
- {
- parent::_checkPermission('Category_command');
- if(getMethod() == 'get'){
- $operate = trim($_GET['operate']);
- }elseif(getMethod() == 'post'){
- $operate = trim($_POST['operate']);
- }else{
- parent::_message('error', '???POST,GET??');
- }
- switch ($operate){
- case 'delete':
- $idArr = $_POST['id'];
- if(!empty($idArr)){
- foreach ((array)$idArr as $row){
- $check = $this->dao->Where('id='.$row)->find();
- if($check['protected'] == 1){
- parent::_message('error', "{$row} ??????????????????????", 0, 5);
- }else{
- $subCategory = getCategory($this->category, $row);
- foreach ((array)$subCategory as $subId){
- $imlodeSub[] = $subId['id'];
- }
- $implodeArr = implode(',', $imlodeSub);
- $deleteArr = empty($implodeArr) ? $row : $implodeArr.','.$row;
- $this->dao->Where("id IN({$deleteArr})")->delete();
-
- self::_sysLog('delete', "??: {$deleteArr}");
- parent::_message('success', "{$deleteArr} ????");
- }
- }
-
- }else {
- parent::_message('error', '?????????') ;
- }
- break;
- case 'setStatus': parent::_setStatus('set');break;
- case 'unSetStatus': parent::_setStatus('unset');break;
- case 'update': parent::_batchModify(0, $_POST, array('display_order'), __URL__, 'Category', 'display_order DESC,id DESC');break;
- default: parent::_message('error', '??????') ;
- }
- }
- }