function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $target_c_diary_id = $requests['target_c_diary_id'];
     $subject = $requests['subject'];
     $body = $requests['body'];
     $public_flag = util_cast_public_flag_diary($requests['public_flag']);
     $tmpfile_1 = $requests['tmpfile_1'];
     $tmpfile_2 = $requests['tmpfile_2'];
     $tmpfile_3 = $requests['tmpfile_3'];
     $category = array_unique(preg_split('/\\s+/', $requests['category']));
     $is_comment_input = $requests['is_comment_input'];
     // ----------
     //--- 権限チェック
     //日記作成者
     $c_diary = db_diary_get_c_diary4id($target_c_diary_id);
     if ($c_diary['c_member_id'] != $u) {
         handle_kengen_error();
     }
     //---
     $sessid = session_id();
     if (count($category) > 5) {
         $_REQUEST['msg'] = 'カテゴリは5つまでしか指定できません';
         openpne_forward('pc', 'page', 'h_diary_edit');
         exit;
     }
     foreach ($category as $value) {
         if (mb_strwidth($value) > 20) {
             $_REQUEST['msg'] = 'カテゴリはひとつにつき全角10文字(半角20文字)以内で入力してください';
             openpne_forward('pc', 'page', 'h_diary_edit');
             exit;
         }
     }
     // 画像アップロード可能サイズチェック
     $filesize = 0;
     $del_file = array();
     if ($tmpfile_1) {
         $filesize += util_image_get_c_tmp_filesize4filename("d_{$target_c_diary_id}_1", $tmpfile_1);
         if ($c_diary['image_filename_1']) {
             $del_file[] = $c_diary['image_filename_1'];
         }
     }
     if ($tmpfile_2) {
         $filesize += util_image_get_c_tmp_filesize4filename("d_{$target_c_diary_id}_2", $tmpfile_2);
         if ($c_diary['image_filename_2']) {
             $del_file[] = $c_diary['image_filename_2'];
         }
     }
     if ($tmpfile_3) {
         $filesize += util_image_get_c_tmp_filesize4filename("d_{$target_c_diary_id}_3", $tmpfile_3);
         if ($c_diary['image_filename_3']) {
             $del_file[] = $c_diary['image_filename_3'];
         }
     }
     if ($filesize) {
         $result = util_image_check_change_image_upload($filesize, $del_file, $u, 'diary');
         if ($result) {
             if ($result == 2) {
                 $result = 3;
             }
             $_REQUEST['msg'] = util_image_get_upload_err_msg($result);
             openpne_forward('pc', 'page', 'h_diary_edit');
             exit;
         }
     }
     //カテゴリ登録しなおし
     db_diary_category_delete_c_diary_category_diary($target_c_diary_id);
     $c_diary_category_list = db_diary_category_list4c_member_id($c_diary['c_member_id']);
     foreach ($category as $value) {
         if (empty($value)) {
             break;
         }
         // 同一のカテゴリ名が登録済みかどうかを確認
         $c_category_id = 0;
         foreach ($c_diary_category_list as $c_diary_category) {
             if ($c_diary_category['category_name'] == $value) {
                 $c_category_id = $c_diary_category['c_diary_category_id'];
                 break;
             }
         }
         // 未登録の場合は新規に登録する
         if (!$c_category_id) {
             $c_category_id = db_diary_category_insert_category($c_diary['c_member_id'], $value);
         }
         db_diary_category_insert_c_diary_category_diary($target_c_diary_id, $c_category_id);
     }
     $filename_1 = $filename_2 = $filename_3 = '';
     if ($tmpfile_1) {
         db_image_data_delete($c_diary['image_filename_1'], $u);
         $filename_1 = image_insert_c_image4tmp("d_{$target_c_diary_id}_1", $tmpfile_1, $u);
     }
     if ($tmpfile_2) {
         db_image_data_delete($c_diary['image_filename_2'], $u);
         $filename_2 = image_insert_c_image4tmp("d_{$target_c_diary_id}_2", $tmpfile_2, $u);
     }
     if ($tmpfile_3) {
         db_image_data_delete($c_diary['image_filename_3'], $u);
         $filename_3 = image_insert_c_image4tmp("d_{$target_c_diary_id}_3", $tmpfile_3, $u);
     }
     if (!OPENPNE_USE_DIARY_COMMENT) {
         $is_comment_input = $c_diary['is_comment_input'];
     }
     t_image_clear_tmp($sessid);
     db_diary_update_c_diary($target_c_diary_id, $subject, $body, $public_flag, $is_comment_input, $filename_1, $filename_2, $filename_3);
     $p = array('target_c_diary_id' => $target_c_diary_id);
     openpne_redirect('pc', 'page_fh_diary', $p);
 }
Exemple #2
0
/**
 * 日記削除
 * コメント、画像も削除
 *
 * @param int $c_diary_id
 */
function db_diary_delete_c_diary($c_diary_id)
{
    //function cacheの削除
    $c_diary = db_diary_get_c_diary4id($c_diary_id);
    pne_cache_drop('db_diary_get_c_diary_list4c_member_id', $c_diary['c_member_id'], 5);
    // 画像
    db_image_data_delete($c_diary['image_filename_1'], $c_diary['c_member_id']);
    db_image_data_delete($c_diary['image_filename_2'], $c_diary['c_member_id']);
    db_image_data_delete($c_diary['image_filename_3'], $c_diary['c_member_id']);
    // コメント
    $sql = 'SELECT image_filename_1, image_filename_2, image_filename_3, c_member_id FROM c_diary_comment WHERE c_diary_id =?';
    $params = array(intval($c_diary_id));
    $comment_images = db_get_all($sql, $params);
    //カテゴリ
    db_diary_category_delete_c_diary_category_diary($c_diary_id);
    foreach ($comment_images as $value) {
        db_image_data_delete($value['image_filename_1'], $value['c_member_id']);
        db_image_data_delete($value['image_filename_2'], $value['c_member_id']);
        db_image_data_delete($value['image_filename_3'], $value['c_member_id']);
    }
    $sql = 'DELETE FROM c_diary_comment_log WHERE c_diary_id = ?';
    db_query($sql, $params);
    $sql = 'DELETE FROM c_diary_comment WHERE c_diary_id = ?';
    db_query($sql, $params);
    // 日記
    $sql = 'DELETE FROM c_diary WHERE c_diary_id = ?';
    db_query($sql, $params);
}
Exemple #3
0
/**
 * 日記削除
 * コメント、画像も削除
 * 
 * @param int $c_diary_id
 */
function kanshi_db_diary_delete_c_diary($c_diary_id)
{
    if ($c_diary = db_diary_get_c_diary4id($c_diary_id)) {
        //function cacheの削除
        pne_cache_drop('db_diary_get_c_diary_list4c_member_id', $c_diary['c_member_id'], 5);
        // 画像
        image_data_delete($c_diary['image_filename_1']);
        image_data_delete($c_diary['image_filename_2']);
        image_data_delete($c_diary['image_filename_3']);
        // コメント
        $sql = 'SELECT image_filename_1, image_filename_2, image_filename_3 FROM c_diary_comment WHERE c_diary_id =?';
        $params = array(intval($c_diary_id));
        $comment_images = db_get_all($sql, $params);
        //カテゴリ
        db_diary_category_delete_c_diary_category_diary($c_diary_id);
        foreach ($comment_images as $value) {
            image_data_delete($value['image_filename_1']);
            image_data_delete($value['image_filename_2']);
            image_data_delete($value['image_filename_3']);
        }
        $sql = 'DELETE FROM c_diary_comment WHERE c_diary_id = ?';
        db_query($sql, $params);
        // 日記
        $sql = 'DELETE FROM c_diary WHERE c_diary_id = ?';
        if (db_query($sql, $params)) {
            return array(1, 0, '');
        } else {
            return array(0, 2, 'DB更新エラー');
        }
    } else {
        //        return array(0, 99, '既に削除されているか存在しません');
        // 監視ツールがリトライを行ってしまう為、成功フラグを返してしまう
        return array(1, 0, '');
    }
}