function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $target_c_diary_id = $requests['target_c_diary_id'];
     $target_c_diary_comment_id = $requests['target_c_diary_comment_id'];
     // ----------
     // target が指定されていない
     if (!$target_c_diary_id) {
         openpne_redirect('pc', 'page_h_err_fh_diary');
     }
     // target の日記が存在しない
     if (!p_common_is_active_c_diary_id($target_c_diary_id)) {
         openpne_redirect('pc', 'page_h_err_fh_diary');
     }
     $target_diary = db_diary_get_c_diary4id($target_c_diary_id);
     // 削除するコメントがが指定されていない
     if (!$target_c_diary_comment_id) {
         $p = array('target_c_diary_id' => $target_c_diary_id);
         openpne_redirect('pc', 'page_fh_diary', $p);
     }
     // コメントIDが不正
     foreach ($target_c_diary_comment_id as $item) {
         $comment = _do_c_diary_comment4c_diary_comment_id($item);
         if ($comment['c_diary_id'] != $target_c_diary_id || $comment['c_member_id'] != $u && $target_diary['c_member_id'] != $u) {
             $p = array('target_c_diary_id' => $target_c_diary_id);
             openpne_redirect('pc', 'page_fh_diary', $p);
         }
     }
     // オブジェクトの振り分け用
     $target_c_member_id = $target_diary['c_member_id'];
     // inc_navi.tpl
     if ($target_c_member_id == $u) {
         $type = 'h';
         $is_diary_admin = true;
     } else {
         $type = 'f';
         $is_diary_admin = false;
     }
     $this->set('inc_navi', fetch_inc_navi($type, $target_c_member_id));
     $this->set('is_diary_admin', $is_diary_admin);
     $this->set('member', db_member_c_member4c_member_id($u));
     $this->set('target_member', db_member_c_member4c_member_id($target_c_member_id));
     $this->set('target_diary', $target_diary);
     //削除するコメント一覧
     $list = db_diary_get_c_diary_comment_list4id_list($target_c_diary_comment_id);
     $this->set('target_diary_comment_list', array_shift($list));
     //削除するコメントID
     $this->set('target_c_diary_comment_id', $target_c_diary_comment_id);
     return 'success';
 }
Beispiel #2
0
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $target_c_diary_id = $requests['target_c_diary_id'];
     $subject = $requests['subject'];
     $body = $requests['body'];
     $public_flag = $requests['public_flag'];
     $category = $requests['category'];
     $is_comment_input = $requests['is_comment_input'];
     // ----------
     $c_diary = db_diary_get_c_diary4id($target_c_diary_id);
     // target が指定されていない
     // 新規作成
     if (!$target_c_diary_id) {
         openpne_redirect('pc', 'page_h_diary_add');
     }
     // target の日記が存在しない
     if (!p_common_is_active_c_diary_id($target_c_diary_id) && $target_c_diary_id != null) {
         openpne_redirect('pc', 'page_h_err_fh_diary');
     }
     //--- 権限チェック
     //日記の作成者
     if ($u != $c_diary['c_member_id']) {
         handle_kengen_error();
     }
     //登録されている写真を削除 0は削除しない 1は削除する
     if ($_REQUEST['del_img'] & 0x1 == 1) {
         $c_diary['image_filename_1'] = "";
     }
     if ($_REQUEST['del_img'] & 0x2 == 1) {
         $c_diary['image_filename_2'] = "";
     }
     if ($_REQUEST['del_img'] & 0x4 == 1) {
         $c_diary['image_filename_3'] = "";
     }
     $this->set('del_img', $_REQUEST['del_img']);
     $this->set('inc_navi', fetch_inc_navi('h'));
     //プロフィール
     $this->set("target_member", db_member_c_member4c_member_id($u));
     //カレンダー関係
     //カレンダー開始用変数
     $time = strtotime($c_diary['r_datetime']);
     $year = date('Y', $time);
     $month = date('n', $time);
     //日記一覧、カレンダー用変数
     $date_val = array('year' => $year, 'month' => $month, 'day' => null);
     $this->set("date_val", $date_val);
     //日記のカレンダー
     $calendar = db_common_diary_monthly_calendar($year, $month, $u);
     $this->set("calendar", $calendar['days']);
     $this->set("ym", $calendar['ym']);
     //各月の日記
     $this->set("date_list", p_fh_diary_list_date_list4c_member_id($u));
     if (USE_DIARY_CATEGORY) {
         //この日記のカテゴリリストを得る
         if ($category) {
             $category_list = array();
             foreach (preg_split('/\\s+/', $category) as $value) {
                 if (empty($value)) {
                     break;
                 }
                 $category_list[] = array('c_diary_category_id' => 'dummy', 'category_name' => $value);
             }
             $this->set("category", $category_list);
         } else {
             $this->set("category", db_diary_category_list4c_diary_id($target_c_diary_id));
         }
         //メンバーのカテゴリリスト
         $this->set("category_list", db_diary_category_list4c_member_id($u));
         $this->set("use_diary_category", true);
     }
     // 内容の不備によるリダイレクト時・編集修正時は値を上書き
     if ($requests['msg'] || !(is_null($subject) || is_null($body))) {
         $c_diary['subject'] = $subject;
         $c_diary['body'] = $body;
         $c_diary['public_flag'] = util_cast_public_flag_diary($public_flag);
         $c_diary['is_comment_input'] = $is_comment_input;
     }
     $this->set("diary", $c_diary);
     // inc_entry_point
     $this->set('inc_entry_point', fetch_inc_entry_point($this->getView(), 'h_diary_edit'));
     return 'success';
 }
Beispiel #3
0
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $target_c_diary_id = $requests['target_c_diary_id'];
     $body = $requests['body'];
     $page = $requests['page'];
     // ----------
     // target が指定されていない
     if (!$target_c_diary_id) {
         openpne_redirect('pc', 'page_h_err_fh_diary');
     }
     // target の日記が存在しない
     if (!p_common_is_active_c_diary_id($target_c_diary_id)) {
         openpne_redirect('pc', 'page_h_err_fh_diary');
     }
     $target_c_diary = db_diary_get_c_diary4id($target_c_diary_id);
     $target_c_member_id = $target_c_diary['c_member_id'];
     if ($target_c_member_id == $u) {
         $type = 'h';
         //日記を閲覧済みにする
         db_diary_update_c_diary_is_checked($target_c_diary_id, 1);
     } else {
         $type = 'f';
         $target_c_member = db_member_c_member4c_member_id($target_c_member_id);
         $is_friend = db_friend_is_friend($u, $target_c_member_id);
         // check public_flag
         if (!pne_check_diary_public_flag($target_c_diary_id, $u)) {
             openpne_redirect('pc', 'page_h_err_diary_access');
         }
         // アクセスブロック
         if (db_member_is_access_block($u, $target_c_member_id)) {
             openpne_redirect('pc', 'page_h_access_block');
         }
         // あしあとをつける
         db_ashiato_insert_c_ashiato($target_c_member_id, $u);
     }
     $this->set('type', $type);
     $this->set('inc_navi', fetch_inc_navi($type, $target_c_member_id));
     $this->set('member', db_member_c_member4c_member_id($u));
     $this->set('target_member', db_member_c_member4c_member_id($target_c_member_id));
     $this->set('target_diary', $target_c_diary);
     // 日記コメント
     if ($requests['page_size'] == 100) {
         $page_size = 100;
     } else {
         $page_size = 20;
     }
     if ($requests['order'] === 'asc') {
         $desc = false;
     } else {
         $desc = true;
     }
     list($c_diary_comment_list, $is_prev, $is_next, $total_num, $total_page_num) = k_p_fh_diary_c_diary_comment_list4c_diary_id($target_c_diary_id, $page_size, $page, $desc);
     if ($desc) {
         $c_diary_comment_list = array_reverse($c_diary_comment_list);
     }
     $this->set('target_diary_comment_list', $c_diary_comment_list);
     $this->set('total_num', $total_num);
     $this->set('total_page_num', $total_page_num);
     $this->set('page_size', $page_size);
     $this->set('page', $page);
     $this->set('is_writable_comment', db_diary_is_writable_comment4c_diary_id($target_c_diary_id));
     // コメント許可設定取得
     $this->set('is_comment_input', $target_c_diary['is_comment_input']);
     $start_comment = reset($c_diary_comment_list);
     $end_comment = end($c_diary_comment_list);
     $pager = array();
     $pager['start'] = (int) $start_comment['number'];
     $pager['end'] = (int) $end_comment['number'];
     if ($is_prev) {
         if ($desc) {
             $pager['page_next'] = $page - 1;
         } else {
             $pager['page_prev'] = $page - 1;
         }
     }
     if ($is_next) {
         if ($desc) {
             $pager['page_prev'] = $page + 1;
         } else {
             $pager['page_next'] = $page + 1;
         }
     }
     $this->set('pager', $pager);
     //最近の日記を取得
     $list_set = p_fh_diary_list_diary_list4c_member_id($target_c_member_id, 7, 1, $u);
     $this->set('new_diary_list', $list_set[0]);
     $this->set('c_diary_id_prev', db_diary_c_diary_id_prev4c_diary_id($target_c_member_id, $target_c_diary_id, $u));
     $this->set('c_diary_id_next', db_diary_c_diary_id_next4c_diary_id($target_c_member_id, $target_c_diary_id, $u));
     //カレンダー関係
     //カレンダー開始用変数
     $time = strtotime($target_c_diary['r_datetime']);
     $year = date('Y', $time);
     $month = date('n', $time);
     //日記一覧、カレンダー用変数
     $date_val = array('year' => $year, 'month' => $month, 'day' => null);
     $this->set('date_val', $date_val);
     //日記のカレンダー
     $calendar = db_common_diary_monthly_calendar($year, $month, $target_c_member_id, $u);
     $this->set('calendar', $calendar['days']);
     $this->set('ym', $calendar['ym']);
     //各月の日記
     $this->set('date_list', p_fh_diary_list_date_list4c_member_id($target_c_member_id));
     if (USE_DIARY_CATEGORY) {
         //カテゴリ一覧
         $this->set('category', db_diary_category_list4c_member_id($target_c_member_id));
         //この日記のカテゴリリストを得る
         $this->set('category_list', db_diary_category_list4c_diary_id($target_c_diary_id));
     }
     return 'success';
 }