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();
     //削除処理を行う
     $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;
 }
Esempio n. 4
0
 /**
  * image_urlをopen_level別に取得する
  *
  * @param user_community_id ユーザのコミュニティID
  * @param open_level_code_row 公開レベルコードの行
  * @param view_mode 表示モード : NULL, thumb, rss
  * @return 成功(true) / 失敗(false)
  */
 static function get_image_url_with_open_level($user_community_id, $open_level_code_row, $view_mode = '')
 {
     $row = ACSCommunityImageFileModel::get_file_id_with_open_level($user_community_id);
     $image_url = array();
     for ($i = 0; $i < count($open_level_code_row); $i++) {
         if ($row && $row['file_id_ol' . $open_level_code_row[$i]] != '') {
             $image_url[$i] = SCRIPT_PATH . '?';
             $image_url[$i] .= MODULE_ACCESSOR . '=User';
             $image_url[$i] .= '&' . ACTION_ACCESSOR . '=EditProfileImageDisp';
             $image_url[$i] .= '&id=' . $user_community_id;
             $image_url[$i] .= '&mode=' . $view_mode;
             $image_url[$i] .= '&open_level_code=' . $open_level_code_row[$i];
         } else {
             $image_url[$i] = ACSUser::get_default_image_url($view_mode);
         }
     }
     return $image_url;
 }
 /**
  * 該当の公開範囲のファイルIDを取得する
  *
  * @param $community_id コミュニティID
  * @param $open_level_code 公開範囲
  * @return 該当の公開範囲のファイルID
  */
 static function get_file_id_for_open_level($community_id, $open_level_code)
 {
     if (!$community_id) {
         return null;
     }
     if (!$open_level_code) {
         return null;
     }
     $row = ACSCommunityImageFileModel::get_file_id_with_open_level($community_id);
     $match_file_id = $row['file_id_ol' . $open_level_code];
     if (!$match_file_id) {
         return NULL;
     }
     $match_count = 0;
     if ($match_file_id == $row['file_id_ol05']) {
         $match_count++;
     }
     if ($match_file_id == $row['file_id_ol02']) {
         $match_count++;
     }
     if ($match_file_id == $row['file_id_ol01']) {
         $match_count++;
     }
     if ($match_count == 1) {
         return $match_file_id;
     }
     return NULL;
 }
 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}");
 }
Esempio n. 7
0
 /**
  * image_urlを加工する
  *
  * @param community_id
  * @param view_mode    表示モード : NULL, thumb, rss
  */
 static function get_image_url($community_id, $view_mode = '')
 {
     $file_id = ACSCommunityImageFileModel::get_file_id($community_id);
     if ($file_id != '') {
         $image_url = SCRIPT_PATH . '?';
         $image_url .= MODULE_ACCESSOR . '=Community';
         $image_url .= '&' . ACTION_ACCESSOR . '=CommunityImage';
         $image_url .= '&community_id=' . $community_id;
         $image_url .= '&mode=' . $view_mode;
     } else {
         $image_url = ACSCommunity::get_default_image_url($view_mode);
     }
     return $image_url;
 }