/** * 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; } }