예제 #1
0
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $bbs_id = $request->getParameter('id');
     $view_mode = $request->getParameter('mode');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $bbs_row = ACSBBS::get_bbs_row($bbs_id);
     $is_permitted = false;
     /* アクセス権チェック */
     // 閲覧可能かチェックする
     // 削除フラグ、全体の公開範囲をチェック
     // 権限チェック
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     /* 写真表示 */
     // ファイル情報取得
     $image_file_id = $bbs_row['file_id'];
     if ($image_file_id) {
         $file_obj = ACSFile::get_file_info_instance($image_file_id);
         $ret = $file_obj->view_image($view_mode);
     }
 }
 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_user_community_id = $request->ACSgetParameter('id');
     $folder_id = $request->ACSgetParameter('folder_id');
     $file_id = $request->ACSgetParameter('file_id');
     $file_obj = ACSFile::get_file_info_instance($file_id);
     $contents_link_url = $this->getControllerPath('User', 'FileDetail') . "&id=" . $target_user_community_id . "&file_id=" . $file_id . "&folder_id=" . $folder_id;
     // 足跡登録
     $contents_type_name = ACSMsg::get_mst('contents_type_master', 'D33');
     $contents_type_arr = ACSDB::get_master_array("contents_type", "contents_type_name='" . $contents_type_name . "'");
     $form['community_id'] = $target_user_community_id;
     $form['visitor_community_id'] = $acs_user_info_row['user_community_id'];
     $form['contents_type_code'] = array_search($contents_type_name, $contents_type_arr);
     $form['contents_title'] = $file_obj->get_display_file_name();
     $form['contents_link_url'] = $contents_link_url;
     $form['contents_date'] = $file_obj->get_update_date();
     $form['post_date'] = 'now';
     $ret = ACSUser::set_footprint($form);
     header("Location: {$contents_link_url}");
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($request->getParameter('id'));
     $target_user_community_id = $request->getParameter('id');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $target_user_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');
     // ファイルダウンロード処理
     $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
     $folder_obj = $user_folder_obj->get_folder_obj();
     // フォルダの公開範囲でアクセス制御
     if (!$user_folder_obj->has_privilege($target_user_info_row)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ルートフォルダ直下のファイルは本人以外アクセス不可
     $privilege_array = $this->getCredential();
     if ($folder_obj->get_is_root_folder() && !in_array('USER_PAGE_OWNER', $privilege_array)) {
         $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_user_community_id = $request->getParameter('id');
     $image_new_mode = $request->getParameter('image_new_mode');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $file_id = $request->getParameter('file_id');
     $open_level_code = $request->getParameter('open_level_code');
     if ($_FILES['new_file']["name"] == "") {
         print "ERROR: This is not imagefile format.";
     }
     // ファイル情報取得
     $file_obj = ACSFile::get_upload_file_info_instance($_FILES['new_file'], $target_user_community_id, $acs_user_info_row['user_community_id']);
     //ファイルの種類チェック
     $image_check = $file_obj->is_image_file();
     if (!$image_check) {
         print "ERROR: This is not imagefile format.";
     }
     /* ファイルアップロード処理 */
     // ファイルの保存
     $ret = $file_obj->save_upload_file('PROFILE');
     ACSDB::_do_query("BEGIN");
     // 追加のみ
     $ret = $file_obj->add_file();
     if (!$ret) {
         ACSDB::_do_query("ROLLBACK");
         print "ERROR: Update image failed.:file_info";
     } else {
         // 上書きされるファイルIDを取得する
         $delete_file_id = ACSCommunityImageFileModel::get_file_id_for_open_level($target_user_community_id, $open_level_code);
         // 一度削除する(空振りもOK)
         $ret = ACSCommunityImageFileModel::delete_community_image_with_open_level($file_obj, $open_level_code);
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             print "ERROR: Update image failed.:image_file";
         } else {
             //community_image_fileテーブルへの追加
             $ret = ACSCommunityImageFileModel::put_community_image_with_open_level($file_obj, $open_level_code);
             if (!$ret) {
                 ACSDB::_do_query("ROLLBACK");
                 print "ERROR: Update image failed.:image_file";
             } else {
                 // 上書きされるファイルがある場合→削除
                 if ($delete_file_id) {
                     $delete_file_obj = ACSFile::get_file_info_instance($delete_file_id);
                     $delete_file_obj->delete_file();
                 }
                 ACSDB::_do_query("COMMIT");
                 //追加モードのコミット
             }
         }
     }
     /* 表示アクション呼び出し */
     $image_change_url = $this->getControllerPath('User', 'EditProfileImage');
     $image_change_url .= '&id=' . $target_user_community_id;
     header("Location: {$image_change_url}");
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     //削除処理を行う
     $target_user_community_id = $request->getParameter('community_id');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $file_id = $request->getParameter('file_id');
     // ファイル情報取得
     $file_obj = ACSFile::get_file_info_instance($file_id);
     //ファイル情報テーブルのデータ削除
     ACSDB::_do_query("BEGIN");
     $ret = $file_obj->delete_file();
     if (!$ret) {
         ACSDB::_do_query("ROLLBACK");
         print "ERROR: Remove imagefile failed.:file_info";
     } else {
         //community_image_fileテーブルのデータ削除
         $ret = ACSCommunityImageFileModel::delete_community_image($file_obj);
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             print "ERROR: Remove imagefile failed.:image_file";
         } else {
             ACSDB::_do_query("COMMIT");
         }
     }
     //表示
     $image_change_url = $this->getControllerPath('Community', 'EditProfileImage');
     $image_change_url .= '&community_id=' . $target_user_community_id;
     header("Location: {$image_change_url}");
     return View::INPUT;
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $community_id = $request->getParameter('community_id');
     $view_mode = $request->getParameter('mode');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $community_row = ACSCommunity::get_community_profile_row($community_id);
     $is_permitted = false;
     /* アクセス権チェック */
     // 閲覧可能かチェックする
     // 削除フラグ、全体の公開範囲をチェック
     /* 写真表示 */
     // ファイル情報取得
     $image_file_id = $community_row['file_id'];
     if ($image_file_id) {
         $file_obj = ACSFile::get_file_info_instance($image_file_id);
         $ret = $file_obj->view_image($view_mode);
     } else {
         $image_url = ACSCommunity::get_default_image_url($view_mode);
         header("Location: {$image_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');
     $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);
     }
 }
예제 #8
0
 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');
     // 詳細情報を表示するファイルIDを取得
     $file_id = $request->getParameter('file_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);
     $folder_obj = $user_folder_obj->get_folder_obj();
     // フォルダの公開範囲でアクセス制御
     if (!$user_folder_obj->has_privilege($target_user_info_row)) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ルートフォルダ直下のファイルは本人以外アクセス不可
     $privilege_array = $this->getCredential();
     //if ($folder_obj->get_is_root_folder() && !in_array('USER_PAGE_OWNER', $privilege_array)) {
     if ($folder_obj->get_is_root_folder() && !$this->get_execute_privilege()) {
         $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);
     }
     // 足跡情報取得
     $footprint_url = $this->getControllerPath('User', 'FileDetail') . "&id=" . $target_user_community_id . "&file_id=" . $file_obj->get_file_id() . "&folder_id=" . $user_folder_obj->folder_obj->get_folder_id();
     $where = "foot.contents_link_url = '" . $footprint_url . "'";
     $where .= " AND foot.visitor_community_id = '" . $acs_user_info_row['user_community_id'] . "'";
     $footprint_info = ACSUser::get_footprint_list($target_user_community_id, $where);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('file_obj', $file_obj);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     $request->setAttribute('file_detail_info_row', $file_detail_info_row);
     $request->setAttribute('file_history_row_array', $file_history_row_array);
     $request->setAttribute('footprint_info', $footprint_info);
     return View::SUCCESS;
 }
예제 #9
0
 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;
 }
 /**
  * コミュニティ削除処理
  */
 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;
     }
     /* コミュニティ情報取得 */
     $target_community_id = $request->getParameter('community_id');
     $target_community_row = ACSCommunity::get_community_row($request->getParameter('community_id'));
     /* 削除処理 */
     ACSDB::_do_query("BEGIN");
     $ret = ACSCommunity::delete_community($target_community_id);
     if (!$ret) {
         ACSDB::_do_query("ROLLBACK");
         "ERROR : delete community failed";
         exit;
     }
     // フォルダのディレクトリ移動
     $from_dir = ACS_FOLDER_DIR . "/";
     $from_dir .= ACSFile::get_upload_file_save_path($target_community_id);
     if (file_exists($from_dir)) {
         $to_dir = ACS_TRASH_FOLDER_DIR . "/";
         $to_dir .= ACSFile::get_upload_file_save_path($target_community_id);
         if (!file_exists(ACS_TRASH_FOLDER_DIR)) {
             // 置き場所ディレクトリがなければ作成する
             mkdir(ACS_TRASH_FOLDER_DIR);
             chmod(ACS_TRASH_FOLDER_DIR, 0777);
         }
         $ret = rename($from_dir, $to_dir);
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             "ERROR : delete community failed";
             exit;
         }
     }
     ACSDB::_do_query("COMMIT");
     /* 完了画面表示 */
     // 引数セット
     $message = ACSMsg::get_tag_replace(ACSMsg::get_msg('Community', 'DeleteCommunityAction.class.php', 'DELETECM'), array('{TARGET_COMMUNITY_NAME}' => $target_community_row['community_name']));
     $top_page_url = $this->getControllerPath('User', 'Index');
     $top_page_link_name = ACSMsg::get_msg('Community', 'DeleteCommunityAction.class.php', 'M001');
     $done_obj = new ACSDone();
     $done_obj->set_title(ACSMsg::get_msg('Community', 'DeleteCommunityAction.class.php', 'M002'));
     $done_obj->set_message($message);
     $done_obj->add_link($top_page_link_name, $top_page_url);
     $request->setAttribute('done_obj', $done_obj);
     // 画面呼び出し
     $controller->forward('Common', 'Done');
 }
 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');
     $file_history_id = $request->getParameter('file_history_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;
         //return VIEW_NONE;
     }
     $file_info_row = ACSFileInfoModel::select_file_info_row($file_id);
     $file_history_row = ACSFileHistory::get_file_history_row($file_history_id);
     // form
     $form = $request->ACSGetParameters();
     // ファイル復活処理
     // フォルダobj
     $community_folder_obj = new ACSUserFolder($target_community_id, $acs_user_info_row, $target_community_folder_id);
     $folder_obj = $community_folder_obj->get_folder_obj();
     // file_info更新
     $ret = $folder_obj->restore_history_file($file_info_row, $file_history_row);
     if (!$ret) {
         print "ERROR: Restore file failed.";
     }
     // ファイル履歴情報登録
     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_msg('Community', '', 'M001'));
     }
     // ファイル詳細情報へ遷移
     $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}");
     //return VIEW_NONE;
 }
예제 #13
0
 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_user_community_id = $request->getParameter('id');
     $target_user_community_folder_id = $request->getParameter('folder_id');
     $file_id = $request->getParameter('file_id');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // form
     $form = $request->ACSGetParameters();
     // ファイル更新処理
     if ($_FILES['new_file']['tmp_name'] != '') {
         // ファイルobj
         $file_obj = ACSFile::get_upload_file_info_instance_for_update($_FILES['new_file'], $target_user_community_id, $acs_user_info_row['user_community_id'], $file_id);
         // フォルダobj
         $user_folder_obj = new ACSUserFolder($target_user_community_id, $acs_user_info_row, $target_user_community_folder_id);
         $folder_obj = $user_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: Upload file failed.";
     }
     // ファイル履歴情報登録
     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'));
     }
     // ファイル詳細情報へ遷移
     $file_detail_url = $this->getControllerPath('User', 'FileDetail');
     $file_detail_url .= '&id=' . $target_user_community_id;
     $file_detail_url .= '&file_id=' . $file_id;
     $file_detail_url .= '&folder_id=' . $target_user_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');
     // ファイル履歴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}");
 }
예제 #15
0
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $target_user_community_id = $request->getParameter('id');
     $view_mode = $request->getParameter('mode');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $target_user_info_row = ACSUser::get_user_profile_row($target_user_community_id);
     $is_permitted = false;
     /* アクセス権チェック */
     // マイページが閲覧可能かチェックする
     // 削除フラグ、全体の公開範囲をチェック
     /* 写真表示 */
     // ファイル情報取得
     // (1) 一般ユーザ(外部ユーザ)かどうか
     if (!$acs_user_info_row['is_acs_user']) {
         $image_file_id = $target_user_info_row['file_id_ol01'];
     } else {
         // (2) ログインユーザかどうか
         $image_file_id = $target_user_info_row['file_id_ol02'];
         // (3) 友人かどうか
         if (ACSUser::is_in_friends_id_array($acs_user_info_row, $target_user_info_row['user_community_id'])) {
             $image_file_id = $target_user_info_row['file_id_ol05'];
         }
         // (4) 本人かどうか
         if ($acs_user_info_row['user_id'] == $target_user_info_row['user_id']) {
             $image_file_id = $target_user_info_row['file_id_ol05'];
         }
         // (5) システム管理者かどうか
         if (ACSAccessControl::is_system_administrator($acs_user_info_row)) {
             $image_file_id = $target_user_info_row['file_id_ol05'];
         }
     }
     if ($image_file_id) {
         $file_obj = ACSFile::get_file_info_instance($image_file_id);
         $ret = $file_obj->view_image($view_mode);
     } else {
         $image_url = ACSUser::get_default_image_url($view_mode);
         header("Location: {$image_url}");
     }
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     //削除処理を行う
     $target_user_community_id = $request->getParameter('id');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $file_id = $request->getParameter('file_id');
     $open_level_code = $request->getParameter('open_level_code');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ファイル情報取得
     $file_obj = ACSFile::get_file_info_instance($file_id);
     //ファイル情報テーブルのデータ削除
     ACSDB::_do_query("BEGIN");
     $ret = ACSCommunityImageFileModel::delete_community_image_with_open_level($file_obj, $open_level_code);
     if (!$ret) {
         ACSDB::_do_query("ROLLBACK");
         print "ERROR: Delete image failed. :image_file";
     } else {
         $row = ACSCommunityImageFileModel::get_file_id_with_open_level($file_obj->get_owner_community_id());
         if ($row == NULL || $file_id != $row['file_id_ol05'] && $file_id != $row['file_id_ol02'] && $file_id != $row['file_id_ol01']) {
             // ファイルごと削除
             $ret = $file_obj->delete_file();
         }
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             print "ERROR: Delete image failed. :image_file";
         } else {
             ACSDB::_do_query("COMMIT");
         }
     }
     //表示
     $image_change_url = $this->getControllerPath('User', 'EditProfileImage');
     $image_change_url .= '&id=' . $target_user_community_id;
     header("Location: {$image_change_url}");
     return View::INPUT;
 }
 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');
     // 対象となるユーザコミュニティIDを取得
     $target_community_id = $request->getParameter('community_id');
     // 対象となるフォルダIDを取得
     $target_community_folder_id = $request->getParameter('folder_id');
     // 詳細情報を表示するファイル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();
     $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);
     if ($ret) {
         $file_detail_url = $this->getControllerPath('Community', 'FileDetail');
         $file_detail_url .= '&community_id=' . $target_community_id;
         $file_detail_url .= '&folder_id=' . $target_community_folder_id;
         $file_detail_url .= '&file_id=' . $file_id;
         // ファイル詳細情報URLへ
         header("Location: {$file_detail_url}");
     }
 }
예제 #18
0
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $diary_file_id = $request->getParameter('id');
     $view_mode = $request->getParameter('mode');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $is_permitted = false;
     /* アクセス権チェック */
     // 閲覧可能かチェックする
     // 削除フラグ、全体の公開範囲をチェック
     /* 写真表示 */
     // ファイル情報取得
     $image_file_id = $diary_file_id;
     if ($image_file_id) {
         $file_obj = ACSFile::get_file_info_instance($image_file_id);
         $ret = $file_obj->view_image($view_mode);
     }
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $target_user_community_id = $request->getParameter('id');
     $view_mode = $request->getParameter('mode');
     $open_level_code = $request->getParameter('open_level_code');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $target_user_info_row = ACSUser::get_user_profile_row($target_user_community_id);
     $is_permitted = false;
     /* 写真表示 */
     // ファイル情報取得
     $image_file_id = $target_user_info_row['file_id_ol' . $open_level_code];
     if ($image_file_id) {
         $file_obj = ACSFile::get_file_info_instance($image_file_id);
         $ret = $file_obj->view_image($view_mode);
     } else {
         $image_url = ACSUser::get_default_image_url($view_mode);
         header("Location: {$image_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を取得
     $target_user_community_id = $request->getParameter('id');
     // 対象となるフォルダIDを取得
     $target_user_community_folder_id = $request->getParameter('folder_id');
     // 詳細情報を表示するファイルIDを取得
     $file_id = $request->getParameter('file_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);
     // ファイル情報取得
     $file_obj = ACSFile::get_file_info_instance($file_id);
     // ファイルの詳細情報
     $file_detail_info_row = ACSFileDetailInfo::get_file_detail_info_row($file_id);
     // マスタ
     $file_category_master_array = ACSDB::get_master_array('file_category');
     $file_contents_type_master_array = ACSDB::get_master_array('file_contents_type');
     // ファイルカテゴリコードごとのファイルコンテンツ種別の連想配列を取得する
     $file_contents_type_master_row_array_array = ACSFileDetailInfo::get_file_contents_type_master_row_array_array();
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('file_obj', $file_obj);
     $request->setAttribute('user_folder_obj', $user_folder_obj);
     $request->setAttribute('file_detail_info_row', $file_detail_info_row);
     $request->setAttribute('file_contents_type_master_row_array_array', $file_contents_type_master_row_array_array);
     $request->setAttribute('file_category_master_array', $file_category_master_array);
     $request->setAttribute('file_contents_type_master_array', $file_contents_type_master_array);
     return View::SUCCESS;
 }
예제 #21
0
 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;
 }
예제 #22
0
 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;
     }
     //mode 画面の遷移を取得する
     $move_id = $request->getParameter('move_id');
     // 公開範囲
     $open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master', 'D40'), ACSMsg::get_mst('contents_type_master', 'D42'));
     // ユーザー情報
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるコミュニティIDを取得
     $community_id = $request->getParameter('community_id');
     //エラーの初期化
     /* 入力画面より */
     if ($move_id == 1) {
         $err = 'OK';
         //エラー値の初期化
         //☆☆ ここからほぼ同じ
         // 画面上のフォーム情報を取得する
         $form['subject'] = $request->getParameter('subject');
         //件名:subject
         $form['body'] = $request->getParameter('body');
         //内容:body
         $form['open_level_code'] = $request->getParameter('open_level_code');
         //公開範囲コード:open_level_code
         foreach ($open_level_master_row_array as $open_level_master_row) {
             if ($open_level_master_row['open_level_code'] == $form['open_level_code']) {
                 $form['open_level_name'] = htmlspecialchars($open_level_master_row['open_level_name']);
                 //公開範囲表示名:open_level_name
             }
         }
         $form['new_file'] = $request->getParameter('new_file');
         //画像:new_file
         //ファイル情報のあるなしをチェックしておく
         if (!ini_get('mbstring.encoding_translation')) {
             $form['file_name'] = mb_convert_encoding($_FILES['new_file']['name'], mb_internal_encoding(), mb_http_output());
         } else {
             $form['file_name'] = $_FILES['new_file']['name'];
         }
         if ($form['file_name'] != '') {
             /* ディレクトリ存在チェック */
             // ない場合は作成する
             $to_dir = ACS_TEMPORARY_FILE_DIR;
             if (!file_exists($to_dir)) {
                 mkdir($to_dir);
                 chmod($to_dir, 0777);
             }
             //ファイルがある場合、仮置き場所を設定する
             $_FILES['new_file']['upload_tmp_dir'] = ACS_TEMPORARY_FILE_DIR;
             //仮置きのファイル名を設定する
             $type_name = session_id();
             $upload = $_FILES['new_file']['upload_tmp_dir'];
             $upload .= $type_name;
             if (!move_uploaded_file($_FILES['new_file']['tmp_name'], $upload)) {
                 echo "ファイルの読み込みに失敗しました\n";
             }
             $_FILES['new_file']['tmp_name'] = $upload;
             $form['file_obj'] = $_FILES['new_file'];
             $user->setAttribute('new_file_info', $upload);
             $user->setAttribute('new_file_obj', $_FILES['new_file']);
         }
         $form['xdate'] = $request->getParameter('xdate');
         //掲載最終日:xdate
         //掲載最終日デフォルト値
         if ($form['xdate'] == '') {
             $form[xdate] = '';
         }
         //閲覧許可コミュニティ
         $form['trusted_community_id_array'] = $request->getParameter('trusted_community_id_array');
         $form['trusted_community_row_array'] = ACSCommunity::get_each_community_row_array($form['trusted_community_id_array']);
         $form['community_id'] = $community_id;
         //当コミュニティのID
         $form['user_community_id'] = $acs_user_info_row['user_community_id'];
         // 投稿者print "form_row:";
         // ML送信オプション
         $form['is_ml_send'] = $request->getParameter('is_ml_send');
         //画像:new_file
         //☆☆ ここまでほぼ同じ
         $user->setAttribute('new_form_obj', $form);
         return View::SUCCESS;
         /* 登録確定ボタン「はい」より */
     } else {
         if ($move_id == 2) {
             //☆☆ ここからほぼ同
             // 画面上のフォーム情報を取得する
             $form = $user->getAttribute('new_form_obj');
             $new_file_obj = $form['file_obj'];
             //☆☆ ここまでほぼ同じ
             // DBへの書き込み等
             ACSDB::_do_query("BEGIN");
             if ($form['file_name'] != "") {
                 //ファイル情報があった場合
                 //1.ファイル情報取得(新規)
                 $file_obj = ACSFile::get_upload_file_info_instance($user->getAttribute('new_file_obj'), $community_id, $form['user_community_id']);
                 //form情報へ登録
                 $form['new_file'] = $file_obj;
             }
             //2.bbsテーブル情報
             $ret = ACSBBS::set_bbs($form);
             if ($ret) {
                 ACSDB::_do_query("COMMIT");
                 // 掲示板アクセス履歴
                 ACSBBS::set_bbs_access_history($acs_user_info_row['user_community_id'], $ret);
             } else {
                 ACSDB::_do_query("ROLLBACK");
             }
             $bbs_id_seq = $ret;
             // MLオプションありの場合
             if ($form['is_ml_send'] == 't') {
                 // MLステータスの取得
                 $ml_status_row = ACSCommunity::get_contents_row($community_id, ACSMsg::get_mst('contents_type_master', 'D62'));
                 $ml_status = $ml_status_row['contents_value'];
                 // ML有りの場合メールを送信
                 if ($bbs_id_seq && $ml_status == 'ACTIVE') {
                     // 件名編集
                     $subject = str_replace('{BBSID}', $bbs_id_seq, ACS_COMMUNITY_ML_SUBJECT_FORMAT) . $form['subject'];
                     // ML送信
                     ACSCommunityMail::send_community_mailing_list($community_id, $acs_user_info_row['mail_addr'], $subject, $form['body']);
                 }
             }
             $action_url = $this->getControllerPath('Community', 'BBS') . '&community_id=' . $community_id . '&move_id=4';
             header("Location: {$action_url}");
         }
     }
 }
예제 #23
0
 /**
  * 日記htmlコンテンツの作成
  * 
  * @param string $diary_row 日記配列
  * @param string $encoding エンコーディング
  */
 function create_diary_html($diary_row, $encoding = '')
 {
     $file_head = date("Ymd_His", ACSLib::convert_pg_date_to_timestamp($diary_row['post_date']));
     $this->diary_file_names[$file_head]++;
     if ($this->diary_file_names[$file_head] > 1) {
         $file_head .= '_' . ($this->diary_file_names[$html_file] - 1);
     }
     $html_file = $file_head . '.html';
     // 基本項目の置換
     $contents = _ACSDIARYBACKUP_DIARY_FORMAT;
     $contents = mb_ereg_replace('@SUBJECT@', htmlspecialchars($diary_row['subject']), $contents);
     $contents = mb_ereg_replace('@POST_DATE@', htmlspecialchars(ACSLib::convert_pg_date_to_str($diary_row['post_date'])), $contents);
     $contents = mb_ereg_replace('@BODY@', nl2br(htmlspecialchars($diary_row['body'])), $contents);
     $contents = mb_ereg_replace('@OPEN_LEVEL_TITLE@', htmlspecialchars(ACSMsg::get_mdmsg(__FILE__, 'M001')), $contents);
     $contents = mb_ereg_replace('@OPEN_LEVEL_NAME@', htmlspecialchars($diary_row['open_level_name']), $contents);
     // イメージファイルがある場合
     $image_file_id = $diary_row['file_id'];
     if ($image_file_id != '') {
         $file_obj = ACSFile::get_file_info_instance($image_file_id);
         // 拡張子の取得
         mb_ereg("^.*(\\.[^\\.\\/]*)", $file_obj->get_display_file_name(), $matches);
         $ext = $matches[1];
         // ファイル名の生成
         $img_from = ACS_FOLDER_DIR . $file_obj->get_server_file_name();
         $img_to = $this->img_dir . '/' . $file_head . $ext;
         $img_thumb_from = ACS_FOLDER_DIR . $file_obj->get_thumbnail_server_file_name();
         $img_thumb_to = $this->img_dir . '/thumb_' . $file_head . '.jpg';
         // URLの生成
         $img_url = $this->diary_to_img_url . '/' . $file_head . $ext;
         $img_thumb_url = $this->diary_to_img_url . '/thumb_' . $file_head . '.jpg';
         // イメージファイルの作成
         @copy($img_from, $img_to);
         @copy($img_thumb_from, $img_thumb_to);
         // リンクタグの生成
         $contents = mb_ereg_replace('@IMAGE@', '<div><a href="' . $img_url . '">' . '<img src="' . $img_thumb_url . '" border="0"></a></div><br>', $contents);
     } else {
         $contents = mb_ereg_replace('@IMAGE@', '', $contents);
     }
     // コメントの取得
     $diary_comment_row_array = ACSDiary::get_diary_comment_row_array($diary_row['diary_id']);
     // コメント部分の生成
     $comments = "";
     foreach ($diary_comment_row_array as $diary_comment_row) {
         if ($diary_comment_row['diary_comment_delete_flag'] == 'f') {
             $comment_contents = _ACSDIARYBACKUP_DIARY_COMMENT_FORMAT;
             $comment_contents = mb_ereg_replace('@POST_DATE@', htmlspecialchars(ACSLib::convert_pg_date_to_str($diary_comment_row['post_date'])), $comment_contents);
             $comment_contents = mb_ereg_replace('@COMMUNITY_NAME@', htmlspecialchars($diary_comment_row['community_name']), $comment_contents);
             $comment_contents = mb_ereg_replace('@BODY@', nl2br(htmlspecialchars($diary_comment_row['body'])), $comment_contents);
             $comments .= $comment_contents;
         }
     }
     // コメントの置換
     $contents = mb_ereg_replace('@COMMENTS@', $comments, $contents);
     // contents 自身の変換
     if ($encoding != '') {
         $contents = mb_convert_encoding($contents, $encoding);
     }
     // ファイルへの出力
     $fp = fopen($this->diary_dir . '/' . $html_file, "w");
     fputs($fp, $contents);
     fclose($fp);
     return $html_file;
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $target_user_community_id = $request->getParameter('community_id');
     $image_new_mode = $request->getParameter('image_new_mode');
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     $file_id = $request->getParameter('file_id');
     if (!$this->get_execute_privilege()) {
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     //追加と更新の分岐 ver1.1
     // $image_new_modeフラグ
     // file_infoテーブルへの追加trueまたは更新false
     if ($image_new_mode) {
         // ファイル情報取得(新規の場合)
         $file_obj = ACSFile::get_upload_file_info_instance($_FILES['new_file'], $target_user_community_id, $acs_user_info_row['user_community_id']);
     } else {
         // ファイル情報取得(更新の場合)
         $file_obj = ACSFile::get_upload_file_info_instance($_FILES['new_file'], $target_user_community_id, $acs_user_info_row['user_community_id'], $file_id);
     }
     //ファイルの種類チェック
     $image_check = $file_obj->is_image_file();
     if (!$image_check) {
         print "ERROR: This file is not image-format.";
     }
     /* ファイルアップロード処理 */
     // ファイルの保存
     $ret = $file_obj->save_upload_file('PROFILE');
     ACSDB::_do_query("BEGIN");
     if ($image_new_mode) {
         $ret = $file_obj->add_file();
     } else {
         $ret = ACSFileInfoModel::update_all_file_info($file_obj);
     }
     if (!$ret) {
         ACSDB::_do_query("ROLLBACK");
         print "ERROR: Upload image-file failed.:file_info";
     } else {
         if ($image_new_mode) {
             //community_image_fileテーブルへの追加
             $ret = ACSCommunityImageFileModel::insert_community_image($file_obj);
             if (!$ret) {
                 ACSDB::_do_query("ROLLBACK");
                 print "ERROR: Upload image-file failed.:image_file";
             } else {
                 ACSDB::_do_query("COMMIT");
                 //追加モードのコミット
             }
         } else {
             ACSDB::_do_query("COMMIT");
             //更新モードのコミット
         }
     }
     /* 表示アクション呼び出し */
     $image_change_url = $this->getControllerPath('Community', 'EditProfileImage');
     $image_change_url .= '&community_id=' . $target_user_community_id;
     header("Location: {$image_change_url}");
 }
예제 #25
0
 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;
 }
예제 #26
0
 /**
  * ファイルダウンロード機能用:ダウンロードファイル名を取得する
  *
  * @return ファイル名
  */
 function get_download_name($p_filename)
 {
     $encoding = ACSFile::get_current_mb_encoding();
     if ($encoding === null) {
         return $p_filename;
     }
     $ua = $_SERVER['HTTP_USER_AGENT'];
     // ユーザーエージェントによってファイル名を変換
     if (strstr($ua, 'MSIE') && !strstr($ua, 'Opera')) {
         $t_filename = mb_convert_encoding($p_filename, 'SJIS-win', $encoding);
     } elseif (strstr($ua, 'Safari')) {
         // Safari対応
         $t_filename = "";
     } else {
         $t_filename = mb_convert_encoding($p_filename, 'UTF-8', $encoding);
     }
     return $t_filename;
 }
예제 #27
0
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     //mode 画面の遷移を取得する
     $move_id = $request->getParameter('move_id');
     // 公開範囲
     $open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master', 'D10'), ACSMsg::get_mst('contents_type_master', 'D21'));
     // ユーザー情報
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるUserIDを取得
     $user_community_id = $request->getParameter('id');
     /* 入力画面より */
     if ($move_id == 1) {
         //☆☆ ここからほぼ同じ
         // 画面上のフォーム情報を取得する
         $form['subject'] = $request->getParameter('subject');
         //件名:subject
         $form['body'] = $request->getParameter('body');
         //内容:body
         $form['open_level_code'] = $request->getParameter('open_level_code');
         //公開範囲コード:open_level_code
         foreach ($open_level_master_row_array as $open_level_master_row) {
             if ($open_level_master_row['open_level_code'] == $form['open_level_code']) {
                 $form['open_level_name'] = htmlspecialchars($open_level_master_row['open_level_name']);
                 //公開範囲表示名:open_level_name
             }
         }
         $form['trusted_community_flag'] = $request->getParameter('trusted_community_flag');
         //マイフレンズグループを指定した場合
         $form['trusted_community_id_array'] = $request->getParameter('trusted_community_id_array');
         //選択したグループ群
         $form['new_file'] = $request->getParameter('new_file');
         //画像:new_file
         //ファイル情報のあるなしをチェックしておく
         if (!ini_get('mbstring.encoding_translation')) {
             $form['file_name'] = mb_convert_encoding($_FILES['new_file']['name'], mb_internal_encoding(), mb_http_output());
         } else {
             $form['file_name'] = $_FILES['new_file']['name'];
         }
         if ($form['file_name'] != '') {
             /* ディレクトリ存在チェック */
             // ない場合は作成する
             $to_dir = ACS_TEMPORARY_FILE_DIR;
             if (!file_exists($to_dir)) {
                 mkdir($to_dir);
                 chmod($to_dir, 0777);
             }
             //ファイルがある場合、仮置き場所を設定する
             $_FILES['new_file']['upload_tmp_dir'] = ACS_TEMPORARY_FILE_DIR;
             //仮置きのファイル名を設定する
             $type_name = session_id();
             $upload = $_FILES['new_file']['upload_tmp_dir'];
             $upload .= $type_name;
             if (!move_uploaded_file($_FILES['new_file']['tmp_name'], $upload)) {
                 echo "Read file failed.\n";
             }
             $_FILES['new_file']['tmp_name'] = $upload;
             $form['file_obj'] = $_FILES['new_file'];
             $user->setAttribute('new_file_info', $upload);
             $user->setAttribute('new_file_obj', $_FILES['new_file']);
         }
         $form['user_community_id'] = $user_community_id;
         $user->setAttribute('new_form_obj', $form);
         //☆☆ ここまでほぼ同じ
         return View::SUCCESS;
         /* 登録確定ボタン「はい」より */
     } else {
         if ($move_id == 2) {
             $user_community_id = $request->getParameter('id');
             //☆☆ ここからほぼ同じ
             // 画面上のフォーム情報を取得する
             $form = $user->getAttribute('new_form_obj');
             $new_file_obj = $form['file_obj'];
             // ☆☆ ここまでほぼ同じ
             // DBへの書き込み等
             ACSDB::_do_query("BEGIN");
             if ($form['file_name'] != "") {
                 //ファイル情報があった場合
                 //1.ファイル情報取得(新規)
                 $file_obj = ACSFile::get_upload_file_info_instance($user->getAttribute('new_file_obj'), $user_community_id, $form['user_community_id']);
                 if ($file_obj) {
                     //form情報へ登録
                     $form['new_file'] = $file_obj;
                 } else {
                     echo "Create file failed.";
                     return;
                 }
             }
             //2.Diaryテーブル情報
             $ret = ACSDiary::set_Diary($form);
             if ($ret) {
                 ACSDB::_do_query("COMMIT");
             } else {
                 ACSDB::_do_query("ROLLBACK");
             }
             // 書き込み後、GETの処理へ
             $diary_top_page_url = $this->getControllerPath('User', 'Diary') . '&id=' . $user_community_id;
             header("Location: {$diary_top_page_url}");
         }
     }
 }
예제 #28
0
 /**
  * 掲示板の親記事を更新する
  *
  * @param 親記事情報の配列
  * @return 成功(true) / 失敗(false)
  */
 static function update_bbs($form)
 {
     $org_form = $form;
     ACSLib::escape_sql_array($form);
     ACSLib::get_sql_value_array($form);
     // bbs更新
     $sql = "UPDATE bbs";
     $sql .= " SET";
     $sql .= "  subject = {$form['subject']},";
     $sql .= "  body = {$form['body']}";
     $sql .= " WHERE";
     $sql .= "  bbs_id = {$form['bbs_id']}";
     $ret = ACSDB::_do_query($sql);
     if (!$ret) {
         ACSDB::_do_query("ROLLBACK");
         return $ret;
     }
     $form = $org_form;
     if ($_FILES['new_file']['tmp_name'] != '') {
         // 画像ファイルobjの取得
         $file_obj = ACSFile::get_upload_file_info_instance($_FILES['new_file'], $form['community_id'], $form['user_community_id']);
         // ファイルをディスクに保存
         $ret = $file_obj->save_upload_file('BBS');
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             return $ret;
         }
         //ファイル情報をDBへ保存
         $ret = $file_obj->add_file();
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             return $ret;
         }
         // bbsファイルの更新
         $ret = ACSBBSFile::update_bbs_file($file_obj, $form['bbs_id']);
         if (!$ret) {
             ACSDB::_do_query("ROLLBACK");
             return $ret;
         }
     }
     return $ret;
 }
 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;
 }
예제 #30
0
 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}");
 }