/** * プット先コミュニティ設定処理 */ function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるユーザコミュニティIDを取得 $user_community_id = $request->ACSgetParameter('id'); // 対象となるフォルダIDを取得 $target_folder_id = $request->ACSgetParameter('folder_id'); // ACSUserFolder インスタンス生成 $user_folder_obj = new ACSUserFolder($user_community_id, $acs_user_info_row, $target_folder_id); $target_folder_obj = $user_folder_obj->get_folder_obj(); // 選択された community_id, folder_id を取得 $selected_put_folder_row_array = $request->getParameter('selected_put_folder_id'); // ---------------------------- // 更新用にデータ加工 // プット先コミュニティ更新用に、row_array 作成 $put_community_row_array = array(); foreach ($selected_put_folder_row_array as $community_id => $folder_id) { array_push($put_community_row_array, array('put_community_id' => $community_id, 'put_community_folder_id' => $folder_id)); } // ---------------------------- // 更新処理 $ret = $target_folder_obj->update_put_community($target_folder_id, $put_community_row_array); if (!$ret) { print "ERROR: Update put-community failed.<br>\n"; exit; } // ML通知チェックがあればMLにメール送信する // コミュニティ情報の取得 $send_announce_mail = $request->getParameter('send_announce_mail'); if ($send_announce_mail == "t") { foreach ($selected_put_folder_row_array as $community_id => $folder_id) { $folder_info = ACSFolderModel::select_folder_row($folder_id); ACSCommunityMail::send_putfolder_mail($acs_user_info_row, $folder_info, $community_id); } } // 処理が終わったら、ウィンドウを閉じる $controller->forward('Common', 'CloseChildWindow'); }
/** * フォルダ削除 * * @param $target_folder_obj 削除対象のフォルダ */ function delete_folder($target_folder_obj) { // 配下のフォルダ構成取得 $target_folder_obj = $this->get_lower_folder_tree($target_folder_obj); // 配下の全フォルダID取得 $folder_id_array = array(); // 配下のフォルダ全てがセットされる $this->get_lower_folder_obj_array($target_folder_obj, $folder_id_array); // 対象となるフォルダも追加 array_push($folder_id_array, $target_folder_obj->get_folder_id()); // フォルダ削除 $ret = ACSFolderModel::delete_folder($folder_id_array); return $ret; }
static function delete_folder_file($folder_id_array) { /* folder_file の file_info 情報取得 */ // folder_file 削除前に取得する必要あり $file_info_row_array = ACSFolderModel::select_folder_file_info_row_array($folder_id_array); /* folder_file 削除 */ $target_folder_id = implode(", ", $folder_id_array); $sql = "DELETE FROM folder_file"; $sql .= " WHERE"; $sql .= " folder_id IN (" . $target_folder_id . ")"; $ret = ACSDB::_do_query($sql); if (!$ret) { return false; } /* ファイル削除 */ if ($file_info_row_array) { foreach ($file_info_row_array as $file_info_row) { $file_obj = new ACSFile($file_info_row); $ret = $file_obj->delete_file(); if (!$ret) { return false; } } } return $ret; }
/** * フォルダ全体の公開範囲セット * * @param $community_id */ function set_contents_folder_open_level($community_id) { // フォルダ全体の公開範囲取得 $open_level_row = ACSFolderModel::select_contents_folder_open_level_row($community_id); if (!$open_level_row) { $community_type_name = $this->get_community_type_name(); $open_level_row = ACSFolderModel::select_folder_open_level_default_row($community_type_name); } $this->open_level_code = $open_level_row['open_level_code']; $this->open_level_name = $open_level_row['open_level_name']; // 閲覧許可コミュニティセット $this->set_contents_folder_trusted_community_row_array($open_level_row['trusted_community_row_array']); }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるユーザコミュニティIDを取得 $target_user_community_id = $request->getParameter('id'); // 対象となるフォルダIDを取得 $target_user_community_folder_id = $request->getParameter('folder_id'); // 表示するページの所有者情報取得 $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($target_user_community_id); // フォルダ情報取得 $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id); // set $request->setAttribute('target_user_info_row', $target_user_info_row); $request->setAttribute('user_folder_obj', $user_folder_obj); // 移動先フォルダID $move_target_folder_id = $request->getParameter('selected_move_folder_id'); /* -------- */ /* 移動処理 */ /* -------- */ ACSDB::_do_query("BEGIN"); // 移動先がルートフォルダの場合は、公開範囲をセットする必要があるため、 // ルートフォルダの情報を取得しておく $root_folder_obj = ACSFolder::get_folder_instance($user_folder_obj->get_root_folder_row($user_folder_obj->get_community_id())); // フォルダ $folder_row_array = array(); $selected_folder_id_array = $request->getParameter('selected_folder'); if ($selected_folder_id_array) { foreach ($selected_folder_id_array as $folder_id) { // 移動するフォルダ取得 $_folder_obj = $user_folder_obj->folder_obj->get_folder_obj($folder_id); // 移動処理 $ret = $_folder_obj->move_folder($move_target_folder_id); if (!$ret) { ACSDB::_do_query("ROLLBACK"); print "ERROR: Move folder failed."; exit; } // 公開範囲を更新 if ($move_target_folder_id == $root_folder_obj->get_folder_id()) { // ルートフォルダへ移動の場合、公開範囲をセット $new_open_level_code = $user_folder_obj->folder_obj->get_open_level_code(); $new_trusted_community_row_array = $user_folder_obj->folder_obj->get_trusted_community_row_array(); } else { // ルートフォルダ以外へ移動の場合、公開範囲をリセット $new_open_level_code = ""; $new_trusted_community_row_array = array(); } $ret = $_folder_obj->update_open_level_code($new_open_level_code, $new_trusted_community_row_array); if (!$ret) { ACSDB::_do_query("ROLLBACK"); print "ERROR: Move folder failed."; exit; } // ルートフォルダ以外へへ移動の場合、プット解除(=プット情報を全て削除) if ($move_target_folder_id != $root_folder_obj->get_folder_id()) { $ret = ACSFolderModel::delete_put_community_by_folder_id($_folder_obj->get_folder_id()); if (!$ret) { ACSDB::_do_query("ROLLBACK"); print "ERROR: Move folder failed."; exit; } } } } // ファイル $file_row_array = array(); $selected_file_id_array = $request->getParameter('selected_file'); if ($selected_file_id_array) { foreach ($selected_file_id_array as $file_id) { // 移動処理 $file_obj = $user_folder_obj->folder_obj->get_file_obj($file_id); $ret = $user_folder_obj->folder_obj->move_file($file_obj, $move_target_folder_id); //$ret = $_file_obj->rename_display_file_name($new_file_name); if (!$ret) { ACSDB::_do_query("ROLLBACK;"); print "ERROR: Move file failed."; exit; } } } ACSDB::_do_query("COMMIT;"); // フォルダ表示アクション呼び出し $folder_action = $this->getControllerPath('User', 'Folder'); $folder_action .= '&id=' . $target_user_community_id; $folder_action .= '&folder_id=' . $target_user_community_folder_id; header("Location: {$folder_action}"); }
/** * 公開範囲更新 * * @param $new_open_level_code * @param $new_trusted_community_row_array * @return $ret */ function update_open_level_code($new_open_level_code, $new_trusted_community_row_array) { $ret = ACSFolderModel::update_folder_open_level_code($this->get_folder_id(), $new_open_level_code, $new_trusted_community_row_array); return $ret; }