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); } }
function execute() { $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'); // form $form = $request->ACSGetParameters(); /* ファイルアップロード処理 */ $ret = 0; if ($_FILES['new_file']['tmp_name'] != '') { // ファイル情報取得 $file_obj = ACSFile::get_upload_file_info_instance($_FILES['new_file'], $target_community_id, $acs_user_info_row['user_community_id']); // フォルダにファイル追加処理 $user_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); $folder_obj = $user_folder_obj->get_folder_obj(); $ret = $folder_obj->add_file($file_obj); } if (!$ret) { print "ERROR: Upload file failed."; } if ($ret) { // 新規登録したファイルID $file_id = $file_obj->get_file_id(); // 2007.12 追加 // ML通知チェックがあればMLにメール送信する $send_announce_mail = $request->getParameter('send_announce_mail'); if ($send_announce_mail == "t") { ACSCommunityMail::send_fileupload_mail($target_community_id, $acs_user_info_row, $folder_obj, $file_obj); } } // ファイル履歴情報登録 if ($ret) { $file_info_row = ACSFileInfoModel::select_file_info_row($file_id); $ret = ACSFileHistory::set_file_history($file_info_row, $acs_user_info_row['user_community_id'], $form['comment'], ACSMsg::get_mst('file_history_operation_master', 'D0101')); } // ファイル詳細情報登録 if ($form['file_category_code'] != '' && $ret) { $file_contents_type_list_row_array = ACSFileDetailInfo::get_file_contents_type_list_row_array($form['file_category_code']); $file_contents_form_array = array(); foreach ($file_contents_type_list_row_array as $file_contents_type_list_row) { $file_contents_form = array('file_id' => $file_id, 'file_contents_type_code' => $file_contents_type_list_row['file_contents_type_code'], 'file_contents_value' => $form['file_contents_array'][$file_contents_type_list_row['file_contents_type_code']]); array_push($file_contents_form_array, $file_contents_form); } $ret = ACSFileDetailInfo::set_file_detail_info($file_id, $form['file_category_code'], $file_contents_form_array); } // フォルダ表示アクション呼び出し $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $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}"); }
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; }
/** * 初期画面 * 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 getDefaultView() { $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'); // 他ユーザのデータが見えないようチェック if (!$this->get_execute_privilege()) { // このページへアクセスすることはできません。 $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // ユーザ情報 $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id); // マイコミュニティ $community_row_array = ACSUser::get_community_row_array($user_community_id); // マイコミュニティのフォルダツリーを追加 $community_folder_obj_array = array(); $community_row_index = 0; foreach ($community_row_array as $community_row) { $community_folder_obj = array(); $folder_tree = array(); // ルートフォルダのインスタンス生成 $community_folder_obj = new ACSCommunityFolder($community_row['community_id'], $acs_user_info_row, ''); $folder_tree = $community_folder_obj->get_folder_tree(); $community_row_array[$community_row_index]['folder_tree'] = $folder_tree; $community_row_index++; } // プット先コミュニティ(設定されているコミュニティ) $put_community_row_array = ACSFolderModel::select_put_community($target_folder_id); // set $request->setAttribute('target_user_info_row', $target_user_info_row); $request->setAttribute('target_folder_id', $target_folder_id); $request->setAttribute('community_row_array', $community_row_array); $request->setAttribute('put_community_row_array', $put_community_row_array); return View::INPUT; }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $key = $request->getParameter('key'); // ファイル情報取得 $file_public_access_row = ACSFileDetailInfo::get_file_public_access_row("", "access_code = '" . $key . "'"); // ファイルアクセス数更新 if ($file_public_access_row) { $form = array(); $form['all_access_count'] = $file_public_access_row['all_access_count'] + 1; $form['access_count'] = $file_public_access_row['access_count'] + 1; ACSFileDetailInfo::update_file_public_access($file_public_access_row['file_id'], $form); } else { print "NOT FOUND"; } // ファイルダウンロード処理 $community_folder_obj = new ACSCommunityFolder($file_public_access_row['community_id'], "", $file_public_access_row['folder_id']); $folder_obj = $community_folder_obj->get_folder_obj(); $folder_obj->download_file($file_public_access_row['file_id']); }
/** * 入力画面表示 */ function getDefaultView() { $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'); $edit_folder_id = $request->getParameter('edit_folder_id'); // 表示するページの所有者情報取得 $target_community_info_row = ACSCommunity::get_community_row($target_community_id); // フォルダ情報取得 $user_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); if (!$this->get_execute_privilege()) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // 作成・更新の判別 if ($request->getParameter('edit_folder_id')) { $edit_folder_id = $request->getParameter('edit_folder_id'); $view_mode = 'update'; } else { $view_mode = 'create'; } // 初期表示する閲覧許可コミュニティ取得(親・サブコミュニティ) $parent_community_row_array = ACSCommunity::get_parent_community_row_array($target_community_id); $sub_community_row_array = ACSCommunity::get_sub_community_row_array($target_community_id); // set $request->setAttribute('target_community_info_row', $target_community_info_row); $request->setAttribute('user_folder_obj', $user_folder_obj); $request->setAttribute('view_mode', $view_mode); $request->setAttribute('edit_folder_id', $edit_folder_id); $request->setAttribute('parent_community_row_array', $parent_community_row_array); $request->setAttribute('sub_community_row_array', $sub_community_row_array); // エラーで呼ばれた場合は、入力値を取得 // hasErrors 関数作成? if ($this->hasErrors($controller, $request, $user)) { // デフォルト値として表示する値を row にセット $default_data_row['folder_id'] = $request->getParameter('folder_id'); $default_data_row['folder_name'] = $request->getParameter('folder_name'); $default_data_row['comment'] = $request->getParameter('comment'); $default_data_row['open_level_code'] = $request->getParameter('open_level_code'); $default_data_row['trusted_community_flag'] = $request->getParameter('trusted_community_flag'); $default_data_row['trusted_community_id_array'] = $request->getParameter('trusted_community_id_array'); // set $request->setAttribute('default_data_row', $default_data_row); return View::INPUT; } // 更新の場合は、更新対象のフォルダIDを取得 if ($view_mode == 'update') { // 初期表示の場合、更新対象のフォルダ情報取得 if (!$this->hasErrors($controller, $request, $user)) { // 更新対象のフォルダ情報取得 $update_user_folder_obj = new ACSCommunityFolder($request->getParameter('community_id'), $acs_user_info_row, $edit_folder_id); $update_folder_obj = $update_user_folder_obj->get_folder_obj(); // 閲覧許可コミュニティID取得 $trusted_community_id_array = array(); foreach ($update_folder_obj->get_trusted_community_row_array() as $trusted_community_row) { array_push($trusted_community_id_array, $trusted_community_row['community_id']); } // デフォルト値として表示する値を row にセット $default_data_row['folder_id'] = $update_folder_obj->get_folder_id(); $default_data_row['folder_name'] = $update_folder_obj->get_folder_name(); $default_data_row['comment'] = $update_folder_obj->get_comment(); $default_data_row['open_level_code'] = $update_folder_obj->get_open_level_code(); $default_data_row['trusted_community_flag'] = ""; // view で値を判断する $default_data_row['trusted_community_id_array'] = $trusted_community_id_array; $request->setAttribute('default_data_row', $default_data_row); } // set $request->setAttribute('input_data_row', $input_data_row); return View::INPUT; } elseif ($view_mode == 'create') { return View::INPUT; } }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); // get $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $target_user_info_row = $request->getAttribute('target_user_info_row'); $user_folder_obj = $request->getAttribute('user_folder_obj'); // フォルダの所有者 $target_user_community_id = $target_user_info_row['user_community_id']; $target_user_community_info_row['community_name'] = $target_user_info_row['community_name']; $target_user_community_info_row['top_page_url'] = $this->getControllerPath('User', DEFAULT_ACTION); $target_user_community_info_row['top_page_url'] .= '&id=' . $target_user_community_id; // 対象のフォルダ $folder_obj = $user_folder_obj->get_folder_obj(); // 本人のページかどうか $is_self_page = false; if ($target_user_community_id == $acs_user_info_row['user_community_id']) { $is_self_page = true; } // 対象のフォルダ情報 $folder_info_row = array(); $folder_info_row['folder_name'] = $folder_obj->get_folder_name(); $folder_info_row['folder_url'] = $this->getControllerPath('User', 'Folder'); $folder_info_row['folder_url'] .= '&id=' . $target_user_community_id; // フォルダへ戻るURL $back_url = $folder_info_row['folder_url']; // プット先コミュニティ取得 $org_put_community_row_array = $folder_obj->get_put_community_row_array(); // プット先コミュニティを表示用に加工 $put_community_row_array = array(); // テンプレートに渡すプット先コミュニティ情報 foreach ($org_put_community_row_array as $put_community_row) { // メンバでない非公開コミュニティは表示対象にしない $_is_community_member = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $put_community_row['community_id']); if ($put_community_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D03') && !$_is_community_member) { continue; } $_put_community_row = array(); // ---------------------- // プット先コミュニティ加工 // コミュニティ名 $_put_community_row['community_name'] = $put_community_row['community_name']; // コミュニティトップページURL $_put_community_row['top_page_url'] = $this->getControllerPath('Community', DEFAULT_ACTION); $_put_community_row['top_page_url'] .= '&community_id=' . $put_community_row['community_id']; // ---------------------- // プット先フォルダ加工 // ACSFolder インスタンス生成 // プット先フォルダのパス情報を取得するため $put_folder_obj = new ACSCommunityFolder($put_community_row['community_id'], $acs_user_info_row, $put_community_row['put_community_folder_id']); // プット先フォルダ名(コミュニティフォルダのパス) $put_folder_path = $put_folder_obj->get_path_folder_obj_array(); $folder_path_str = ""; foreach ($put_folder_path as $_folder_obj) { // ルートフォルダは追加しない if ($_folder_obj->is_root_folder) { continue; } $folder_path_str .= $_folder_obj->get_folder_name(); $folder_path_str .= "/"; } $_put_community_row['put_folder_name'] = $folder_path_str; // プット先フォルダURL $put_folder_url = $this->getControllerPath('Community', 'Folder'); $put_folder_url .= '&community_id=' . $put_community_row['community_id']; $put_folder_url .= '&folder_id=' . $put_community_row['put_community_folder_id']; $_put_community_row['put_folder_url'] = $put_folder_url; array_push($put_community_row_array, $_put_community_row); } // テンプレート $this->setScreenId("0001"); $this->setTemplate('PutCommunity.tpl.php'); // set $this->setAttribute('target_user_community_info_row', $target_user_community_info_row); $this->setAttribute('is_self_page', $is_self_page); $this->setAttribute('folder_info_row', $folder_info_row); $this->setAttribute('back_url', $back_url); $this->setAttribute('put_community_row_array', $put_community_row_array); return parent::execute(); }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $community_id = $request->ACSgetParameter('community_id'); $community_row = ACSCommunity::get_community_row($community_id); $form = $request->ACSgetParameters(); // 検索時 if ($form['search']) { $folder_row_array = array(); $put_folder_row_array = array(); $file_info_row_array = array(); $put_file_info_row_array = array(); // フォルダ検索 if ($form['target'] != 'file') { $folder_row_array = ACSCommunityFolder::search_folder_row_array($community_id, $form); $put_folder_row_array = ACSCommunityFolder::search_put_folder_row_array($community_id, $form); } // ファイル検索 if ($form['target'] != 'folder') { $file_info_row_array = ACSCommunityFolder::search_file_info_row_array($community_id, $form); $put_file_info_row_array = ACSCommunityFolder::search_put_file_info_row_array($community_id, $form); } // フォルダ foreach ($folder_row_array as $index => $folder_row) { $target_folder_obj = new ACSCommunityFolder($community_id, $acs_user_info_row, $folder_row['folder_id']); $folder_row_array[$index]['update_date'] = $target_folder_obj->folder_obj->get_update_date_yyyymmddhmi(); // 公開レベル $folder_row_array[$index]['open_level_code'] = $target_folder_obj->folder_obj->get_open_level_code(); $folder_row_array[$index]['open_level_name'] = $target_folder_obj->folder_obj->get_open_level_name(); $open_level_master_row = ACSAccessControl::get_open_level_master_row($folder_row_array[$index]['open_level_code']); $folder_row_array[$index] = array_merge($folder_row_array[$index], $open_level_master_row); $folder_row_array[$index]['trusted_community_row_array'] = $target_folder_obj->folder_obj->get_trusted_community_row_array(); // パス $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array(); $path_array = array(); foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) { if ($path_folder_obj_index != 0) { array_push($path_array, $path_folder_obj->get_folder_name()); } } $folder_row_array[$index]['path_array'] = $path_array; } // プットフォルダ foreach ($put_folder_row_array as $index => $folder_row) { $target_folder_obj = new ACSCommunityFolder($community_id, $acs_user_info_row, $folder_row['folder_id']); $put_folder_row_array[$index]['update_date'] = $target_folder_obj->folder_obj->get_update_date_yyyymmddhmi(); // 公開レベル $put_folder_row_array[$index]['open_level_code'] = $target_folder_obj->folder_obj->get_open_level_code(); $put_folder_row_array[$index]['open_level_name'] = $target_folder_obj->folder_obj->get_open_level_name(); $open_level_master_row = ACSAccessControl::get_open_level_master_row($put_folder_row_array[$index]['open_level_code']); $put_folder_row_array[$index] = array_merge($put_folder_row_array[$index], $open_level_master_row); $put_folder_row_array[$index]['trusted_community_row_array'] = $target_folder_obj->folder_obj->get_trusted_community_row_array(); // パス $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array(); $path_array = array(); foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) { if ($path_folder_obj_index != 0) { array_push($path_array, $path_folder_obj->get_folder_name()); } } $put_folder_row_array[$index]['path_array'] = $path_array; } // ファイル foreach ($file_info_row_array as $index => $file_info_row) { $target_folder_obj = new ACSCommunityFolder($community_id, $acs_user_info_row, $file_info_row['folder_id']); $target_file_obj = new ACSFile($file_info_row); $file_info_row_array[$index]['file_size'] = $target_file_obj->get_file_size_kb(); $file_info_row_array[$index]['update_date'] = $target_file_obj->get_update_date_yyyymmddhmi(); $file_info_row_array[$index]['is_root_folder'] = $target_folder_obj->folder_obj->get_is_root_folder(); // 公開レベル $file_info_row_array[$index]['open_level_code'] = $target_folder_obj->folder_obj->get_open_level_code(); $file_info_row_array[$index]['open_level_name'] = $target_folder_obj->folder_obj->get_open_level_name(); $open_level_master_row = ACSAccessControl::get_open_level_master_row($file_info_row_array[$index]['open_level_code']); $file_info_row_array[$index] = array_merge($file_info_row_array[$index], $open_level_master_row); $file_info_row_array[$index]['trusted_community_row_array'] = $target_folder_obj->folder_obj->get_trusted_community_row_array(); // パス $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array(); $path_array = array(); foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) { if ($path_folder_obj_index != 0) { array_push($path_array, $path_folder_obj->get_folder_name()); } } array_push($path_array, $file_info_row['display_file_name']); $file_info_row_array[$index]['path_array'] = $path_array; } // プットファイル foreach ($put_file_info_row_array as $index => $file_info_row) { // プットされたフォルダの直下に位置するプットファイルのfolder_idは // プットされたフォルダのfolder_idに変換する if ($file_info_row['put_community_folder_id'] != '') { $file_info_row['folder_id'] = $file_info_row['put_community_folder_id']; $put_file_info_row_array[$index] = $file_info_row; } $target_folder_obj = new ACSCommunityFolder($community_id, $acs_user_info_row, $file_info_row['folder_id']); $target_file_obj = new ACSFile($file_info_row); $put_file_info_row_array[$index]['file_size'] = $target_file_obj->get_file_size_kb(); $put_file_info_row_array[$index]['update_date'] = $target_file_obj->get_update_date_yyyymmddhmi(); $put_file_info_row_array[$index]['is_root_folder'] = $target_folder_obj->folder_obj->get_is_root_folder(); // 公開レベル $put_file_info_row_array[$index]['open_level_code'] = $target_folder_obj->folder_obj->get_open_level_code(); $put_file_info_row_array[$index]['open_level_name'] = $target_folder_obj->folder_obj->get_open_level_name(); $open_level_master_row = ACSAccessControl::get_open_level_master_row($put_file_info_row_array[$index]['open_level_code']); $put_file_info_row_array[$index] = array_merge($put_file_info_row_array[$index], $open_level_master_row); $put_file_info_row_array[$index]['trusted_community_row_array'] = $target_folder_obj->folder_obj->get_trusted_community_row_array(); // パス $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array(); $path_array = array(); foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) { if ($path_folder_obj_index != 0) { array_push($path_array, $path_folder_obj->get_folder_name()); } } array_push($path_array, $file_info_row['display_file_name']); $put_file_info_row_array[$index]['path_array'] = $path_array; } } // set $request->setAttribute('community_row', $community_row); $request->setAttribute('form', $form); $request->setAttribute('folder_row_array', $folder_row_array); $request->setAttribute('put_folder_row_array', $put_folder_row_array); $request->setAttribute('file_info_row_array', $file_info_row_array); $request->setAttribute('put_file_info_row_array', $put_file_info_row_array); return View::INPUT; }
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; }
/** * マイコミュニティの新着プットフォルダ情報を取得する * * @param $user_community_id ユーザコミュニティID (アクセス者となるユーザ) * $days 取得する日数(最近何日間の新着情報を取得) * @return 新着フォルダ一覧 (連想配列の配列) */ function get_new_community_put_folder_row_array($user_community_id, &$form, $days = false, $offset = false) { // マイコミュニティのコミュニティIDのCSVを作成する // マイコミュニティの取得 $community_row_array = ACSUser::get_community_row_array($user_community_id); // マイコミュニティの条件csv文字列取得 $csv_string = ACSLib::get_csv_string_from_array($community_row_array, 'community_id'); $row_array = array(); if ($csv_string != '') { $condition = "put_community.put_community_id IN (" . $csv_string . ")"; // マイコミュニティプットフォルダの新着情報を取得 $row_array = ACSCommunityFolder::search_all_put_file_info_row_array($form, $condition, $user_community_id, $days, $rows); } return $row_array; }
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; } $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'); $file_id = $request->getParameter('file_id'); // アクセス制御 // プットフォルダ、ファイルはNG $file_obj = ACSFile::get_file_info_instance($file_id); if ($file_obj->get_owner_community_id() != $target_community_id) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // form $form = $request->ACSGetParameters(); $ret = false; // ファイル更新処理 if ($_FILES['new_file']['tmp_name'] != '') { // ファイルobj $file_obj = ACSFile::get_upload_file_info_instance_for_update($_FILES['new_file'], $target_community_id, $acs_user_info_row['user_community_id'], $file_id); // フォルダobj $community_folder_obj = new ACSCommunityFolder($target_community_id, $acs_user_info_row, $target_community_folder_id); $folder_obj = $community_folder_obj->get_folder_obj(); // ファイル履歴が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')); } // file_info更新, ファイル保存 $ret = $folder_obj->update_file($file_obj); } if (!$ret) { print "ERROR: ファイルアップロードに失敗しました"; } // ファイル履歴情報登録 if ($ret) { $file_info_row = ACSFileInfoModel::select_file_info_row($file_id); $ret = ACSFileHistory::set_file_history($file_info_row, $acs_user_info_row['user_community_id'], $form['comment'], ACSMsg::get_mst('file_history_operation_master', 'D0201')); // 2007.12 追加 // ML通知チェックがあればMLにメール送信する // コミュニティ情報の取得 $send_announce_mail = $request->getParameter('send_announce_mail'); if ($send_announce_mail == "t") { ACSCommunityMail::send_fileupload_mail($target_community_id, $acs_user_info_row, $folder_obj, $file_obj); } } // ファイル詳細情報へ遷移 $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(); $user = $context->getUser(); $request = $context->getRequest(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $form = $request->ACSgetParameters(); // 対象となるユーザコミュニティIDを取得 $user_community_id = $request->ACSgetParameter('id'); if ($user_community_id == null || $user_community_id == '') { $user_community_id = $request->getAttribute("id"); } // 他ユーザのデータが見えないようチェック if (!$this->get_execute_privilege() && $acs_user_info_row["user_community_id"] != $user_community_id) { // このページへアクセスすることはできません。 $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // インライン表示の場合: 1(true) $inline_mode = $request->ACSgetParameter('inline_mode'); if ($inline_mode == null || $inline_mode == '') { $inline_mode = $request->getAttribute("inline_mode"); } // 取得範囲の指定 $get_days = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D02'), $inline_mode ? 'NEW_INFO_TOP_TERM' : 'NEW_INFO_LIST_TERM'); $request->setAttribute('get_days', $get_days); // ユーザ情報 $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id); if ($inline_mode) { // マイコミュニティの新着フォルダ一覧を取得する $new_folder_row_array = ACSCommunityFolder::get_new_community_folder_row_array($user_community_id, $get_days, true); // マイコミュニティの新着プットフォルダ一覧を取得する $new_put_folder_row_array = ACSCommunityFolder::get_new_community_put_folder_row_array($user_community_id, $form, $get_days, true); } else { // マイコミュニティの新着フォルダ一覧を取得する $new_folder_row_array = ACSCommunityFolder::get_new_community_folder_row_array($user_community_id, $get_days); // マイコミュニティの新着プットフォルダ一覧を取得する $new_put_folder_row_array = ACSCommunityFolder::get_new_community_put_folder_row_array($user_community_id, $form, $get_days); } // コミュニティ名取得バッファ $this->community_name_buffer = array(); // ソート用配列の初期化 $sort_folder_row_array = array(); // ソート用に加工(コミュニティのファイル) foreach ($new_folder_row_array as $index => $new_folder_row) { $sort_index = $new_folder_row['update_date'] . " " . sprintf("%06d", $new_folder_row['file_id']) . "c"; $sort_folder_row_array[$sort_index] = $new_folder_row; } // ソート用に加工(プットファイル) // (複数コミュニティへのput情報が重複しないようcounterを付加) // (※複数コミュニティは第一階層のファイルのみが対応されている) $counter = 0; foreach ($new_put_folder_row_array as $index => $new_folder_row) { // PUTであることのフラグを設定をしておく $new_folder_row['is_put_icon'] = TRUE; $sort_index = $new_folder_row['update_date'] . " " . sprintf("%06d", $new_folder_row['file_id']) . "p" . $counter; $sort_folder_row_array[$sort_index] = $new_folder_row; $counter++; } // ソート実施 krsort($sort_folder_row_array); // 表示件数制御 // if ($inline_mode) { $display_count = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D02'), 'NEW_INFO_TOP_DISPLAY_MAX_COUNT'); } else { // viewでページングするので全件取得(0=全件取得) $display_count = 0; } // 表示用に整える $new_folder_row_array = array(); foreach ($sort_folder_row_array as $key => $folder_row) { // 表示件数に達している場合は処理しない if (count($new_folder_row_array) >= $display_count && $display_count != 0) { break; } // putファイルの場合 if ($folder_row['is_put_icon']) { // フォルダ情報の取得 // (※複数のフォルダ情報の取得する場合も有) $add_folder_row_array =& $this->getPutFolderRows($acs_user_info_row, $folder_row); // コミュニティファイルの場合 } else { // (必要なフォルダ情報は取得済み) $folder_row['url_community_id'] = $folder_row['owner_community_id']; $folder_row['url_folder_id'] = $folder_row['folder_id']; $add_folder_row_array = array($folder_row); } // 表示用情報の設定 foreach ($add_folder_row_array as $add_folder_row) { // 表示件数に達している場合は処理しない if (count($new_folder_row_array) >= $display_count && $display_count != 0) { break; } // 既読フラグの設定 $add_folder_row['is_unread'] = ACSLib::get_boolean($add_folder_row['is_unread']); // コミュニティ名をバッファリングしておく(再利用するため) $this->community_name_buffer[$add_folder_row['owner_community_id']] = $add_folder_row['community_name']; // ファイル詳細情報URLの生成 $add_folder_row['file_detail_url'] = $this->getControllerPath('Community', 'FileDetail') . '&community_id=' . $add_folder_row['url_community_id'] . '&folder_id=' . $add_folder_row['url_folder_id'] . '&file_id=' . $add_folder_row['file_id']; array_push($new_folder_row_array, $add_folder_row); } } // set $request->setAttribute('user_community_id', $user_community_id); $request->setAttribute('target_user_info_row', $target_user_info_row); $request->setAttribute('new_folder_row_array', $new_folder_row_array); //$request->setAttribute('new_put_folder_row_array', $new_put_folder_row_array); if ($inline_mode) { return View::INPUT; } else { return View::SUCCESS; } }
function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); // get $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $target_user_info_row = $request->getAttribute('target_user_info_row'); $user_folder_obj = $request->getAttribute('user_folder_obj'); $detail_user_folder_obj = $request->getAttribute('detail_user_folder_obj'); $target_user_community_id = $target_user_info_row['user_community_id']; // URL付加情報(表示するユーザ情報) $target_community_info = '&id=' . $target_user_community_id; $folder_info = '&folder_id=' . $user_folder_obj->folder_obj->get_folder_id(); // フォルダの所有者 $_target_user_info_row['community_name'] = $target_user_info_row['community_name']; $_target_user_info_row['top_page_url'] = $this->getControllerPath('User', DEFAULT_ACTION); $_target_user_info_row['top_page_url'] .= $target_community_info; // 本人かどうか if ($target_user_community_id == $acs_user_info_row['user_community_id']) { $is_self_page = true; } else { $is_self_page = false; } // プット可能なフォルダかどうか if ($user_folder_obj->is_put_available()) { $is_put_available = true; } else { $is_put_available = false; } // フォルダパス情報 $path_folder_obj_array = $user_folder_obj->get_path_folder_obj_array(); $path_folder_row_array = array(); foreach ($path_folder_obj_array as $path_folder_obj) { $path_folder_row = array(); // フォルダ名 if ($path_folder_obj->get_is_root_folder()) { $folder_name = $target_user_info_row['community_name']; //$folder_name .= "さんのフォルダ"; $folder_name = ACSMsg::get_tag_replace(ACSMsg::get_msg('User', 'FolderDetailSuccessView.class.php', 'FOLDER_NM'), array("{COMMUNITY_NAME}" => $target_user_info_row['community_name'])); } else { $folder_name = $path_folder_obj->get_folder_name(); } // フォルダURL $link_url = $this->getControllerPath('User', 'Folder'); $link_url .= $target_community_info; $link_url .= "&folder_id=" . $path_folder_obj->get_folder_id(); // set $path_folder_row['folder_name'] = $folder_name; $path_folder_row['link_url'] = $link_url; array_push($path_folder_row_array, $path_folder_row); } /* ---------------- */ /* フォルダ詳細情報 */ /* ---------------- */ $detail_folder_obj = $detail_user_folder_obj->get_folder_obj(); $detail_folder_row = array(); $detail_folder_row['folder_name'] = $detail_folder_obj->get_folder_name(); $detail_folder_row['comment'] = $detail_folder_obj->get_comment(); $detail_folder_row['open_level_name'] = $detail_folder_obj->get_open_level_name(); // 閲覧許可コミュニティ名作成 $detail_folder_row['trusted_community_row_array'] = array(); $trusted_community_row_array = $detail_folder_obj->get_trusted_community_row_array(); if ($is_self_page) { foreach ($trusted_community_row_array as $trusted_community_row) { $_trusted_community_row = array(); $_trusted_community_row['community_name'] = $trusted_community_row['community_name']; array_push($detail_folder_row['trusted_community_row_array'], $_trusted_community_row); } } // 登録者 $detail_folder_row['entry_user_community_name'] = $detail_folder_obj->get_entry_user_community_name(); $detail_folder_row['entry_user_community_link_url'] = $this->getControllerPath('User', DEFAULT_ACTION); $detail_folder_row['entry_user_community_link_url'] .= '&id=' . $detail_folder_obj->get_entry_user_community_id(); $detail_folder_row['entry_date'] = $detail_folder_obj->get_entry_date_yyyymmddhmi(); // 更新者 $detail_folder_row['update_user_community_name'] = $detail_folder_obj->get_update_user_community_name(); $detail_folder_row['update_user_community_link_url'] = $this->getControllerPath('User', DEFAULT_ACTION); $detail_folder_row['update_user_community_link_url'] .= '&id=' . $detail_folder_obj->get_update_user_community_id(); $detail_folder_row['update_date'] = $detail_folder_obj->get_update_date_yyyymmddhmi(); // プット先コミュニティ $detail_folder_row['put_community_row_array'] = array(); if ($detail_folder_obj->get_put_community_row_array()) { foreach ($detail_folder_obj->get_put_community_row_array() as $put_community_row) { // メンバでない非公開コミュニティは表示対象にしない $_is_community_member = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $put_community_row['community_id']); if ($put_community_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D03') && !$_is_community_member) { continue; } $_put_community_row = array(); // プット先コミュニティ情報 $_put_community_row['community_name'] = $put_community_row['community_name']; $_put_community_row['top_page_url'] = $this->getControllerPath('Community', DEFAULT_ACTION); $_put_community_row['top_page_url'] .= '&community_id=' . $put_community_row['community_id']; // プット先フォルダ情報 $put_folder_obj = new ACSCommunityFolder($put_community_row['community_id'], $acs_user_info_row, $put_community_row['put_community_folder_id']); // プット先フォルダ名(コミュニティフォルダのパス) $put_folder_path = $put_folder_obj->get_path_folder_obj_array(); $folder_path_str = ""; foreach ($put_folder_path as $_folder_obj) { // ルートフォルダは追加しない if ($_folder_obj->is_root_folder) { continue; } $folder_path_str .= $_folder_obj->get_folder_name(); $folder_path_str .= "/"; } $_put_community_row['folder_name'] = $folder_path_str; $_put_community_row['folder_link_url'] = $this->getControllerPath('Community', 'Folder'); $_put_community_row['folder_link_url'] .= '&community_id=' . $put_community_row['community_id']; $_put_community_row['folder_link_url'] .= '&folder_id=' . $put_community_row['put_community_folder_id']; array_push($detail_folder_row['put_community_row_array'], $_put_community_row); } } // メニュー if ($is_self_page) { // フォルダ情報編集メニュー $edit_folder_url = $this->getControllerPath('User', 'EditFolder'); $edit_folder_url .= $target_community_info; $edit_folder_url .= $folder_info; $edit_folder_url .= '&edit_folder_id=' . $detail_user_folder_obj->folder_obj->get_folder_id(); $menu['edit_folder_url'] = $edit_folder_url; // フォルダ削除メニュー $delete_folder_url = $this->getControllerPath('User', 'DeleteFolder'); $delete_folder_url .= $target_community_info; $delete_folder_url .= $folder_info; $delete_folder_url .= '&action_type=confirm'; $delete_folder_url .= '&selected_folder[]=' . $detail_user_folder_obj->folder_obj->get_folder_id(); $menu['delete_folder_url'] = $delete_folder_url; // フォルダ移動メニュー $move_folder_url = $this->getControllerPath('User', 'MoveFolderList'); $move_folder_url .= $target_community_info; $move_folder_url .= $folder_info; $move_folder_url .= '&selected_folder[]=' . $detail_user_folder_obj->folder_obj->get_folder_id(); $menu['move_folder_url'] = $move_folder_url; } // 戻り先URL(フォルダ一覧) $back_url = ""; $back_url = $this->getControllerPath('User', 'Folder'); $back_url .= $target_community_info; $back_url .= $folder_info; // テンプレート $this->setScreenId("0001"); $this->setTemplate('FolderDetail.tpl.php'); // set $this->setAttribute('is_self_page', $is_self_page); $this->setAttribute('is_put_available', $is_put_available); $this->setAttribute('target_user_info_row', $_target_user_info_row); $this->setAttribute('path_folder_row_array', $path_folder_row_array); $this->setAttribute('detail_folder_row', $detail_folder_row); $this->setAttribute('menu', $menu); $this->setAttribute('back_url', $back_url); return parent::execute(); }