OSDN Git Service

「汎用カレンダー」にイベント記事連携用の設定を追加。
authornaoki hirata <naoki@magic3.org>
Thu, 22 Aug 2013 13:33:05 +0000 (22:33 +0900)
committernaoki hirata <naoki@magic3.org>
Thu, 22 Aug 2013 13:33:05 +0000 (22:33 +0900)
include/manager/requestManager.php
widgets/calendar/include/container/admin_calendarConfigWidgetContainer.php
widgets/calendar/include/template/admin.tmpl.html

index 892ba8e..0e5a4ae 100644 (file)
@@ -141,6 +141,22 @@ class RequestManager extends Core
                return $this->_trimValueOf($name, $srcValue, $default, 1/* int型チェック */);
        }
        /**
+        * POST,GETから値をチェックボックスの値を取得(トリミング(前後の空白削除)あり)
+        *
+        * POSTまたはGETから値を取得し、トリミング(前後の空白削除)する
+        * デフォルトでHTMLタグを取り除く
+        *
+        * @param string $name          キー値
+        * @param string $default       値が存在しないときのデフォルト値
+        * @return string                       取得値(0または1)
+        */
+       public function trimCheckedValueOf($name, $default = '')
+       {
+               $srcValue = isset($_POST[$name]) ? $_POST[$name] : (isset($_GET[$name]) ? $_GET[$name] : $default);
+               $checked = $this->_trimValueOf($name, $srcValue, $default);
+               return ($checked == 'on') ? '1' : '0';
+       }
+       /**
         * トリミング(前後の空白削除)処理
         *
         * デフォルトでHTMLタグを取り除く
index 1bf9c52..b8f556d 100644 (file)
@@ -90,6 +90,7 @@ class admin_calendarConfigWidgetContainer extends admin_calendarBaseWidgetContai
                // 入力値を取得
                $name   = $request->trimValueOf('item_name');                   // 定義名
                $this->viewOption = $request->valueOf('item_view_option');      // FullCalendar表示オプション
+               $this->showEvent = $request->trimCheckedValueOf('item_show_event');             // イベント記事を表示するかどうか
                
                $replaceNew = false;            // データを再取得するかどうか
                if ($act == 'add'){// 新規追加
@@ -111,6 +112,7 @@ class admin_calendarConfigWidgetContainer extends admin_calendarBaseWidgetContai
                                $newObj = new stdClass;
                                $newObj->name   = $name;// 表示名
                                $newObj->viewOption = $this->viewOption;        // FullCalendar表示オプション
+                               $newObj->showEvent = $this->showEvent;          // イベント記事を表示するかどうか
                                
                                $ret = $this->addPageDefParam($defSerial, $defConfigId, $this->paramObj, $newObj);
                                if ($ret){
@@ -131,6 +133,7 @@ class admin_calendarConfigWidgetContainer extends admin_calendarBaseWidgetContai
                                if ($ret){
                                        // ウィジェットオブジェクト更新
                                        $targetObj->viewOption = $this->viewOption;     // FullCalendar表示オプション
+                                       $targetObj->showEvent = $this->showEvent;               // イベント記事を表示するかどうか
                                }
                                
                                // 設定値を更新
@@ -155,6 +158,7 @@ class admin_calendarConfigWidgetContainer extends admin_calendarBaseWidgetContai
                        if ($replaceNew){               // データ再取得時
                                $name = $this->createDefaultName();                     // デフォルト登録項目名
                                $this->viewOption = $this->getParsedTemplateData('option.tmpl.js');     // FullCalendar表示オプション
+                               $this->showEvent = '0';         // イベント記事を表示するかどうか
                        }
                        $this->serialNo = 0;
                } else {
@@ -163,6 +167,7 @@ class admin_calendarConfigWidgetContainer extends admin_calendarBaseWidgetContai
                                if ($ret){
                                        $name           = $targetObj->name;     // 名前
                                        $this->viewOption = $targetObj->viewOption;     // FullCalendar表示オプション
+                                       if (isset($targetObj->showEvent)) $this->showEvent = $targetObj->showEvent;             // イベント記事を表示するかどうか
                                }
                        }
                        $this->serialNo = $this->configId;
@@ -176,7 +181,8 @@ class admin_calendarConfigWidgetContainer extends admin_calendarBaseWidgetContai
                // 画面にデータを埋め込む
                if (!empty($this->configId)) $this->tmpl->addVar("_widget", "id", $this->configId);             // 定義ID
                $this->tmpl->addVar("item_name_visible", "name",        $name);
-               $this->tmpl->addVar("_widget", "view_option",   $this->convertToDispString($this->viewOption));// FullCalendar表示オプション
+               $this->tmpl->addVar("_widget", "view_option",   $this->convertToDispString($this->viewOption));         // FullCalendar表示オプション
+               $this->tmpl->addVar("_widget", "show_event",    $this->convertToCheckedString($this->showEvent));               // イベント記事を表示するかどうか
                $this->tmpl->addVar("_widget", "serial", $this->serialNo);// 選択中のシリアル番号、IDを設定
                
                // ボタンの表示制御
index 6420864..7959a2c 100644 (file)
@@ -83,10 +83,10 @@ function listItem(){
     </select>\r
            &nbsp;&nbsp;表示項目数:<input type="text" name="item_dispcount" value="{DISP_COUNT}" size="2" maxlength="2" onkeypress="return m3_numericKey(event,true);"></td>\r
        </tr>-->\r
-<!--        <tr class="even">\r
-           <td class="table-headside"><span {_HELP_CONFIG_CSS_ID}>CSS用ID</span></td>\r
-           <td>{CSS_ID}<input type="hidden" name="item_css_id" value="{CSS_ID}" /></td>\r
-       </tr>-->\r
+    <tr class="even">\r
+           <td class="table-headside"><span {_HELP_CONFIG_VIEW_DATA}>表示データ</span></td>\r
+           <td><input type="checkbox" name="item_show_event" {SHOW_EVENT} />イベント記事<br /></td>\r
+       </tr>\r
     <tr>\r
            <td class="table-headside"><span {_HELP_CONFIG_VIEW_OPTION}>表示オプション</span></td>\r
            <td><textarea name="item_view_option" rows="10" style="width:100%;">{VIEW_OPTION}</textarea></td>\r