示例#1
0
 function getDefaultView()
 {
     $context =& $this->getContext();
     $user = $context->getUser();
     $request = $context->getRequest();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 表示対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     $year = $request->ACSgetParameter('year');
     // 年
     $month = $request->ACSgetParameter('month');
     // 月
     $day = $request->ACSgetParameter('day');
     // 日
     if (checkdate($month, $day, $year)) {
         // 年月日指定
         $diary_row_array = ACSDiary::get_diary_row_array_by_year_month_day($user_community_id, $year, $month, $day);
     } elseif (checkdate($month, 1, $year)) {
         // 年月指定
         $diary_row_array = ACSDiary::get_diary_row_array_by_year_month($user_community_id, $year, $month);
         unset($day);
     } else {
         // 全てのダイアリー
         $diary_row_array = ACSDiary::get_diary_row_array($user_community_id);
         unset($year);
         unset($month);
         unset($day);
     }
     // 公開範囲を最終登録と同じもので表示しておく
     if ($diary_row_array) {
         $last_open_level_code = $diary_row_array[0]['open_level_code'];
     }
     // 信頼済みコミュニティ情報
     foreach ($diary_row_array as $index => $diary_row) {
         if ($diary_row['open_level_name'] == ACSMsg::get_mst('open_level_master', 'D05')) {
             $diary_row_array[$index]['trusted_community_row_array'] = ACSDiary::get_diary_trusted_community_row_array($diary_row['diary_id']);
         }
     }
     // 公開範囲
     $open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master', 'D10'), ACSMsg::get_mst('contents_type_master', 'D21'));
     // マイフレンズグループ
     $friends_group_row_array = ACSUser::get_friends_group_row_array($user_community_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('diary_row_array', $diary_row_array);
     $request->setAttribute('open_level_master_row_array', $open_level_master_row_array);
     $request->setAttribute('friends_group_row_array', $friends_group_row_array);
     $request->setAttribute('last_open_level_code', $last_open_level_code);
     return View::INPUT;
 }
 /**
  * バックアップコンテンツの作成
  * 
  * @param string $encoding エンコーディング
  */
 function make_contents($encoding = '')
 {
     $diary_row_array = ACSDiary::get_diary_row_array($this->user_community_id);
     // 日記が存在しない場合は何もせず終了
     if (count($diary_row_array) == 0) {
         return;
     }
     // ダイアリフォルダとイメージフォルダの作成
     ACSLib::make_dir($this->diary_dir);
     ACSLib::make_dir($this->img_dir);
     $contents = '';
     $diary_array = array();
     $months_array = array();
     foreach ($diary_row_array as $diary_row) {
         if ($diary_row['delete_flag'] == 'f') {
             // html実態ファイルを作成
             $html_file = $this->create_diary_html($diary_row, $encoding);
             $post_tm = ACSLib::convert_pg_date_to_timestamp($diary_row['post_date']);
             $ym = date("Ym", $post_tm);
             // 年月用フォーマットの生成
             if (!array_key_exists($ym, $months_array)) {
                 $ym_str = ACSMsg::get_mdmsg(__FILE__, 'YEAR_MONTH');
                 $ym_str = str_replace('{YEAR}', date("Y", $post_tm), $ym_str);
                 $ym_str = str_replace('{MONTH}', date("m", $post_tm), $ym_str);
                 $months_array[$ym] = mb_ereg_replace('@MONTHLY_TITLE@', htmlspecialchars($ym_str), _ACSDIARYBACKUP_INDEX_MONTHLY_FORMAT);
             }
             $ymd = ACSLib::convert_pg_date_to_str($diary_row['post_date']);
             // 日記インデックスの生成
             $diary_contents = _ACSDIARYBACKUP_INDEX_DAIRY_FORMAT;
             $diary_contents = mb_ereg_replace('@YMD@', htmlspecialchars($ymd), $diary_contents);
             $diary_contents = mb_ereg_replace('@DIARY_URL@', htmlspecialchars($this->index_to_diary_url . '/' . $html_file), $diary_contents);
             $diary_contents = mb_ereg_replace('@DIARY_SUBJECT@', htmlspecialchars($diary_row['subject']), $diary_contents);
             $diary_array[$ym] .= $diary_contents;
         }
     }
     // index.htmlの生成
     $contents = "";
     foreach ($diary_array as $ym => $diary_contents) {
         $contents .= mb_ereg_replace('@DIARY_CONTENTS@', $diary_contents, $months_array[$ym]);
     }
     $contents = mb_ereg_replace('@CONTENTS@', $contents, _ACSDIARYBACKUP_INDEX_FORMAT);
     // 漢字コードの変換
     if ($encoding != '') {
         $contents = mb_convert_encoding($contents, $encoding);
     }
     // indexファイルの出力
     $fp = fopen($this->contents_dir . '/index.html', "w");
     fputs($fp, $contents);
     fclose($fp);
 }