function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $target_community_id = $request->getParameter('community_id'); $target_community_folder_id = $request->getParameter('folder_id'); $target_file_id = $request->getParameter('file_id'); $file_history_id = $request->getParameter('file_history_id'); $view_mode = $request->getParameter('mode'); $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(); // フォルダの公開範囲でアクセス制御 if (!$community_folder_obj->has_privilege($target_community_row)) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ルートフォルダ直下のファイルはコミュニティメンバ以外アクセス不可 if ($folder_obj->get_is_root_folder() && $user->hasCredential('COMMUNITY_MEMBER')) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } $file_obj = ACSFile::get_file_info_instance($target_file_id); if ($view_mode == 'thumb') { $ret = $file_obj->view_image($file_history_id, $view_mode); } else { $file_obj->download_history_file($file_history_id, $view_mode); } }
/** * 初期画面 * GETメソッドの場合、呼ばれる */ function getDefaultView() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $target_community_id = $request->getParameter('community_id'); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $target_community_folder_id = $request->getParameter('folder_id'); $mode = $request->getParameter('mode'); // 表示モード $community_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); $target_community_row = ACSCommunity::get_community_row($request->getParameter('community_id')); // グループ表示 $file_detail_info_row_array = array(); if ($mode == 'group') { // ファイルオブジェクトの配列 $target_folder_obj = $community_folder_obj->get_folder_obj(); $file_obj_array = $target_folder_obj->get_file_obj_array(); foreach ($file_obj_array as $file_obj) { $file_detail_info_row = ACSFileDetailInfo::get_file_detail_info_row($file_obj->get_file_id()); if (!$file_detail_info_row['file_id']) { // ファイル詳細情報が設定されてない場合 $file_detail_info_row['file_id'] = $file_obj->get_file_id(); } $file_detail_info_row['display_file_name'] = $file_obj->get_display_file_name(); $file_detail_info_row['thumbnail_server_file_name'] = $file_obj->get_thumbnail_server_file_name(); if ($file_obj->get_owner_community_id() == $target_community_row['community_id']) { $file_detail_info_row['is_put'] = false; } else { $file_detail_info_row['is_put'] = true; } array_push($file_detail_info_row_array, $file_detail_info_row); } // ファイルカテゴリコードごとのファイルコンテンツ種別の連想配列を取得する $file_contents_type_master_row_array_array = ACSFileDetailInfo::get_file_contents_type_master_row_array_array(); } // フォルダの公開範囲でアクセス制御 if (!$community_folder_obj->has_privilege($target_community_row)) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } $request->setAttribute('target_community_row', $target_community_row); $request->setAttribute('community_folder_obj', $community_folder_obj); $request->setAttribute('error_row', $error_row); $request->setAttribute('mode', $mode); if ($mode == 'group') { $request->setAttribute('file_detail_info_row_array', $file_detail_info_row_array); $request->setAttribute('file_contents_type_master_row_array_array', $file_contents_type_master_row_array_array); } return View::SUCCESS; }
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'); // ファイル履歴ID $file_history_id = $request->getParameter('file_history_id'); // form $form = $request->ACSGetParameters(); // 表示するページの所有者情報取得 $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); // フォルダの公開範囲でアクセス制御 if (!$community_folder_obj->has_privilege($target_community_row)) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ファイル履歴コメントを登録する if ($form['comment'] != '') { // ファイル履歴が1件も登録されていない場合は"作成"を登録する $file_history_row_array = ACSFileHistory::get_file_history_row_array($file_id); if (count($file_history_row_array) == 0) { $file_info_row = ACSFileInfoModel::select_file_info_row($file_id); $file_history_id = ACSFileHistory::set_file_history($file_info_row, $file_info_row['entry_user_community_id'], '', ACSMsg::get_mst('file_history_operation_master', 'D0101')); } $ret = ACSFileHistoryComment::set_file_history_comment($file_history_id, $acs_user_info_row['user_community_id'], $form['comment']); } // ファイル詳細情報へ遷移 $file_detail_url = $this->getControllerPath('Community', 'FileDetail'); $file_detail_url .= '&community_id=' . $target_community_id; $file_detail_url .= '&file_id=' . $file_id; $file_detail_url .= '&folder_id=' . $target_community_folder_id; header("Location: {$file_detail_url}"); }
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(); // フォルダの公開範囲でアクセス制御 if (!$community_folder_obj->has_privilege($target_community_row)) { // 2010.03.24 未ログイン時の誘導 // ログインユーザでない場合はログイン画面へ if ($user->hasCredential('PUBLIC_USER')) { $controller->forward("User", "Login"); return; } $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ルートフォルダ直下のファイルはコミュニティメンバ以外アクセス不可 if ($folder_obj->get_is_root_folder() && $user->hasCredential('COMMUNITY_MEMBER')) { // 2010.03.24 未ログイン時の誘導 // ログインユーザでない場合はログイン画面へ if ($user->hasCredential('PUBLIC_USER')) { $controller->forward("User", "Login"); return; } $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ファイル情報取得 $file_obj = ACSFile::get_file_info_instance($file_id); // ファイルの詳細情報 $file_detail_info_row = ACSFileDetailInfo::get_file_detail_info_row($file_id); // ファイルの履歴情報 $file_history_row_array = ACSFileHistory::get_file_history_row_array($file_id); // ファイル履歴ごとのコメント foreach ($file_history_row_array as $index => $file_history_row) { $file_history_row_array[$index]['file_history_comment_row_array'] = ACSFileHistoryComment::get_file_history_comment_row_array($file_history_row['file_history_id']); } // ファイルアクセス履歴登録 if ($acs_user_info_row['is_acs_user']) { ACSFile::set_file_access_history($acs_user_info_row['user_community_id'], $file_id); } // プットファイルでない場合 if ($file_obj->get_owner_community_id() == $target_community_id) { // ファイルの公開情報 $file_public_access_row = ACSFileDetailInfo::get_file_public_access_row($file_id); } // set $request->setAttribute('target_community_row', $target_community_row); $request->setAttribute('file_obj', $file_obj); $request->setAttribute('community_folder_obj', $community_folder_obj); $request->setAttribute('file_detail_info_row', $file_detail_info_row); $request->setAttribute('file_history_row_array', $file_history_row_array); $request->setAttribute('is_community_admin', $is_community_admin); $request->setAttribute('file_public_access_row', $file_public_access_row); return View::SUCCESS; }