OSDN Git Service

イベント記事の期間設定に時間なし(終日)を指定可能にした。
authornaoki hirata <naoki@magic3.org>
Wed, 4 Sep 2013 09:12:32 +0000 (18:12 +0900)
committernaoki hirata <naoki@magic3.org>
Wed, 4 Sep 2013 09:12:32 +0000 (18:12 +0900)
12 files changed:
widgets/calendar/include/container/calendarWidgetContainer.php
widgets/calendar/include/db/calendarDb.php
widgets/event_category/include/db/event_categoryDb.php
widgets/event_main/include/container/admin_event_mainCommentWidgetContainer.php
widgets/event_main/include/container/admin_event_mainConfigWidgetContainer.php
widgets/event_main/include/container/admin_event_mainEntryWidgetContainer.php
widgets/event_main/include/container/event_mainCalendarWidgetContainer.php
widgets/event_main/include/container/event_mainCommonDef.php
widgets/event_main/include/container/event_mainTopWidgetContainer.php
widgets/event_main/include/db/event_mainDb.php
widgets/event_main/include/help/index.php
widgets/event_main/include/template/admin_entry_detail.tmpl.html

index 04b5a42..e2a0b03 100644 (file)
@@ -204,8 +204,23 @@ class calendarWidgetContainer extends BaseWidgetContainer
        {
                $entryId = $fetchedRow['ee_id'];// 記事ID
                $title = $fetchedRow['ee_name'];// タイトル
-               $startDate = $fetchedRow['ee_start_dt'];// 開催日時(開始)
-               $endDate = $fetchedRow['ee_end_dt'];// 開催日時(終了)
+               $isAllDay = $fetchedRow['ee_is_all_day'];                       // 終日イベントかどうか
+               if ($fetchedRow['ee_end_dt'] == $this->gEnv->getInitValueOfTimestamp()){                // 開催開始日時のみ表示のとき
+                       if ($isAllDay){         // 終日イベントのとき
+                               $startDate = $this->convertToDispDate($fetchedRow['ee_start_dt']);// 開催日時(開始)
+                       } else {
+                               $startDate = $fetchedRow['ee_start_dt'];// 開催日時(開始)
+                       }
+                       $endDate = '';// 開催日時(終了)
+               } else {
+                       if ($isAllDay){         // 終日イベントのとき
+                               $startDate = $this->convertToDispDate($fetchedRow['ee_start_dt']);// 開催日時(開始)
+                               $endDate = $this->convertToDispDate($fetchedRow['ee_end_dt']);// 開催日時(終了)
+                       } else {
+                               $startDate = $fetchedRow['ee_start_dt'];// 開催日時(開始)
+                               $endDate = $fetchedRow['ee_end_dt'];// 開催日時(終了)
+                       }
+               }
 
                // イベント記事へのリンクを生成
                $linkUrl = $this->getUrl($this->gEnv->getDefaultUrl() . '?'. M3_REQUEST_PARAM_EVENT_ID . '=' . $entryId, true/*リンク用*/);
index 01ce399..bf18b2f 100644 (file)
@@ -47,7 +47,7 @@ class calendarDb extends BaseDb
                $params[] = $startDt;
                $params[] = $endDt;
 
-               $queryStr .=  'ORDER BY ee_start_dt LIMIT ' . $limit . ' OFFSET ' . $offset;// 日付順
+               $queryStr .=  'ORDER BY ee_start_dt, ee_id LIMIT ' . $limit . ' OFFSET ' . $offset;// 日付順
                $this->selectLoop($queryStr, $params, $callback);
        }
 }
index 363e49e..57452b9 100644 (file)
@@ -52,7 +52,7 @@ class event_categoryDb extends BaseDb
        
                $queryStr = 'SELECT * FROM event_entry ';
                $queryStr .=  'WHERE ee_serial in (' . $serialStr . ') ';
-               $queryStr .=  'ORDER BY ee_start_dt DESC LIMIT ' . $itemCount;          // 投稿順
+               $queryStr .=  'ORDER BY ee_start_dt DESC, ee_id LIMIT ' . $itemCount;           // 投稿順
                $this->selectLoop($queryStr, array(), $callback);
        }
        /**
index b234f4a..8d83101 100644 (file)
@@ -26,7 +26,7 @@ class admin_event_mainCommentWidgetContainer extends admin_event_mainBaseWidgetC
        private $lang;          // 現在の選択言語
        private $serialArray = array();         // 表示されている項目シリアル番号
        private $entryArray = array();          // 表示されている項目の記事ID
-       const CONTENT_TYPE = 'bg';              // 記事参照数取得用
+//     const CONTENT_TYPE = 'bg';              // 記事参照数取得用
        const DEFAULT_LIST_COUNT = 20;                  // 最大リスト表示数
        const CATEGORY_COUNT = 2;                               // 記事カテゴリーの選択可能数
        const COMMENT_SIZE = 40;                        // コメント内容の最大文字列長
index a728bd0..9ec35ff 100644 (file)
@@ -58,8 +58,8 @@ class admin_event_mainConfigWidgetContainer extends admin_event_mainBaseWidgetCo
                $categoryCount = $request->trimValueOf('category_count');               // カテゴリ数
                $receiveComment = ($request->trimValueOf('receive_comment') == 'on') ? 1 : 0;           // コメントを受け付けるかどうか
                $topContents = $request->valueOf('top_contents');       // トップコンテンツ
-               $maxCommentLength = $request->valueOf('max_comment_length');    // コメント最大文字数
-               $msgNoEntryInFuture = $request->valueOf('item_msg_no_entry_in_future'); // 予定イベントなし時メッセージ
+               $maxCommentLength = $request->trimValueOf('max_comment_length');        // コメント最大文字数
+               $msgNoEntryInFuture = $request->trimValueOf('item_msg_no_entry_in_future');     // 予定イベントなし時メッセージ
                
                $reloadData = false;            // データの再ロード
                if ($act == 'update'){          // 設定更新のとき
index f20ae70..1681ac1 100644 (file)
@@ -18,7 +18,6 @@ require_once($gEnvManager->getCurrentWidgetDbPath() . '/event_mainDb.php');
 
 class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetContainer
 {
-//     private $db;    // DB接続オブジェクト
        private $serialNo;              // 選択中の項目のシリアル番号
        private $entryId;
        private $lang;          // 現在の選択言語
@@ -27,9 +26,8 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
        private $categoryArray;                 // 選択中の記事カテゴリー
        private $categoryCount;                 // カテゴリ数
        const ICON_SIZE = 16;           // アイコンのサイズ
-       const CONTENT_TYPE = 'bg';              // 記事参照数取得用
+//     const CONTENT_TYPE = 'bg';              // 記事参照数取得用
        const DEFAULT_LIST_COUNT = 20;                  // 最大リスト表示数
-       //const CATEGORY_COUNT = 2;                             // 記事カテゴリーの選択可能数
        const CATEGORY_NAME_SIZE = 20;                  // カテゴリー名の最大文字列長
        const CALENDAR_ICON_FILE = '/images/system/calendar.png';               // カレンダーアイコン
        const ACTIVE_ICON_FILE = '/images/system/active.png';                   // 公開中アイコン
@@ -43,9 +41,6 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
        {
                // 親クラスを呼び出す
                parent::__construct();
-               
-               // DBオブジェクト作成
-               //self::$_mainDb = new event_mainDb();
        }
        /**
         * テンプレートファイルを設定
@@ -275,16 +270,17 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                if (strlen($html2) <= 10){ // IE6のときFCKEditorのバグの対応(「続き」が空の場合でもpタグが送信される)
                        $html2 = '';
                }
-               $summary = $request->valueOf('item_summary');           // 要約
-               $place = $request->valueOf('item_place');               // 場所
-               $contact = $request->valueOf('item_contact');           // 連絡先
-               $url = $request->valueOf('item_url');           // URL
-               $note = $request->valueOf('item_note');         // 管理者備考
+               $summary = $request->trimValueOf('item_summary');               // 要約
+               $place = $request->trimValueOf('item_place');           // 場所
+               $contact = $request->trimValueOf('item_contact');               // 連絡先
+               $url = $request->trimValueOf('item_url');               // URL
+               $note = $request->trimValueOf('item_note');             // 管理者備考
                $status = $request->trimValueOf('item_status');         // エントリー状態(0=未設定、1=編集中、2=公開、3=非公開)
                $category = '';                                                                 // カテゴリー
-               $showComment = ($request->trimValueOf('show_comment') == 'on') ? 1 : 0;                         // コメントを表示するかどうか
-               $receiveComment = ($request->trimValueOf('receive_comment') == 'on') ? 1 : 0;           // コメントを受け付けるかどうか
-
+               $showComment = $request->trimCheckedValueOf('show_comment');                            // コメントを表示するかどうか
+               $receiveComment = $request->trimCheckedValueOf('receive_comment');              // コメントを受け付けるかどうか
+               $isAllDay = $request->trimCheckedValueOf('item_is_all_day');                    // 終日イベントかどうか
+               
                // カテゴリーを取得
                $this->categoryArray = array();
                for ($i = 0; $i < $this->categoryCount; $i++){
@@ -304,8 +300,6 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                } else {
                        if (empty($start_time)) $start_time = '00:00';          // 日付が入っているときは時間にデフォルト値を設定
                }
-               if (!empty($start_time)) $start_time = $this->convertToProperTime($start_time, 1/*時分フォーマット*/);
-               
                $end_date = $request->trimValueOf('item_end_date');             // 公開期間終了日付
                if (!empty($end_date)) $end_date = $this->convertToProperDate($end_date);
                $end_time = $request->trimValueOf('item_end_time');             // 公開期間終了時間
@@ -314,6 +308,17 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                } else {
                        if (empty($end_time)) $end_time = '00:00';              // 日付が入っているときは時間にデフォルト値を設定
                }
+               // 終日設定の場合は時間を初期化
+               if ($isAllDay){
+                       if (!empty($start_time)) $start_time = '00:00';
+                       if (!empty($end_time)) $end_time = '00:00';
+                       if (!empty($start_date) && $start_date == $end_date){           // 日付が同じ場合は終了日を削除
+                               $end_date = '';
+                               $end_time = '';
+                       }
+               }
+               // 時間を修正
+               if (!empty($start_time)) $start_time = $this->convertToProperTime($start_time, 1/*時分フォーマット*/);
                if (!empty($end_time)) $end_time = $this->convertToProperTime($end_time, 1/*時分フォーマット*/);
                
                $dataReload = false;            // データの再ロード
@@ -368,10 +373,10 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                                
                                if ($act == 'add'){
                                        $ret = self::$_mainDb->addEntryItem(0, $this->langId, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $this->categoryArray, 
-                                                                                                       $startDt, $endDt, $showComment, $receiveComment, false/*参照ユーザ制限なし*/, $newSerial);
+                                                                                                       $startDt, $endDt, $isAllDay, $showComment, $receiveComment, false/*参照ユーザ制限なし*/, $newSerial);
                                } else {
                                        $ret = self::$_mainDb->addEntryItem($this->entryId, $this->langId, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $this->categoryArray, 
-                                                                                                       $startDt, $endDt, $showComment, $receiveComment, false/*参照ユーザ制限なし*/, $newSerial);
+                                                                                                       $startDt, $endDt, $isAllDay, $showComment, $receiveComment, false/*参照ユーザ制限なし*/, $newSerial);
                                }
                                if ($ret){
                                        $this->setGuidanceMsg('データを追加しました');
@@ -414,7 +419,7 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                                }
                                
                                $ret = self::$_mainDb->updateEntryItem($this->serialNo, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $this->categoryArray, 
-                                                                                                               $startDt, $endDt, $showComment, $receiveComment, false/*参照ユーザ制限なし*/, $newSerial);
+                                                                                                               $startDt, $endDt, $isAllDay, $showComment, $receiveComment, false/*参照ユーザ制限なし*/, $newSerial);
                                if ($ret){
                                        $this->setGuidanceMsg('データを更新しました');
                                        // シリアル番号更新
@@ -475,6 +480,7 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                        $start_time = date("H:i:s");            // 開催時間
                        $showComment = 1;                               // コメントを表示するかどうか
                        $receiveComment = 1;            // コメントを受け付けるかどうか
+                       $isAllDay = 0;                  // 終日イベントかどうか
                        $dataReload = true;             // データの再ロード
                }
                
@@ -502,7 +508,8 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                                $end_time = $this->convertToDispTime($row['ee_end_dt'], 1/*時分*/);   // 開催期間終了時間
                                $showComment = $row['ee_show_comment'];                         // コメントを表示するかどうか
                                $receiveComment = $row['ee_receive_comment'];           // コメントを受け付けるかどうか
-               
+                               $isAllDay = $row['ee_is_all_day'];                      // 終日イベントかどうか
+                               
                                // 記事カテゴリー取得
                                $this->categoryArray = $this->getCategory($categoryRow);
                        }
@@ -534,12 +541,9 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                $this->tmpl->addVar("_widget", "start_time", $start_time);      // 公開期間開始時間
                $this->tmpl->addVar("_widget", "end_date", $end_date);  // 公開期間終了日
                $this->tmpl->addVar("_widget", "end_time", $end_time);  // 公開期間終了時間
-               $checked = '';
-               if ($showComment) $checked = 'checked';
-               $this->tmpl->addVar("_widget", "show_comment", $checked);// コメントを表示するかどうか
-               $checked = '';
-               if ($receiveComment) $checked = 'checked';
-               $this->tmpl->addVar("_widget", "receive_comment", $checked);// コメントを受け付けるかどうか
+               $this->tmpl->addVar("_widget", "show_comment", $this->convertToCheckedString($showComment));// コメントを表示するかどうか
+               $this->tmpl->addVar("_widget", "receive_comment", $this->convertToCheckedString($receiveComment));// コメントを受け付けるかどうか
+               $this->tmpl->addVar("_widget", "is_all_day", $this->convertToCheckedString($isAllDay));// 終日イベントかどうか
                
                // 非表示項目を設定
                $this->tmpl->addVar("_widget", "serial", $this->serialNo);      // シリアル番号
@@ -587,9 +591,9 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
         */
        function itemListLoop($index, $fetchedRow, $param)
        {
-               // シリアル番号
-               $serial = $fetchedRow['ee_serial'];
-
+               $serial = $fetchedRow['ee_serial'];// シリアル番号
+               $isAllDay = $fetchedRow['ee_is_all_day'];                       // 終日イベントかどうか
+               
                // カテゴリーを取得
                $categoryArray = array();
                $ret = self::$_mainDb->getEntryBySerial($serial, $row, $categoryRow);
@@ -611,15 +615,25 @@ class admin_event_mainEntryWidgetContainer extends admin_event_mainBaseWidgetCon
                        case 3: $status = '非公開';  break;
                }
                // 総参照数
-               $totalViewCount = $this->gInstance->getAnalyzeManager()->getTotalContentViewCount(self::CONTENT_TYPE, $serial);
+               $totalViewCount = $this->gInstance->getAnalyzeManager()->getTotalContentViewCount(event_mainCommonDef::VIEW_CONTENT_TYPE, $serial);
                
                // イベント開催期間
-               if ($fetchedRow['ee_end_dt'] == $this->gEnv->getInitValueOfTimestamp()){
-                       $startDtStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 1/*ショートフォーマット*/, 10/*時分*/);
-                       $endDtStr = '';
+               if ($fetchedRow['ee_end_dt'] == $this->gEnv->getInitValueOfTimestamp()){                // // 期間終了がないとき
+                       if ($isAllDay){         // 終日イベントのときは時間を表示しない
+                               $startDtStr = $this->convertToDispDate($fetchedRow['ee_start_dt']);
+                               $endDtStr = '';
+                       } else {
+                               $startDtStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 1/*ショートフォーマット*/, 10/*時分*/);
+                               $endDtStr = '';
+                       }
                } else {
-                       $startDtStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 1/*ショートフォーマット*/, 10/*時分*/);
-                       $endDtStr = $this->convertToDispDateTime($fetchedRow['ee_end_dt'], 1/*ショートフォーマット*/, 10/*時分*/);
+                       if ($isAllDay){         // 終日イベントのときは時間を表示しない
+                               $startDtStr = $this->convertToDispDate($fetchedRow['ee_start_dt']);
+                               $endDtStr = $this->convertToDispDate($fetchedRow['ee_end_dt']);
+                       } else {
+                               $startDtStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 1/*ショートフォーマット*/, 10/*時分*/);
+                               $endDtStr = $this->convertToDispDateTime($fetchedRow['ee_end_dt'], 1/*ショートフォーマット*/, 10/*時分*/);
+                       }
                }
                
                $row = array(
index 387cbe4..bb69203 100644 (file)
@@ -165,6 +165,7 @@ class event_mainCalendarWidgetContainer extends event_mainBaseWidgetContainer
                                        $entryId = $eventArray[$i]['ee_id'];
                                        $eventUrl = $this->getUrl($this->gEnv->getDefaultUrl() . '?'. M3_REQUEST_PARAM_EVENT_ID . '=' . $entryId, true/*リンク用*/);
                                        $eventLink = '<a href="' . $this->convertUrlToHtmlEntity($this->getUrl($eventUrl, true/*リンク用*/)) . '">' . $this->convertToDispString($eventArray[$i]['ee_name']) . '</a>';
+                                       $isAllDay = $eventArray[$i]['ee_is_all_day'];                   // 終日イベントかどうか
                                        
                                        // 場所
                                        $placeStr = '';
@@ -173,15 +174,28 @@ class event_mainCalendarWidgetContainer extends event_mainBaseWidgetContainer
                                        // 期間
                                        $dateStr = '';
                                        if ($eventArray[$i]['ee_end_dt'] == $this->gEnv->getInitValueOfTimestamp()){            // 期間終了がないとき
-                                               $dateStr = '時間:' . $this->convertToDispTime($eventArray[$i]['ee_start_dt'], 1);
+                                               if ($isAllDay){         // 終日イベントのときは時間を表示しない
+                                                       $dateStr = '';
+                                               } else {
+                                                       $dateStr = '時間:' . $this->convertToDispTime($eventArray[$i]['ee_start_dt'], 1);
+                                               }
                                        } else {
                                                // 同日内のとき
                                                if ($this->timestampToDate($eventArray[$i]['ee_start_dt']) == $this->timestampToDate($eventArray[$i]['ee_end_dt'])){
-                                                       $dateStr = '時間:' . $this->convertToDispTime($eventArray[$i]['ee_start_dt'], 1) . self::DATE_RANGE_DELIMITER . 
+                                                       if ($isAllDay){         // 終日イベントのときは時間を表示しない
+                                                               $dateStr = '';
+                                                       } else {
+                                                               $dateStr = '時間:' . $this->convertToDispTime($eventArray[$i]['ee_start_dt'], 1) . self::DATE_RANGE_DELIMITER . 
                                                                                                        $this->convertToDispTime($eventArray[$i]['ee_end_dt'], 1);
+                                                       }
                                                } else {
-                                                       $dateStr = '期間:' . $this->convertToDispDateTime($eventArray[$i]['ee_start_dt'], 10/*年なし*/, 10/*時分*/) . self::DATE_RANGE_DELIMITER . 
+                                                       if ($isAllDay){         // 終日イベントのときは時間を表示しない
+                                                               $dateStr = '期間:' . $this->convertToDispDate($eventArray[$i]['ee_start_dt']) . self::DATE_RANGE_DELIMITER . 
+                                                                                                       $this->convertToDispDate($eventArray[$i]['ee_end_dt']);
+                                                       } else {
+                                                               $dateStr = '期間:' . $this->convertToDispDateTime($eventArray[$i]['ee_start_dt'], 10/*年なし*/, 10/*時分*/) . self::DATE_RANGE_DELIMITER . 
                                                                                                        $this->convertToDispDateTime($eventArray[$i]['ee_end_dt'], 10/*年なし*/, 10/*時分*/);
+                                                       }
                                                }
                                        }
                                        
index f3e866d..51c51dd 100644 (file)
@@ -16,6 +16,8 @@
  
 class event_mainCommonDef
 {
+       const VIEW_CONTENT_TYPE = 'ev';         // 記事参照数取得用
+               
        // DB定義値
        const CF_RECEIVE_COMMENT                = 'receive_comment';            // コメントを受け付けるかどうか
        const CF_ENTRY_VIEW_COUNT               = 'entry_view_count';                   // 記事表示数
index 0a03bda..77b7bba 100644 (file)
@@ -35,7 +35,7 @@ class event_mainTopWidgetContainer extends event_mainBaseWidgetContainer
        private $headDesc;              // METAタグ要約
        private $headKeyword;   // METAタグキーワード
        private $addLib = array();              // 追加スクリプト
-       const CONTENT_TYPE = 'ev';
+//     const CONTENT_TYPE = 'ev';
        const LINK_PAGE_COUNT           = 5;                    // リンクページ数
        const MESSAGE_NO_ENTRY_TITLE = 'イベント記事未登録';
        const MESSAGE_NO_ENTRY          = 'イベント記事は登録されていません';                           // イベント記事が登録されていないメッセージ
@@ -516,7 +516,7 @@ class event_mainTopWidgetContainer extends event_mainBaseWidgetContainer
        {
                // 参照ビューカウントを更新
                if (!$this->isSystemManageUser){                // システム運用者以上の場合はカウントしない
-                       $this->gInstance->getAnalyzeManager()->updateContentViewCount(self::CONTENT_TYPE, $fetchedRow['ee_serial'], $this->currentDay, $this->currentHour);
+                       $this->gInstance->getAnalyzeManager()->updateContentViewCount(event_mainCommonDef::VIEW_CONTENT_TYPE, $fetchedRow['ee_serial'], $this->currentDay, $this->currentHour);
                }
 
                $entryId = $fetchedRow['ee_id'];// 記事ID
@@ -524,6 +524,7 @@ class event_mainTopWidgetContainer extends event_mainBaseWidgetContainer
                $date = $fetchedRow['ee_start_dt'];// 開催日時
                $place = $fetchedRow['ee_place'];// 開催場所
                $showComment = $fetchedRow['ee_show_comment'];                          // コメントを表示するかどうか
+               $isAllDay = $fetchedRow['ee_is_all_day'];                       // 終日イベントかどうか
                
                // コメントを取得
                $commentCount = $this->commentDb->getCommentCountByEntryId($entryId, $this->langId);    // コメント総数
@@ -584,10 +585,19 @@ class event_mainTopWidgetContainer extends event_mainBaseWidgetContainer
 
                // イベント開催期間
                if ($fetchedRow['ee_end_dt'] == $this->gEnv->getInitValueOfTimestamp()){                // 開催開始日時のみ表示のとき
-                       $dateStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 0/*ロングフォーマット*/, 10/*時分*/);
+                       if ($isAllDay){         // 終日イベントのとき
+                               $dateStr = $this->convertToDispDate($fetchedRow['ee_start_dt']);
+                       } else {
+                               $dateStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 0/*ロングフォーマット*/, 10/*時分*/);
+                       }
                } else {
-                       $dateStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 0/*ロングフォーマット*/, 10/*時分*/) . self::DATE_RANGE_DELIMITER;
-                       $dateStr .= $this->convertToDispDateTime($fetchedRow['ee_end_dt'], 0/*ロングフォーマット*/, 10/*時分*/);
+                       if ($isAllDay){         // 終日イベントのとき
+                               $dateStr = $this->convertToDispDate($fetchedRow['ee_start_dt']) . self::DATE_RANGE_DELIMITER;
+                               $dateStr .= $this->convertToDispDate($fetchedRow['ee_end_dt']);
+                       } else {
+                               $dateStr = $this->convertToDispDateTime($fetchedRow['ee_start_dt'], 0/*ロングフォーマット*/, 10/*時分*/) . self::DATE_RANGE_DELIMITER;
+                               $dateStr .= $this->convertToDispDateTime($fetchedRow['ee_end_dt'], 0/*ロングフォーマット*/, 10/*時分*/);
+                       }
                }
                // 場所
                $placeStr = '';
@@ -616,7 +626,7 @@ class event_mainTopWidgetContainer extends event_mainBaseWidgetContainer
                
                $row = array(
                        'permalink' => $this->convertUrlToHtmlEntity($linkUrl), // パーマリンク
-                       'title' => $title,
+                       'title' => $this->convertToDispString($title),
                        'date' => $dateStr,                     // 開催日時
                        'place' => $placeStr,           // 開催場所
                        'entry' => $entryText,  // イベント記事
index be772c9..cc48aba 100644 (file)
@@ -122,7 +122,7 @@ class event_mainDb extends BaseDb
                }
                
                if (count($category) == 0){
-                       $queryStr .=  'ORDER BY ee_start_dt desc limit ' . $limit . ' offset ' . $offset;
+                       $queryStr .=  'ORDER BY ee_start_dt desc, ee_id limit ' . $limit . ' offset ' . $offset;
                        $this->selectLoop($queryStr, $params, $callback, null);
                } else {
                        // シリアル番号を取得
@@ -138,7 +138,7 @@ class event_mainDb extends BaseDb
                
                        $queryStr = 'SELECT * FROM event_entry ';
                        $queryStr .=  'WHERE ee_serial in (' . $serialStr . ') ';
-                       $queryStr .=  'ORDER BY ee_start_dt desc limit ' . $limit . ' offset ' . $offset;
+                       $queryStr .=  'ORDER BY ee_start_dt desc, ee_id limit ' . $limit . ' offset ' . $offset;
                        $this->selectLoop($queryStr, array(), $callback, null);
                }
        }
@@ -244,7 +244,7 @@ class event_mainDb extends BaseDb
                        $queryStr .=    'OR ee_contact LIKE \'%' . $keyword . '%\') ';
                }
                
-               $queryStr .=  'ORDER BY ee_start_dt desc limit ' . $limit . ' offset ' . $offset;
+               $queryStr .=  'ORDER BY ee_start_dt desc, ee_id limit ' . $limit . ' offset ' . $offset;
                $this->selectLoop($queryStr, $params, $callback, null);
        }
        /**
@@ -294,13 +294,15 @@ class event_mainDb extends BaseDb
         * @param array   $category             カテゴリーID
         * @param timestamp     $startDt        期間(開始日)
         * @param timestamp     $endDt          期間(終了日)
+        * @param bool    $isAllDay             終日イベントかどうか
         * @param bool    $showComment  コメントを表示するかどうか
         * @param bool $receiveComment  コメントを受け付けるかどうか
         * @param bool $userLimited             参照ユーザを制限するかどうか
         * @param int     $newSerial    新規シリアル番号
         * @return bool                                 true = 成功、false = 失敗
         */
-       function addEntryItem($id, $langId, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $category, $startDt, $endDt, $showComment, $receiveComment, $userLimited, &$newSerial)
+       function addEntryItem($id, $langId, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $category, $startDt, $endDt, $isAllDay, 
+                                                                       $showComment, $receiveComment, $userLimited, &$newSerial)
        {
                $now = date("Y/m/d H:i:s");     // 現在日時
                $userId = $this->gEnv->getCurrentUserId();      // 現在のユーザ
@@ -350,6 +352,7 @@ class event_mainDb extends BaseDb
                $queryStr .=   'ee_url, ';
                $queryStr .=   'ee_admin_note, ';
                $queryStr .=   'ee_status, ';
+               $queryStr .=   'ee_is_all_day, ';
                $queryStr .=   'ee_show_comment, ';
                $queryStr .=   'ee_receive_comment, ';
                $queryStr .=   'ee_user_limited, ';
@@ -358,9 +361,9 @@ class event_mainDb extends BaseDb
                $queryStr .=   'ee_create_user_id, ';
                $queryStr .=   'ee_create_dt) ';
                $queryStr .= 'VALUES ';
-               $queryStr .=   '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
+               $queryStr .=   '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
                $this->execStatement($queryStr, array($entryId, $langId, $historyIndex, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, 
-                                                                                               intval($showComment), intval($receiveComment), intval($userLimited), $startDt, $endDt, $userId, $now));
+                                                                                               intval($isAllDay), intval($showComment), intval($receiveComment), intval($userLimited), $startDt, $endDt, $userId, $now));
                
                // 新規のシリアル番号取得
                $newSerial = 0;
@@ -397,13 +400,15 @@ class event_mainDb extends BaseDb
         * @param array   $category             カテゴリーID
         * @param timestamp     $startDt        期間(開始日)
         * @param timestamp     $endDt          期間(終了日)
+        * @param bool    $isAllDay             終日イベントかどうか
         * @param bool    $showComment  コメントを表示するかどうか
         * @param bool $receiveComment  コメントを受け付けるかどうか
         * @param bool $userLimited             参照ユーザを制限するかどうか
         * @param int     $newSerial    新規シリアル番号
         * @return bool                                 true = 成功、false = 失敗
         */
-       function updateEntryItem($serial, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $category, $startDt, $endDt, $showComment, $receiveComment, $userLimited, &$newSerial)
+       function updateEntryItem($serial, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, $category, $startDt, $endDt, $isAllDay,
+                                                                                                       $showComment, $receiveComment, $userLimited, &$newSerial)
        {
                $now = date("Y/m/d H:i:s");     // 現在日時
                $userId = $this->gEnv->getCurrentUserId();      // 現在のユーザ
@@ -457,6 +462,7 @@ class event_mainDb extends BaseDb
                $queryStr .=   'ee_url, ';
                $queryStr .=   'ee_admin_note, ';
                $queryStr .=   'ee_status, ';
+               $queryStr .=   'ee_is_all_day, ';
                $queryStr .=   'ee_show_comment, ';
                $queryStr .=   'ee_receive_comment, ';
                $queryStr .=   'ee_user_limited, ';
@@ -465,9 +471,9 @@ class event_mainDb extends BaseDb
                $queryStr .=   'ee_create_user_id, ';
                $queryStr .=   'ee_create_dt) ';
                $queryStr .= 'VALUES ';
-               $queryStr .=   '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
+               $queryStr .=   '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
                $this->execStatement($queryStr, array($entryId, $langId, $historyIndex, $name, $html, $html2, $summary, $place, $contact, $url, $note, $status, 
-                                                                                               intval($showComment), intval($receiveComment), intval($userLimited), $startDt, $endDt, $userId, $now));
+                                                                                               intval($isAllDay), intval($showComment), intval($receiveComment), intval($userLimited), $startDt, $endDt, $userId, $now));
 
                // 新規のシリアル番号取得
                $newSerial = 0;
@@ -698,7 +704,7 @@ class event_mainDb extends BaseDb
                
                        $ord = '';
                        if (!empty($order)) $ord = 'DESC ';
-                       $queryStr .=  'ORDER BY ee_start_dt ' . $ord . 'LIMIT ' . $limit . ' offset ' . $offset;// 投稿順
+                       $queryStr .=  'ORDER BY ee_start_dt ' . $ord . ', ee_id LIMIT ' . $limit . ' offset ' . $offset;// 投稿順
                        $this->selectLoop($queryStr, $params, $callback, null);
                } else {
                        $queryStr  = 'SELECT * FROM event_entry ';
@@ -787,7 +793,7 @@ class event_mainDb extends BaseDb
                $queryStr .=   'WHERE ee_serial in (' . $serialStr . ') ';
                $ord = '';
                if (!empty($order)) $ord = 'DESC ';
-               $queryStr .=  'ORDER BY ee_start_dt ' . $ord . 'LIMIT ' . $limit . ' offset ' . $offset;// 投稿順
+               $queryStr .=  'ORDER BY ee_start_dt ' . $ord . ', ee_id LIMIT ' . $limit . ' offset ' . $offset;// 投稿順
                $this->selectLoop($queryStr, array(), $callback);
        }
        /**
@@ -839,7 +845,7 @@ class event_mainDb extends BaseDb
                $initDt = $this->gEnv->getInitValueOfTimestamp();
                $params = array();
                
-               $queryStr = 'SELECT ee_id,ee_name,ee_summary,ee_place,ee_contact,ee_url,ee_start_dt,ee_end_dt FROM event_entry ';
+               $queryStr = 'SELECT ee_id,ee_name,ee_summary,ee_place,ee_contact,ee_url,ee_start_dt,ee_end_dt,ee_is_all_day FROM event_entry ';
                $queryStr .=  'WHERE ee_deleted = false ';              // 削除されていない
                $queryStr .=    'AND ee_status = ? ';           $params[] = 2;  // 「公開」(2)データを表示
                $queryStr .=    'AND ee_language_id = ? ';      $params[] = $lang;
@@ -853,7 +859,7 @@ class event_mainDb extends BaseDb
                        $params[] = $endDt;
                }
                
-               $queryStr .=  'ORDER BY ee_start_dt,ee_id';
+               $queryStr .=  'ORDER BY ee_start_dt, ee_id';
                $retValue = $this->selectRecords($queryStr, $params, $rows);
                return $retValue;
        }
index cdbe3ea..8e9dcd9 100644 (file)
@@ -41,13 +41,13 @@ $HELP['entry_user']['body'] = 'イベント記事の投稿者です。';
 $HELP['entry_blogid']['title'] = '所属イベント';
 $HELP['entry_blogid']['body'] = 'マルチイベントの場合の所属イベントです。';
 $HELP['entry_dt']['title'] = '投稿日時';
-$HELP['entry_dt']['body'] = 'イベント記事の投稿日時です。<br />投稿日時を未来に設定した場合は、その日時までユーザからは閲覧できません。';
+$HELP['entry_dt']['body'] = 'イベントの開催日時です。<br />時間を設定しない場合は「終日」にチェックを入れます。';
 $HELP['entry_active_term']['title'] = '公開期間';
 $HELP['entry_active_term']['body'] = 'イベント記事をユーザに公開する期間を設定します。空の場合は制限なしを示します。';
 $HELP['entry_view_count']['title'] = '閲覧数';
 $HELP['entry_view_count']['body'] = 'イベント記事の閲覧数です。管理権限ユーザの閲覧はカウントされません。';
 $HELP['entry_content']['title'] = '投稿内容';
-$HELP['entry_content']['body'] = 'イベント記事の内容です。「本文1」にイベント記事を記述します。イベント記事が長い場合は、省略記事を「本文1」全文を「本文2」に記述して、「本文1」から「続きを読む」で「本文2」を表示させることができます。';
+$HELP['entry_content']['body'] = 'イベントの内容です。「予定」にイベントの内容を記述します。「結果」にイベントの結果を記述します。';
 $HELP['entry_search_keyword']['title'] = 'キーワード';
 $HELP['entry_search_keyword']['body'] = 'イベント記事を検索するキーワードを設定します。検索対象は記事タイトルと本文です。';
 $HELP['entry_search_category']['title'] = 'カテゴリー';
index 63ca214..21a5048 100644 (file)
@@ -102,7 +102,9 @@ $(function(){
        </tr>\r
         <tr class="even">\r
            <td class="table-headside"><span {_HELP_ENTRY_DT}>日時</span></td>\r
-           <td colspan="5">開始日:<input type="text" id="item_start_date" name="item_start_date" value="{START_DATE}" size="15" maxlength="10" /><a href="#" id="calenderbutton1"><img src="{CALENDAR_IMG}" alt="カレンダー" title="カレンダー" border="0" /></a>&nbsp;&nbsp;時間:<input type="text" id="item_start_time" name="item_start_time" value="{START_TIME}" size="15" maxlength="10" />&nbsp;&nbsp;~&nbsp;&nbsp;終了日:<input type="text" id="item_end_date" name="item_end_date" value="{END_DATE}" size="15" maxlength="10" /><a href="#" id="calenderbutton2"><img src="{CALENDAR_IMG}" alt="カレンダー" title="カレンダー" border="0" /></a>&nbsp;&nbsp;時間:<input type="text" id="item_end_time" name="item_end_time" value="{END_TIME}" size="15" maxlength="10" /></td>\r
+           <td colspan="5">開始日:<input type="text" id="item_start_date" name="item_start_date" value="{START_DATE}" size="15" maxlength="10" /><a href="#" id="calenderbutton1"><img src="{CALENDAR_IMG}" alt="カレンダー" title="カレンダー" border="0" /></a>&nbsp;&nbsp;時間:<input type="text" id="item_start_time" name="item_start_time" value="{START_TIME}" size="15" maxlength="10" />&nbsp;&nbsp;~&nbsp;&nbsp;終了日:<input type="text" id="item_end_date" name="item_end_date" value="{END_DATE}" size="15" maxlength="10" /><a href="#" id="calenderbutton2"><img src="{CALENDAR_IMG}" alt="カレンダー" title="カレンダー" border="0" /></a>&nbsp;&nbsp;時間:<input type="text" id="item_end_time" name="item_end_time" value="{END_TIME}" size="15" maxlength="10" />&nbsp;&nbsp;\r
+               <input type="checkbox" name="item_is_all_day" {IS_ALL_DAY} />終日\r
+               </td>\r
        </tr>\r
        <tr>\r
            <td class="table-headside"><span {_HELP_ENTRY_PLACE}>場所</span></td>\r