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_community_id = $request->getParameter('community_id'); // 対象となるフォルダIDを取得 $target_community_folder_id = $request->getParameter('folder_id'); // 詳細情報を表示するファイルIDを取得 $file_id = $request->getParameter('file_id'); // コミュニティ管理者か $is_community_admin = false; if (ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $target_community_id)) { $is_community_admin = true; } // 表示するページの所有者情報取得 $target_community_row = ACSCommunity::get_community_row($target_community_id); // フォルダ情報取得 $community_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); $folder_obj = $community_folder_obj->get_folder_obj(); // ファイル情報取得 $file_obj = ACSFile::get_file_info_instance($file_id); // ファイル公開設定 $submit_kind = $request->getParameter('submit_kind'); // プットファイルでない場合 if ($file_obj->get_owner_community_id() == $target_community_id) { if ($submit_kind != "" && $is_community_admin) { // ファイル公開URL作成 if ($submit_kind == "insert") { $form['folder_id'] = $target_community_folder_id; $form['community_id'] = $target_community_id; ACSFileDetailInfo::insert_file_public_access($file_id, $form); // ファイル公開URL削除 } else { if ($submit_kind == "delete") { ACSFileDetailInfo::delete_file_public_access($file_id); // ファイル公開アクセス数リセット } else { if ($submit_kind == "reset") { $form['access_count'] = 0; $form['access_start_date'] = "'now'"; ACSFileDetailInfo::update_file_public_access($file_id, $form); } } } } } $contents_link_url = $this->getControllerPath('Community', 'FileDetail') . "&community_id=" . $target_community_id . "&file_id=" . $file_obj->get_file_id() . "&folder_id=" . $community_folder_obj->folder_obj->get_folder_id(); header("Location: {$contents_link_url}"); return View::SUCCESS; }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); if (!$this->get_execute_privilege()) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // 必須チェック // Validator でできないチェックはここで行う if (!$request->getParameter('selected_folder') && !$request->getParameter('selected_file')) { // エラーの場合、処理終了 return $this->setError($controller, $request, $user, 'selected_folder', ACSMsg::get_msg('Community', 'DeleteFolderAction.class.php', 'M001')); } $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるユーザコミュニティIDを取得 $target_community_id = $request->getParameter('community_id'); // 対象となるフォルダIDを取得 $target_community_folder_id = $request->getParameter('folder_id'); // 表示するページの所有者情報取得 $target_community_info_row = ACSCommunity::get_community_row($target_community_id); // フォルダ情報取得 $community_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); // set $request->setAttribute('target_community_info_row', $target_community_info_row); $request->setAttribute('community_folder_obj', $community_folder_obj); /* ------------ */ /* 確認画面表示 */ /* ------------ */ if ($request->getParameter('action_type') == 'confirm') { return $this->getDefaultView(); } elseif ($request->getParameter('action_type') == 'delete') { ACSDB::_do_query("BEGIN"); // フォルダ $folder_row_array = array(); $delete_folder_id_array = $request->getParameter('selected_folder'); if ($delete_folder_id_array) { foreach ($delete_folder_id_array as $folder_id) { // 削除処理 $_folder_obj = $community_folder_obj->folder_obj->get_folder_obj($folder_id); $ret = $community_folder_obj->delete_folder($_folder_obj); if (!$ret) { ACSDB::_do_query("ROLLBACK;"); print "ERROR: Remove folder failed."; exit; } } } // ファイル $file_row_array = array(); $delete_file_id_array = $request->getParameter('selected_file'); if ($delete_file_id_array) { foreach ($delete_file_id_array as $file_id) { // 公開用ファイル情報 ACSFileDetailInfo::delete_file_public_access($file_id); // 削除処理 $_file_obj = $community_folder_obj->folder_obj->get_file_obj($file_id); $ret = $_file_obj->delete_file(); if (!$ret) { ACSDB::_do_query("ROLLBACK;"); print "ERROR: Remove file failed."; exit; } } } ACSDB::_do_query("COMMIT;"); // フォルダ表示アクション呼び出し $folder_action = $this->getControllerPath('Community', 'Folder'); $folder_action .= '&community_id=' . $target_community_id; $folder_action .= '&folder_id=' . $target_community_folder_id; header("Location: {$folder_action}"); } }