function execute($requests) { $u = $GLOBALS['KTAI_C_MEMBER_ID']; $tail = $GLOBALS['KTAI_URL_TAIL']; // --- リクエスト変数 $target_c_message_id = $requests['target_c_message_id']; $from_h_home = $requests['from_h_home']; // ---------- // メッセージデータ取得 $c_message = db_message_c_message4c_message_id($target_c_message_id); //--- 権限チェック if (!util_is_readable_message($u, $target_c_message_id)) { handle_kengen_error(); } //--- // 既読にする db_message_update_c_message_is_read4c_message_id($target_c_message_id, $u); // メッセージデータ //コミュニティおすすめメッセージのURLを置換 list($c_message['body'], $com_url, $friend_url) = k_p_h_message_ktai_url4url($c_message['body'], $tail); //オリジナルファイル名取得 $c_message['original_filename'] = db_file_original_filename4filename($c_message['filename']); $this->set("c_message", $c_message); $this->set("com_url", $com_url); $this->set("friend_url", $friend_url); //送信箱 if ($c_message['c_member_id_from'] == $u) { $box = 'outbox'; } $this->set("next_c_message_id", db_message_get_c_message_next_id4c_message_id($u, $target_c_message_id, $box)); $this->set("prev_c_message_id", db_message_get_c_message_prev_id4c_message_id($u, $target_c_message_id, $box)); return 'success'; }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $c_message_id = $requests['c_message_id']; // ---------- $c_message = db_message_c_message4c_message_id($c_message_id); if (!util_is_readable_message($u, $c_message_id)) { handle_kengen_error(); } if ($c_message['c_member_id_to'] == $u) { // 受信メッセージ if (empty($c_message['is_deleted_to'])) { handle_kengen_error(); // メッセージがごみ箱にない場合は権限エラー } db_message_delete_c_message_to_trash($c_message_id); } elseif ($c_message['c_member_id_from'] == $u) { // 送信メッセージ if (empty($c_message['is_deleted_from'])) { handle_kengen_error(); // メッセージがごみ箱にない場合は権限エラー } db_message_delete_c_message_from_trash($c_message_id, $u); } openpne_redirect('ktai', 'page_h_message_box', array('box' => 'trash')); }
function execute($requests) { $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $c_message_id = $requests['c_message_id']; // ---------- $c_message = db_message_c_message4c_message_id($c_message_id); if (!util_is_readable_message($u, $c_message_id)) { handle_kengen_error(); } if ($c_message['c_member_id_to'] == $u) { // 受信メッセージ if (empty($c_message['is_deleted_to'])) { handle_kengen_error(); // メッセージがごみ箱にない場合は権限エラー } } elseif ($c_message['c_member_id_from'] == $u) { // 送信メッセージ if (empty($c_message['is_deleted_from'])) { handle_kengen_error(); // メッセージがごみ箱にない場合は権限エラー } } $this->set("c_message_id", $c_message_id); return 'success'; }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $subject = $requests['subject']; $body = $requests['body']; $target_c_member_id = $requests['target_c_member_id']; $target_c_message_id = $requests['c_message_id']; $save = $requests['save']; // ---------- if (is_null($subject) || $subject === '') { $p = array('target_c_message_id' => $target_c_message_id, 'msg' => 2); openpne_redirect('ktai', 'page_h_message', $p); } if (is_null($body) || $body === '') { $p = array('target_c_message_id' => $target_c_message_id, 'msg' => 1); openpne_redirect('ktai', 'page_h_message', $p); } //--- 権限チェック //自分以外 if ($target_c_member_id == $u) { handle_kengen_error(); } //target_c_messageが自分宛 $target_c_message = db_message_c_message4c_message_id($target_c_message_id); if ($target_c_message['c_member_id_to'] != $u) { handle_kengen_error(); } // アクセスブロック if (db_member_is_access_block($u, $target_c_member_id)) { openpne_redirect('ktai', 'page_h_access_block'); } //--- if (is_null($save)) { //返信済みにする db_message_update_is_hensin($target_c_message_id); db_message_send_message($u, $target_c_member_id, $subject, $body); } else { // 下書きメッセージ保存 db_message_insert_message_to_is_save($target_c_member_id, $u, $subject, $body, $target_c_message_id); } openpne_redirect('ktai', 'page_h_message_box'); }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $c_message_id = $requests['c_message_id']; // ---------- $c_message = db_message_c_message4c_message_id($c_message_id); $is_deleted = false; // 削除済みのメッセージかどうか $is_sent = false; // メッセージの送信者かどうか if (!util_is_readable_message($u, $c_message_id)) { handle_kengen_error(); } // $u がメッセージを削除したかどうかを判定する if ($c_message['c_member_id_to'] == $u && !empty($c_message['is_deleted_to'])) { // 受信メッセージ $is_deleted = true; } elseif ($c_message['c_member_id_from'] == $u && !empty($c_message['is_deleted_from'])) { // 送信メッセージ $is_deleted = true; $is_sent = true; } if ($is_deleted === true) { // メッセージをごみ箱から戻す db_message_move_message($c_message_id, $u); if ($is_sent === true) { // 遷移先は送信ボックス $p = array('box' => 'outbox'); } else { // 遷移先は受信ボックス $p = array('box' => 'inbox'); } } else { // メッセージをごみ箱に入れる db_message_delete_c_message4c_message_id($c_message_id, $u); $p = array('box' => 'trash'); // 遷移先はごみ箱 } openpne_redirect('ktai', 'page_h_message_box', $p); }
function execute($requests) { $u = $GLOBALS['KTAI_C_MEMBER_ID']; //ランダム50人のフレンド $this->set('c_friend_list', db_friend_ktai_c_friend_list_random4c_member_id($u)); // --- リクエスト変数 $form_val['target_c_message_id'] = $requests['target_c_message_id']; $target_c_member_id = $requests['target_c_member_id']; $subject = $requests['subject']; $body = $requests['body']; // ---------- //メッセージIDから情報を取り出す if (isset($form_val['target_c_message_id'])) { $c_message = db_message_c_message4c_message_id($form_val['target_c_message_id']); // 権限チェック if ($c_message['c_member_id_from'] != $u || $c_message['is_send']) { handle_kengen_error(); } // 内容の不備によるリダイレクト時は値を上書き if ($requests['msg'] && !$c_message) { $c_message['subject'] = $subject; $c_message['body'] = $body; $c_message['c_member_id_to'] = $target_c_member_id; } if (isset($c_message['c_member_id_to'])) { $this->set('target_c_member', db_member_c_member4c_member_id_LIGHT($c_message['c_member_id_to'])); } $form_val = array('target_c_message_id' => $c_message['c_message_id'], 'hensinmoto_c_message_id' => $c_message['hensinmoto_c_message_id'], 'subject' => $c_message['subject'], 'body' => $c_message['body']); } else { $form_val['target_c_member'] = db_member_c_member4c_member_id_LIGHT($target_c_member_id); $form_val['target_c_member_id'] = $target_c_member_id; $form_val['subject'] = $subject; $form_val['body'] = $body; } $this->set('form_val', $form_val); return 'success'; }
/** * メッセージをゴミ箱へ移動 * 受信メッセージの場合は既読にする * * @param int $c_message_id * @param int $c_member_id * @return bool 削除が成功したかどうか */ function db_message_delete_c_message4c_message_id($c_message_id, $c_member_id) { $message = db_message_c_message4c_message_id($c_message_id); $where = 'c_message_id = ' . intval($c_message_id); if ($message['c_member_id_to'] == $c_member_id) { // 受信メッセージ $data = array('is_deleted_to' => 1, 'is_read' => 1); db_update('c_message', $data, $where); return true; } elseif ($message['c_member_id_from'] == $c_member_id) { // 送信メッセージ $data = array('is_deleted_from' => 1); db_update('c_message', $data, $where); return true; } return false; }
function _db_c_message4c_message_id($c_message_id) { return db_message_c_message4c_message_id($c_message_id); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $c_message_id = $requests['c_message_id']; $box = $requests['box']; // ---------- //--- 権限チェック //TODO: if / foreachの中に入っている //--- //削除するメッセージを選択してない if (count($c_message_id) == 0) { $p = array('box' => $box); openpne_redirect('pc', 'page_h_message_box', $p); } if ($box == "trash") { //ごみ箱から if (!empty($requests['move'])) { //ごみ箱から移動 foreach ($c_message_id as $val) { if (!util_is_readable_message($u, $val)) { handle_kengen_error(); } $c_message = db_message_c_message4c_message_id($val); if ($c_message['c_member_id_from'] != $u && $c_message['c_member_id_to'] != $u) { handle_kengen_error(); } db_message_move_message($val, $u); } $p = array('box' => $box); openpne_redirect('pc', 'page_h_message_box', $p); } else { //ごみ箱から完全削除 復元方法なし foreach ($c_message_id as $val) { if (!util_is_readable_message($u, $val)) { handle_kengen_error(); } $c_message = db_message_c_message4c_message_id($val); if ($c_message['c_member_id_from'] == $u) { db_message_delete_c_message_from_trash($val, $u); } elseif ($c_message['c_member_id_to'] == $u) { db_message_delete_c_message_to_trash($val); } else { handle_kengen_error(); } } $p = array('box' => $box); openpne_redirect('pc', 'page_h_message_box', $p); } } else { // メッセージをごみ箱へ移動 foreach ($c_message_id as $val) { if (!util_is_readable_message($u, $val)) { handle_kengen_error(); } $c_message = db_message_c_message4c_message_id($val); if ($c_message['c_member_id_from'] != $u) { if ($c_message['c_member_id_to'] != $u || !$c_message['is_send']) { handle_kengen_error(); } } db_message_update_c_message_is_read4c_message_id($val, $u); db_message_delete_c_message4c_message_id($val, $u); } } $p = array('box' => $box); openpne_redirect('pc', 'page_h_message_box', $p); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $target_c_member_id = $requests['target_c_member_id']; $form_val['subject'] = $requests['subject']; $form_val['body'] = $requests['body']; $box = $requests['box']; $is_syusei = $requests['is_syusei']; $form_val['target_c_message_id'] = $requests['target_c_message_id']; $form_val['jyusin_c_message_id'] = $requests['jyusin_c_message_id']; // ---------- // 権限チェック if ($target_c_member_id == $u) { // 自分にメッセージは送れない handle_kengen_error(); } if ($form_val['target_c_message_id']) { $c_message = db_message_c_message4c_message_id($form_val['target_c_message_id']); if ($c_message['c_member_id_from'] != $u) { if ($c_message['c_member_id_to'] != $u || !$c_message['is_send']) { handle_kengen_error(); } } } $syusei = 0; if ($form_val['subject'] && $form_val['body']) { $syusei = 1; } if (db_member_is_access_block($u, $target_c_member_id)) { openpne_redirect('pc', 'page_h_access_block'); } //メッセージIDから情報を取り出す if ($box == "savebox" && $form_val['target_c_message_id']) { $tmplist = db_message_c_message4c_message_id($form_val['target_c_message_id']); if (!$requests['msg1'] && !$requests['msg2']) { $form_val['subject'] = $tmplist['subject']; $form_val['body'] = $tmplist['body']; } if ($tmplist['c_member_id_to']) { $target_c_member_id = $tmplist['c_member_id_to']; } } elseif (!$syusei && $form_val['target_c_message_id']) { $tmplist = db_message_c_message4c_message_id($form_val['target_c_message_id']); $form_val['body'] = message_body2inyou($tmplist['body']); $form_val['subject'] = "Re:" . $tmplist['subject']; if ($tmplist['c_member_id_from']) { $target_c_member_id = $tmplist['c_member_id_from']; } } $target_member = db_member_c_member4c_member_id($target_c_member_id); if (empty($target_member)) { handle_kengen_error(); } $this->set('inc_navi', fetch_inc_navi('f', $target_c_member_id)); //ターゲット情報 $this->set('target_member', $target_member); //ターゲットのid $this->set('target_c_member_id', $target_c_member_id); //ターゲットのid $this->set('target_c_message_id', $form_val['target_c_message_id']); $this->set('form_val', $form_val); $this->set('box', $box); // 許可されている拡張子のリスト $this->set('allowed_extensions', util_get_file_allowed_extensions('string')); return 'success'; }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $subject = $requests['subject']; $body = $requests['body']; $target_c_member_id = $requests['target_c_member_id']; $target_c_message_id = $requests['target_c_message_id']; $hensinmoto_c_message_id = $requests['hensinmoto_c_message_id']; $save = $requests['save']; // ---------- if (is_null($subject) || $subject === '') { $_REQUEST['target_c_message_id'] = $target_c_message_id; $_REQUEST['msg'] = 2; openpne_forward('ktai', 'page', 'h_message_send'); exit; } if (is_null($body) || $body === '') { $_REQUEST['target_c_message_id'] = $target_c_message_id; $_REQUEST['msg'] = 1; openpne_forward('ktai', 'page', 'h_message_send'); exit; } //--- 権限チェック //自分以外 if ($target_c_member_id == $u) { handle_kengen_error(); } //存在しないメンバー $target_member = db_member_c_member4c_member_id($target_c_member_id); if (empty($target_member)) { handle_kengen_error(); } //アクセスブロック設定 if (db_member_is_access_block($u, $target_c_member_id)) { openpne_redirect('ktai', 'page_h_access_block'); } if ($hensinmoto_c_message_id) { $c_message = db_message_c_message4c_message_id($hensinmoto_c_message_id); if ($c_message['c_member_id_to'] != $u || !$c_message['is_send']) { handle_kengen_error(); } } if ($target_c_message_id != $hensinmoto_c_message_id) { $c_message = db_message_c_message4c_message_id($target_c_message_id); if ($c_message['c_member_id_from'] != $u || $c_message['is_send']) { handle_kengen_error(); } } //--- $c_member_id_from = $u; $c_member_id_to = $target_c_member_id; if (is_null($save)) { if (!isset($target_c_message_id)) { // 新規メッセージ送信 db_message_send_message($c_member_id_from, $c_member_id_to, $subject, $body); } else { // 下書きメッセージ送信 db_message_update_message_to_is_save($target_c_message_id, $subject, $body, 1); do_common_send_message_mail_send($c_member_id_to, $c_member_id_from, $subject, $body, $target_c_message_id); do_common_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from, $subject, $body); // 返信済みにする if (isset($hensinmoto_c_message_id)) { db_message_update_is_hensin($hensinmoto_c_message_id); } } $p = array('box' => 'outbox'); } else { if (!isset($target_c_message_id)) { // 下書きメッセージ新規保存 db_message_insert_message_to_is_save($c_member_id_to, $c_member_id_from, $subject, $body, $hensinmoto_c_message_id); } else { // 下書きメッセージ更新 db_message_update_message_to_is_save($target_c_message_id, $subject, $body); } $p = array('box' => 'savebox'); } openpne_redirect('ktai', 'page_h_message_box', $p); }
/** * 参照可能なメッセージかどうか * * ・指定メンバーが送信者で、完全削除済でない * ・指定メンバーが受信者で、送信済であり完全削除済でない * * @param int $c_member_id * @param int $c_message_id * @return bool */ function util_is_readable_message($c_member_id, $c_message_id) { $c_message = db_message_c_message4c_message_id($c_message_id); if ($c_message['c_member_id_from'] == $c_member_id) { // 自分が送信者 if (!$c_message['is_kanzen_sakujo_from']) { // 完全削除済でない return true; } } elseif ($c_message['c_member_id_to'] == $c_member_id) { // 自分が受信者 if ($c_message['is_send'] && !$c_message['is_kanzen_sakujo_to']) { // 送信済であり完全削除済でない return true; } } return false; }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $c_member_id_to = $requests['c_member_id_to']; $subject = $requests['subject']; $body = $requests['body']; $tmpfile_1 = $requests['tmpfile_1']; $tmpfile_2 = $requests['tmpfile_2']; $tmpfile_3 = $requests['tmpfile_3']; // ---------- // 添付ファイル $fileupload_error = ''; if (OPENPNE_USE_FILEUPLOAD) { $tmpfile_4 = $requests['tmpfile_4']; $tmpfile_4_original_filename = $requests['tmpfile_4_original_filename']; if ($tmpfile_4) { // 拡張子制限 if (!util_check_file_extention($tmpfile_4_original_filename)) { $fileupload_error = sprintf('アップロードできるファイルの種類は(%s)です', util_get_file_allowed_extensions('string')); } } } $msg1 = ""; $msg2 = ""; if (null == $subject) { $msg1 = "件名を入力してください"; } if (null == $body) { $msg2 = "メッセージを入力してください"; } if (!$msg1 && !$msg2 && $fileupload_error) { $msg1 = $fileupload_error; } else { if (!$msg1 && !$msg2 && !$fileupload_error) { //---画像アップロードサイズチェック $filesize = 0; if ($tmpfile_1) { $filesize += util_image_get_c_tmp_filesize4filename("ms_{$c_message_id}_1", $tmpfile_1); } if ($tmpfile_2) { $filesize += util_image_get_c_tmp_filesize4filename("ms_{$c_message_id}_2", $tmpfile_2); } if ($tmpfile_3) { $filesize += util_image_get_c_tmp_filesize4filename("ms_{$c_message_id}_3", $tmpfile_3); } if ($filesize) { $result = util_image_check_add_image_upload($filesize, $u, 'other'); if ($result) { if ($result == 2) { $result = 3; } $msg1 = util_image_get_upload_err_msg($result); } } } } if ($requests['target_c_message_id'] == $requests['jyusin_c_message_id']) { $is_savebox = false; } else { $is_savebox = true; } if ($msg1 || $msg2) { $p = array('target_c_member_id' => $c_member_id_to, 'target_c_message_id' => $requests['target_c_message_id'], 'jyusin_c_message_id' => $requests['jyusin_c_message_id'], 'body' => $requests['body'], 'subject' => $requests['subject'], 'msg1' => $msg1, 'msg2' => $msg2); if ($is_savebox) { $p['box'] = 'savebox'; } openpne_redirect('pc', 'page_f_message_send', $p); } //修正 if ($requests['no']) { $p = array('target_c_member_id' => $c_member_id_to, 'target_c_message_id' => $requests['target_c_message_id'], 'jyusin_c_message_id' => $requests['jyusin_c_message_id'], 'body' => $requests['body'], 'subject' => $requests['subject']); openpne_redirect('pc', 'page_f_message_send', $p); } //--- 権限チェック //送信先が自分以外 if ($c_member_id_to == $u) { handle_kengen_error(); } //存在しないメンバー $target_member = db_member_c_member4c_member_id($c_member_id_to); if (empty($target_member)) { handle_kengen_error(); } //アクセスブロック設定 if (db_member_is_access_block($u, $c_member_id_to)) { openpne_redirect('pc', 'page_h_access_block'); } if ($requests['jyusin_c_message_id']) { $c_message = db_message_c_message4c_message_id($requests['jyusin_c_message_id']); if ($c_message['c_member_id_to'] != $u || !$c_message['is_send']) { handle_kengen_error(); } } if ($requests['target_c_message_id'] != $requests['jyusin_c_message_id']) { $c_message = db_message_c_message4c_message_id($requests['target_c_message_id']); if ($c_message['c_member_id_from'] != $u || $c_message['is_send']) { handle_kengen_error(); } } //--- //返信済みにする if ($requests['jyusin_c_message_id']) { db_message_update_is_hensin($requests['jyusin_c_message_id']); } //下書き保存が存在しない if (!$is_savebox) { $c_message_id = db_message_send_message($u, $c_member_id_to, $subject, $body); } else { $c_message_id = $requests['target_c_message_id']; db_message_update_message_to_is_save($requests['target_c_message_id'], $subject, $body, 1); do_common_send_message_mail_send($c_member_id_to, $u, $subject, $body, $requests['target_c_message_id']); do_common_send_message_mail_send_ktai($c_member_id_to, $u, $subject, $body); } //画像・ファイル挿入 $sessid = session_id(); $filename_1 = image_insert_c_image4tmp("ms_{$c_message_id}_1", $tmpfile_1, $u); $filename_2 = image_insert_c_image4tmp("ms_{$c_message_id}_2", $tmpfile_2, $u); $filename_3 = image_insert_c_image4tmp("ms_{$c_message_id}_3", $tmpfile_3, $u); $filename_4 = ''; if (OPENPNE_USE_FILEUPLOAD) { if ($tmpfile_4) { $filename_4 = file_insert_c_file4tmp("ms_{$c_message_id}_4", $tmpfile_4, $tmpfile_4_original_filename); } } t_image_clear_tmp($sessid); t_file_clear_tmp($sessid); db_message_update_c_message($c_message_id, $subject, $body, $filename_1, $filename_2, $filename_3, $filename_4); $p = array('msg' => 1); openpne_redirect('pc', 'page_h_reply_message', $p); }