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}");
 }
예제 #2
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();
     $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}");
 }
예제 #4
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}");
         }
     }
 }
예제 #5
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;
 }
예제 #6
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}");
         }
     }
 }