예제 #1
0
 /**
  * function  add,copy,move,share .... shop in folder
  * 
  */
 public function copy($call = null)
 {
     APP::import("Model", array("FolderShare"));
     $folder_id = @$this->request->data['folder_id'];
     $this->new_shop = array();
     if (!$folder_id) {
         return $this->responseNg('invalid params.');
     }
     $folderData = $this->FolderUser->findById($folder_id);
     if (!empty($call)) {
         if ($call == ADDSHOP || $call == CUT_SHOP) {
             $params = array('conditions' => array('FolderShop.shop_id' => @$this->request->data['shop_id'], 'FolderShop.folder_id' => @$this->request->data['folder_id']));
             $result = $this->FolderShop->find('first', $params);
             if (!empty($result)) {
                 $this->request->data["message_errors"] = "この店舗は既に追加されています。";
                 return FALSE;
             }
         }
         APP::import("Model", array("FolderShare"));
         $folderShare = new FolderShare();
         $folderShareData = $folderShare->find("first", array('joins' => array(array('table' => 'folders', 'alias' => 'FolderUser', 'type' => 'INNER', 'conditions' => array('FolderUser.id = FolderShare.folder_id', 'FolderUser.type_folder' => FOLDER_NORMAL))), "conditions" => array("FolderShare.folder_id" => $folder_id, "FolderShare.user_id" => $this->user_id)));
         if (!empty($folderShareData["FolderShare"]["id"])) {
             $folderShare->delete($folderShareData["FolderShare"]["id"]);
             $buffer_Folder = $folder = $this->FolderUser->findById($folder_id);
             $oldFolder = array();
             if (!$folder) {
                 return false;
             }
             $folder['FolderUser']['id'] = NULL;
             $folder['FolderUser']['user_id'] = $this->user_id;
             if ($call == CHANGE_FOLDER) {
                 $folder['FolderUser']['type_folder'] = FOLDER_SECRET;
             }
             if ($call == RENAME) {
                 $folder['FolderUser']['name'] = $this->request->data['name'];
             }
             $saveFolder = $this->FolderUser->save($folder);
             if (!$saveFolder) {
                 return false;
             }
             $shop_id = NULL;
             switch ($call) {
                 case ADDSHOP:
                     $shop_id = $this->addFriendshop($folder_id, $saveFolder);
                     break;
                 case CUT_SHOP:
                     $shop_id = $this->cutFriendshop($folder_id, $saveFolder);
                     break;
                 case ADD_INPUT_SHOP:
                     $shop_id = $this->inputFriendshop($folder_id, $saveFolder);
                     break;
                 case UPDATE:
                     $shops = @$this->request->data['shops'];
                     if (!empty($shops)) {
                         $shops_arr = explode(',', $shops);
                         $shop_id = $this->updateFriendshop($saveFolder, $shops_arr);
                     } else {
                         return $saveFolder["FolderUser"]["id"];
                     }
                     break;
                 case UPLOAD:
                     $shop_id = $this->uploadFriendshop($folder_id, $saveFolder);
                     break;
                 case MOVE_SHOP:
                     $shop_id = $this->moveFriendshop($folder_id, $saveFolder);
                     break;
                 case CHANGE_FOLDER:
                     $shop_id = $this->changeFriendFolder($folder_id, $saveFolder);
                     break;
                 case RENAME:
                     $shop_id = $this->renameFriendFolder($folder_id, $saveFolder);
                     break;
             }
             if (!empty($this->new_shop)) {
                 return $this->saveShopFolder($saveFolder, $shop_id, $call, $buffer_Folder);
             }
         } else {
             switch ($call) {
                 case ADDSHOP:
                     return $this->addMyShop($folder_id, $folderData);
                 case CUT_SHOP:
                     return $this->cutMyShop($folder_id, $folderData);
                 case ADD_INPUT_SHOP:
                     return $this->inputMyShop($folder_id, $folderData);
                 case UPDATE:
                     return $this->updateMyShop($folder_id, $folderData);
                 case UPLOAD:
                     return $this->uploadMyshop($folder_id, $folderData);
                 case MOVE_SHOP:
                     return $this->moveMyshop($folder_id, $folderData);
                 case CHANGE_FOLDER:
                     return $this->changeMyFolder($folder_id);
                 case RENAME:
                     return $this->renameMyFolder($folder_id);
             }
             return true;
         }
         return true;
     }
 }