Exemple #1
0
 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';
 }
Exemple #7
0
/**
 * メッセージをゴミ箱へ移動
 * 受信メッセージの場合は既読にする
 *
 * @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);
 }
Exemple #12
0
/**
 * 参照可能なメッセージかどうか
 *
 * ・指定メンバーが送信者で、完全削除済でない
 * ・指定メンバーが受信者で、送信済であり完全削除済でない
 *
 * @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);
 }