OSDN Git Service

画面編集機能をBootstrap仕様に対応。 v2.8.4
authornaoki hirata <naoki@magic3.org>
Fri, 7 Feb 2014 01:34:15 +0000 (10:34 +0900)
committernaoki hirata <naoki@magic3.org>
Fri, 7 Feb 2014 01:34:15 +0000 (10:34 +0900)
12 files changed:
include/sql/update/2014013001_to_2014020101.sql [new file with mode: 0644]
templates/_admin4/css/style.css
widgets/admin_main/include/container/admin_mainPagedefWidgetContainer.php
widgets/admin_main/include/db/admin_mainDb.php
widgets/admin_main/include/help/help_pagedef.php
widgets/admin_main/include/locale/ja_JP.mo
widgets/admin_main/include/locale/ja_JP.po
widgets/admin_main/include/template/pagedef.tmpl.html
widgets/admin_main/include/template/pagedef_detail.tmpl.html
widgets/admin_main/include/template/pagedef_mobile.tmpl.html
widgets/admin_main/include/template/pagedef_smartphone.tmpl.html
widgets/admin_main/include/template/test_bootstrap.tmpl.html

diff --git a/include/sql/update/2014013001_to_2014020101.sql b/include/sql/update/2014013001_to_2014020101.sql
new file mode 100644 (file)
index 0000000..8eddce9
--- /dev/null
@@ -0,0 +1,85 @@
+-- *
+-- * バージョンアップ用スクリプト
+-- *
+-- * PHP versions 5
+-- *
+-- * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+-- *
+-- * @package    Magic3 Framework
+-- * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+-- * @copyright  Copyright 2006-2014 Magic3 Project.
+-- * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
+-- * @version    SVN: $Id$
+-- * @link       http://www.magic3.org
+-- *
+-- --------------------------------------------------------------------------------------------------
+-- バージョンアップ用スクリプト
+-- --------------------------------------------------------------------------------------------------
+
+-- *** システムベーステーブル ***
+-- ページIDマスター
+DELETE FROM _page_id WHERE pg_type = 1;
+INSERT INTO _page_id 
+(pg_id,          pg_type,      pg_name,                            pg_description,                       pg_priority, pg_active, pg_visible, pg_editable, pg_available) VALUES
+('front',        1,            'トップ画面',                       'トップ画面用',                       0,           true,      true,       true,        true),
+('content',      1,            'コンテンツ',                       'コンテンツ画面用',                   1,           true,      true,       false,       true),
+('shop',         1,            'ECショップ',                       'ECショップ画面用',                   2,           true,      true,       true,        true),
+('shop_safe',    1,            'ECショップ(セキュリティ保護)',     'ECショップ(セキュリティ保護)画面用', 3,           true,      true,       true,        true),
+('bbs',          1,            '掲示板',                           '掲示板画面用',                       4,           true,      true,       true,        true),
+('blog',         1,            'ブログ',                           'ブログ画面用',                       5,           true,      true,       true,        true),
+('wiki',         1,            'Wiki',                             'Wiki画面用',                         6,           true,      true,       true,        true),
+('event',        1,            'イベント',                         'イベント画面用',                     7,           true,      true,       true,        true),
+('photo',        1,            'フォトギャラリー',                   'フォトギャラリー画面用',           8,           true,      true,       true,        true),
+('contact',      1,            'お問い合わせ',                     'お問い合わせ画面用',                 9,           true,      true,       true,        true),
+('contact2',     1,            'お問い合わせ2',                    'お問い合わせ画面用',                 10,          true,      true,       true,        false),
+('reguser',      1,            'ユーザ登録',                       'ユーザ登録画面用',                   12,          true,      true,       true,        false),
+('reserve',      1,            '予約',                             '予約画面用',                         20,          true,      true,       true,        false),
+('search',       1,            '検索',                             '検索画面用',                         21,          true,      true,       true,        true),
+('user',         1,            'ユーザコンテンツ',                 'ユーザ作成コンテンツ用',             50,          true,      true,       true,        true),
+('deploy',       1,            'ウィジェット有効化用',             'ウィジェット有効化用',               100,         true,      false,      true,        false),
+('test',         1,            'ウィジェットテスト用',             'ウィジェットテスト用非公開画面',     101,         false,     true,       true,        false);
+
+-- ページ情報マスター
+DELETE FROM _page_info;
+INSERT INTO _page_info
+(pn_id,       pn_sub_id,   pn_content_type, pn_use_ssl) VALUES
+('index',     'content',   'content',       false),
+('index',     'shop',      'product',       false),
+('index',     'shop_safe', 'commerce',      true),
+('index',     'bbs',       'bbs',           false),
+('index',     'blog',      'blog',          false),
+('index',     'wiki',      'wiki',          false),
+('index',     'user',      'user',          false),
+('index',     'event',     'event',         false),
+('index',     'photo',     'photo',         false),
+('index',     'search',    'search',        false),
+('index',     'contact',   '',              true),
+('index',     'contact2',  '',              true),
+('index',     'safe',      '',              true),
+('m_index',   'content',   'content',       false),
+('m_index',   'shop',      'product',       false),
+('m_index',   'bbs',       'bbs',           false),
+('m_index',   'blog',      'blog',          false),
+('m_index',   'wiki',      'wiki',          false),
+('m_index',   'user',      'user',          false),
+('m_index',   'event',     'event',         false),
+('m_index',   'photo',     'photo',         false),
+('m_index',   'search',    'search',        false),
+('s_index',   'content',   'content',       false),
+('s_index',   'shop',      'product',       false),
+('s_index',   'shop_safe', 'commerce',      true),
+('s_index',   'bbs',       'bbs',           false),
+('s_index',   'blog',      'blog',          false),
+('s_index',   'wiki',      'wiki',          false),
+('s_index',   'user',      'user',          false),
+('s_index',   'event',     'event',         false),
+('s_index',   'photo',     'photo',         false),
+('s_index',   'search',    'search',        false),
+('s_index',   'contact',   '',              true),
+('s_index',   'contact2',  '',              true),
+('s_index',   'safe',      '',              true),
+('admin_index', 'front',   'dboard',        false),
+('connector', 'content',   'content',       false);
+
+-- *** システム標準テーブル ***
+
index e9aede3..c6557a8 100644 (file)
@@ -284,6 +284,37 @@ background-color: #0081c2;
 .m3search {
        margin-bottom:15px;
 }
+/****** page layout preview ******/
+#layout_preview
+{
+       border-top:2px solid #2C3E50;
+/*     height: 100%;
+       width: 100%;*/
+}
+#layout_preview_outer{
+       position: fixed;
+/*     top: 20%;*/
+       left: 0px;
+       right: 0px;
+       bottom: 0px;
+       z-index:1;
+}
+#layout_switch_image
+{
+       padding-top:27px;
+}
+#layout_header .panel-heading {
+       cursor: pointer;
+}
+#layout_header .layout_menu_switch {
+       margin-left:10px;
+}
+#layout_page_table td:hover {
+    cursor: pointer;
+}
+#layout_template_table td:hover {
+    cursor: pointer;
+}
 /****** menu preview ******/
 #menu_preview {
        font-weight: bold;
index 84374f4..9698660 100644 (file)
@@ -8,9 +8,9 @@
  *
  * @package    Magic3 Framework
  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
- * @copyright  Copyright 2006-2013 Magic3 Project.
+ * @copyright  Copyright 2006-2014 Magic3 Project.
  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
- * @version    SVN: $Id: admin_mainPagedefWidgetContainer.php 5775 2013-03-02 14:17:43Z fishbone $
+ * @version    SVN: $Id$
  * @link       http://www.magic3.org
  */
 require_once($gEnvManager->getContainerPath() . '/baseAdminWidgetContainer.php');
@@ -24,12 +24,19 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
        private $pageSubId;     // ページサブID
        private $position;      // 表示ポジション
        private $defaultPageSubId;              // デフォルトのページID
-       private $widgetArray = array();
+//     private $widgetArray = array();
        private $templateId;            // テンプレートID
+       private $pageTitle;     // 選択ページのタイトル
+       private $templateTitle; // テンプレートタイトル
+       private $pageInfoRows;                  // ページ情報
        const DEFAULT_IMAGE_SIZE = 32;// ウィジェット画像サイズ
        const TEMPLATE_NORMAL_ICON_FILE = '/images/system/layout16.png';                // 通常テンプレートアイコン
        const TEMPLATE_PLAIN_ICON_FILE = '/images/system/layout_plain16.png';           // デザインなしテンプレートアイコン
+       const TEMPLATE_NORMAL32_ICON_FILE = '/images/system/layout32.png';              // 通常テンプレートアイコン
+       const TEMPLATE_PLAIN32_ICON_FILE = '/images/system/layout_plain32.png';         // デザインなしテンプレートアイコン
        const PLAIN_TEMPLATE_ID = '_layout';            // デザインなしテンプレート
+       const TITLE_PRE_ICON_HOME = '<i class="glyphicon glyphicon-home" rel="m3help" title="デフォルト"></i> ';           // タイトル付加用アイコン(ホーム)
+       const TITLE_PRE_ICON_MINUS = '<i class="glyphicon glyphicon-minus-sign" rel="m3help" title="非表示"></i> ';          // タイトル付加用アイコン(マイナス記号)
        
        /**
         * コンストラクタ
@@ -104,6 +111,9 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                $localeText['label_maximize'] = $this->_('Maximize');           // 最大化
                $localeText['label_preview_in_other_window'] = $this->_('Preview in other window');             // 別画面でプレビュー
                $localeText['label_site_preview'] = $this->_('Site Preview');// 実際の画面
+               // (Bootstrap型設定画面用)
+               $localeText['label_page'] = $this->_('Page');           // ページ
+               $localeText['label_template'] = $this->_('Template');           // テンプレート
                
                // 詳細画面
                $localeText['msg_update_line'] = $this->_('Update line data?');         // データを更新しますか?
@@ -139,9 +149,6 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
         */
        function createView($request)
        {
-               // 環境値取得
-               $userId = $this->gEnv->getCurrentUserId();
-                               
                // パラメータの取得
                $task = $request->trimValueOf('task');          // 処理区分
                $act = $request->trimValueOf('act');
@@ -219,16 +226,21 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                        // テンプレート選択メニュー作成
                        $this->db->getAllTemplateList(0/* PC用 */, array($this, 'templateIdLoop'));
                }
-
-               // ページサブIDメニュー作成(ページメインIDを先に作成してから)
-               $this->db->getPageIdList(array($this, 'pageSubIdLoop'), 1/*サブページID*/, -1/*デバイス関係なし*/, true/*メニューから選択可項目のみ*/);
-
                // ページ情報取得
                $contentTypeStr = '';           // コンテンツ種別
                $ret = $this->db->getPageInfo($this->pageId, $this->pageSubId, $row);
                if ($ret){
                        if (!empty($row['pn_content_type'])) $contentTypeStr = $this->_('Page Attribute:') . $row['pn_content_type'];           // 「ページ属性:」
                }
+               // ページIDでページ情報を取得(Bootstrap型設定画面用)
+               $ret = $this->db->getPageInfoByPageId($this->pageId, ''/*言語*/, $this->pageInfoRows);
+
+               // ページサブIDメニュー作成(ページメインIDを先に作成してから)
+               $this->db->getPageIdList(array($this, 'pageSubIdLoop'), 1/*サブページID*/, -1/*デバイス関係なし*/, true/*メニューから選択可項目のみ*/);
+
+               // タイトル(Bootstrap型設定画面用)
+               $this->tmpl->addVar("_widget", "page_title", $this->pageTitle);                 // ページタイトル(エスケープ済み)
+               $this->tmpl->addVar("_widget", "template_title", $this->templateTitle); // テンプレートタイトル(エスケープ済み)
                
                // URLを設定
                $path = '';
@@ -251,16 +263,23 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                $adminUrl = $this->gEnv->getDefaultAdminUrl() . '?' . M3_REQUEST_PARAM_DEF_PAGE_ID . '=' . $this->pageId . '&' . M3_REQUEST_PARAM_DEF_PAGE_SUB_ID . '=' . $this->pageSubId;
                $this->tmpl->addVar("_widget", "admin_url", $this->getUrl($adminUrl));
                
+               // Bootstrap型設定画面用
+//             $detailPageUrl 
+//             $this->tmpl->addVar("_widget", "detail_url", $this->getUrl($adminUrl));
                // ウィジェットIDのリスト
-               $widgetList = '';
+/*             $widgetList = '';
                if (!empty($this->widgetArray)) $widgetList = implode($this->widgetArray, ',');
-               $this->tmpl->addVar("_widget", "widget_list", $widgetList);
+               $this->tmpl->addVar("_widget", "widget_list", $widgetList);*/
                
                // アイコンを設定
                $iconUrl = $this->gEnv->getRootUrl() . self::TEMPLATE_NORMAL_ICON_FILE;
                $this->tmpl->addVar("_widget", "template_normal", $this->getUrl($iconUrl));
                $iconUrl = $this->gEnv->getRootUrl() . self::TEMPLATE_PLAIN_ICON_FILE;
                $this->tmpl->addVar("_widget", "template_plain", $this->getUrl($iconUrl));
+               $iconUrl = $this->gEnv->getRootUrl() . self::TEMPLATE_NORMAL32_ICON_FILE;
+               $this->tmpl->addVar("_widget", "template_normal32", $this->getUrl($iconUrl));
+               $iconUrl = $this->gEnv->getRootUrl() . self::TEMPLATE_PLAIN32_ICON_FILE;
+               $this->tmpl->addVar("_widget", "template_plain32", $this->getUrl($iconUrl));
                
                // テンプレートモード(空=デザインテンプレート,plain=デザインなしテンプレート)を再設定
                $this->tmpl->addVar("_widget", "layout_mode", $layoutMode);
@@ -277,7 +296,7 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                $this->tmpl->addVar("_widget", "preview_template_param", $previewTemplateParam);                // プレビュー用のテンプレートID
                
                if ($this->db->canDetailConfig()){              // 詳細設定可のときは、ページID選択を可にする
-                       $this->tmpl->setAttribute('hide_page_id', 'visibility', 'visible');// ページID選択メニュー
+                       $this->tmpl->setAttribute('show_access_point', 'visibility', 'visible');// アクセスポイント選択メニュー
                        $this->tmpl->addVar('_widget', 'page_id_col', 'colspan="4"');           // カラム数を調整
                } else {
                        $this->tmpl->addVar('_widget', 'page_id_col', 'colspan="2"');           // カラム数を調整
@@ -291,9 +310,6 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
         */
        function createDetail($request)
        {
-               // 環境値取得
-               $userId = $this->gEnv->getCurrentUserId();
-               
                $act = $request->trimValueOf('act');
                $this->serialNo = $request->trimValueOf('serial');              // 選択項目のシリアル番号
                $this->pageId = $request->trimValueOf('pageid');                // ページID
@@ -326,7 +342,7 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                                // エラーなしの場合は、データを登録
                                if ($this->getMsgCount() == 0){
                                        $ret = $this->db->updatePageDef($this->serialNo, $this->pageId, $updatePageSubId, $updatePos, $updateIndex, $updateWidgetId, $instanceDefId,
-                                                                                                               '', '', $updateVisible, $userId);
+                                                                                                               '', '', $updateVisible);
                                        if ($ret){              // データ更新成功のとき
                                                $this->setMsg(self::MSG_GUIDANCE, $this->_('Data updated.'));           // データを更新しました
                                        } else {
@@ -409,15 +425,6 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                // 定義ID
                $defId = $fetchedRow['pd_config_id'];
                
-               // インスタンス定義を使用するかどうか
-               $hasInstanceDef = '';
-               if ($fetchedRow['wd_use_instance_def']){                // 定義ありの場合
-                       //if ($defId != '') $hasInstanceDef = 'style="background-color:yellow;"';
-               } else {
-                       //$hasInstanceDef = 'readonly';
-                       //$defId = '';          // 定義IDは空に設定
-               }
-               
                $row = array(
                        'no'                    => $index + 1,                                                                                  // 行番号
                        'serial'                => $this->convertToDispString($fetchedRow['pd_serial']),                        // シリアルNo
@@ -431,7 +438,6 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                        'suffix'                => $this->convertToDispString($fetchedRow['pd_suffix']),                        // サフィックス
                        'shared'                => $isSharedItem,                                                                                               // 共通項目かどうか
                        'visible'               => $itemVisible,                                                                                                // 画面に表示するかどうか
-                       'has_instance_def' => $hasInstanceDef,                                                          // インスタンス定義が必要かどうか
                        'update_line'   => $this->convertToDispString($this->_('Update')),                                                      // 「更新」
                        'delete_line'   => $this->convertToDispString($this->_('Delete')),                                                      // 「削除」
                        'update_button' => $buttonEnabled,                                                                                              // ボタン使用制御
@@ -464,8 +470,8 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
                        'name'     => $name,                    // ページ名
                        'selected' => $selected                                                                                                         // 選択中かどうか
                );
-               $this->tmpl->addVars('main_id_list', $row);
-               $this->tmpl->parseTemplate('main_id_list', 'a');
+               $this->tmpl->addVars('access_point_list', $row);
+               $this->tmpl->parseTemplate('access_point_list', 'a');
                return true;
        }
        /**
@@ -479,22 +485,58 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
        function pageSubIdLoop($index, $fetchedRow, $param)
        {
                $selected = '';
-               $pid = $fetchedRow['pg_id'];
-               if ($pid == $this->pageSubId){
+               $checked = '';
+               $value = $fetchedRow['pg_id'];
+               
+               // 表示ラベルを作成
+               $name = $this->convertToDispString($fetchedRow['pg_name']);
+               $nameWithAttr = $name . '(' . $this->convertToDispString($value) . ')';
+
+               // ページタイトル(Bootstrap型設定画面)
+               $pageTitle = '';
+               $preTitle = '';
+               if ($value == $this->defaultPageSubId) $preTitle .= self::TITLE_PRE_ICON_HOME;          // デフォルトページ(homeアイコン)
+               if (!$fetchedRow['pg_active']) $preTitle .= self::TITLE_PRE_ICON_MINUS;                 // 非表示ページ(非表示アイコン)
+               $pageTitle = $preTitle . $name; // 選択ページのタイトル
+                       
+               // 現在選択中の項目タイトル
+               if ($value == $this->pageSubId){
                        $selected = 'selected';
+                       $checked = 'checked';
+                       
+                       $this->pageTitle = $preTitle . $nameWithAttr;   // 選択ページのタイトル
+//                     if ($value == $this->defaultPageSubId) $this->pageTitle .= ' [' . $this->_('Default') . ']';                    // デフォルトのページサブIDのときは、説明を付加
+//                     if (!$fetchedRow['pg_active']) $this->pageTitle .= ' [' . $this->_('Unpublished') . ']';                        // 非公開
                }
-               $value = $this->convertToDispString($pid);
                
-               // 表示ラベルを作成
-               $name = $value;
-               if ($pid == $this->defaultPageSubId) $name .= '[' . $this->_('Default') . ']';                  // デフォルトのページサブIDのときは、説明を付加
-               if (!$fetchedRow['pg_active']) $name .= '[' . $this->_('Unpublished') . ']';                    // 非公開
-               $name .= ' - ' . $this->convertToDispString($fetchedRow['pg_name']);
+               // 表示ラベル(Bootstrap型設定画面)
+               if ($value == $this->defaultPageSubId) $nameWithAttr .= ' [' . $this->_('Default') . ']';                       // デフォルトのページサブIDのときは、説明を付加
+               if (!$fetchedRow['pg_active']) $nameWithAttr .= ' [' . $this->_('Unpublished') . ']';                   // 非公開
+               
+               // ページ情報(Bootstrap型設定画面)
+               $contentType = '';
+               $templateId = '';
+               $pageInfoCount = count($this->pageInfoRows);
+               for ($i = 0; $i < $pageInfoCount; $i++){
+                       $pageInfo = $this->pageInfoRows[$i];
+                       if ($pageInfo['pg_id'] == $value){
+                               $contentType = $pageInfo['pn_content_type'];
+                               $templateId = $pageInfo['pn_template_id'];
+                               break;
+                       }
+               }
                
                $row = array(
-                       'value'    => $value,                   // ページID
-                       'name'     => $name,                    // ページ名
-                       'selected' => $selected                                                                                                         // 選択中かどうか
+                       'value'    => $this->convertToDispString($value),                       // ページID
+                       'name'     => $nameWithAttr,                    // ページ名
+                       'selected' => $selected,                                                                                                                // 選択中かどうか
+                       
+                       // Bootstrap型設定画面用
+                       'col_title'     => $pageTitle,          // ページ名
+                       'col_id'        => $this->convertToDispString($value),                  // ページID
+                       'col_content_type'      => $contentType,                // コンテンツタイプ
+                       'col_template_id'       => $templateId,                 // テンプレートID
+                       'col_checked'           => $checked                             // 選択状態
                );
                $this->tmpl->addVars('sub_id_list', $row);
                $this->tmpl->parseTemplate('sub_id_list', 'a');
@@ -510,15 +552,30 @@ class admin_mainPagedefWidgetContainer extends BaseAdminWidgetContainer
         */
        function templateIdLoop($index, $fetchedRow, $param)
        {
+               $value = $fetchedRow['tm_id'];
+               $name = $fetchedRow['tm_name'];
                $selected = '';
-               if ($fetchedRow['tm_id'] == $this->templateId){
+               $checked = '';
+               
+               if ($value == $this->templateId){
                        $selected = 'selected';
+                       $checked = 'checked';
+                       
+                       $this->templateTitle = $this->convertToDispString($name);       // 選択テンプレートのタイトル
                }
-
+               // テンプレート画像
+               $imageUrl = $this->gEnv->getTemplatesUrl() . '/' . $value . '/template_thumbnail.png';
+               $imagetTag = '<img src="' . $imageUrl . '" name="templatepreview" border="1" width="70" height="45" />';
+               
                $row = array(
-                       'value'    => $this->convertToDispString($fetchedRow['tm_id']),                 // テンプレートID
-                       'name'     => $this->convertToDispString($fetchedRow['tm_name']),                       // テンプレート名名
-                       'selected' => $selected                                                                                                         // 選択中かどうか
+                       'value'    => $this->convertToDispString($value),                       // テンプレートID
+                       'name'     => $this->convertToDispString($name),                        // テンプレート名名
+                       'selected' => $selected,                                                                                                        // 選択中かどうか
+                       
+                       // Bootstrap型設定画面用
+                       'col_id'                => $this->convertToDispString($value),                  // テンプレートID
+                       'col_image'             => $imagetTag,                                                                  // テンプレート画像
+                       'col_checked'   => $checked                             // 選択状態
                );
                $this->tmpl->addVars('sel_template_list', $row);
                $this->tmpl->parseTemplate('sel_template_list', 'a');
index 7604ba4..a4332ba 100644 (file)
@@ -659,7 +659,7 @@ class admin_mainDb extends BaseDb
         * @param string $pageSubId             ページサブID
         * @param array $row                    取得データ
         * @param string $langId                言語ID
-        * @return                                              true=正常、false=異常
+        * @return bool                                 true=正常、false=異常
         */
        function getPageInfo($pageId, $pageSubId, &$row, $langId = '')
        {
@@ -672,6 +672,24 @@ class admin_mainDb extends BaseDb
                return $ret;
        }
        /**
+        * ページIDでページ情報を取得
+        *
+        * @param string $pageId                ページID
+        * @param string $langId                言語ID
+        * @param array $rows                   取得データ
+        * @return bool                                 true=正常、false=異常
+        */
+       function getPageInfoByPageId($pageId, $langId, &$rows)
+       {
+               $queryStr = 'SELECT * FROM _page_info RIGHT JOIN _page_id ON pn_sub_id = pg_id AND pg_type = 1 AND pn_deleted = false AND pn_id = ? AND pn_language_id = ? ';// 2010/2/23更新
+               $queryStr .=  'WHERE (pn_deleted IS NULL ';
+               $queryStr .=    'AND pg_type = 1) ';            // サブページID
+               $queryStr .=    'OR pn_deleted = false ';
+               $queryStr .=  'ORDER BY pg_priority';
+               $ret = $this->selectRecords($queryStr, array($pageId, $langId), $rows);
+               return $ret;
+       }
+       /**
         * ページ情報を更新
         *
         * @param string $pageId                ページID
@@ -1018,15 +1036,14 @@ class admin_mainDb extends BaseDb
         * @param string $suffix                サフィックス
         * @param string $style                 css
         * @param bool $visible                 表示状態
-        * @param int $userId                   ユーザID(データ更新者)
         * @param int    $setId                 定義セットID
         * @return                                              true=成功、false=失敗
         */
-       function updatePageDef($serialNo, $pageId, $pageSubId, $position, $index, $widgetId, $configId, $suffix, $style, $visible, $userId, $setId = 0)
+       function updatePageDef($serialNo, $pageId, $pageSubId, $position, $index, $widgetId, $configId, $suffix, $style, $visible, $setId = 0)
        {
                // 更新ユーザ、日時設定
                $this->now = date("Y/m/d H:i:s");       // 現在日時
-               $this->userId = $userId;
+               $userId = $this->gEnv->getCurrentUserId();      // 現在のユーザ
                $editable = 1;          // 編集可能
                
                // トランザクション開始
@@ -1063,7 +1080,7 @@ class admin_mainDb extends BaseDb
                        $queryStr .=   '?, ';
                        $queryStr .=   '?)';
                        $this->execStatement($queryStr, array($pageId, $pageSubId, $setId, $position, $index, 
-                                                               $widgetId, $configId, $suffix, $style, $visible, $editable, $this->userId, $this->now));
+                                                               $widgetId, $configId, $suffix, $style, $visible, $editable, $userId, $this->now));
                } else {                        // 更新
                        $queryStr  = 'select * from _page_def ';
                        $queryStr .=   'where pd_serial = ? ';
@@ -1101,7 +1118,7 @@ class admin_mainDb extends BaseDb
                                        $queryStr .=   '?, ';
                                        $queryStr .=   '?)';
                                        $this->execStatement($queryStr, array($pageId, $pageSubId, $row['pd_set_id'], $position, $index, 
-                                                                               $widgetId, $configId, $suffix, $style, $visible, $editable, $this->userId, $this->now));
+                                                                               $widgetId, $configId, $suffix, $style, $visible, $editable, $userId, $this->now));
                                                                                
                                        // 旧データ削除
                                        $queryStr  = 'DELETE FROM _page_def WHERE pd_serial = ?';
@@ -1122,7 +1139,7 @@ class admin_mainDb extends BaseDb
                                        $queryStr .=     'pd_update_dt = ? ';
                                        $queryStr .=   'WHERE pd_serial = ? ';
                                        $this->execStatement($queryStr, array($position, $index, 
-                                                                               $widgetId, $configId, $suffix, $style, $visible, $editable, $this->userId, $this->now, $serialNo));
+                                                                               $widgetId, $configId, $suffix, $style, $visible, $editable, $userId, $this->now, $serialNo));
                                }
                        }
                }
index 5165677..7ab4514 100644 (file)
@@ -9,9 +9,9 @@
  *
  * @package    Magic3 Framework
  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
- * @copyright  Copyright 2006-2010 Magic3 Project.
+ * @copyright  Copyright 2006-2014 Magic3 Project.
  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
- * @version    SVN: $Id: help_pagedef.php 3866 2010-11-29 09:02:05Z fishbone $
+ * @version    SVN: $Id$
  * @link       http://www.magic3.org
  */
 require_once($gEnvManager->getCommonPath()                             . '/helpConv.php' );
@@ -91,6 +91,16 @@ class help_pagedef extends HelpConv
                                'title' =>      $this->_('Shared'),                     // ページ共通属性
                                'body'  =>      $this->_('The Shared means widget shared status by pages. If widget has shared attribute, it always shows on evey page.')               // 同ページIDで、サブページIDに関わらずウィジェットを表示するかどうかを指定します。
                        ),
+                       
+                       // (Bootstrap型設定画面用)
+                       'pagedef_page' => array(        
+                               'title' =>      $this->_('Page'),                       // ページ
+                               'body'  =>      $this->_('Select the page to edit. Page is identified by Page ID added to url as parameter. Unpublish page is not published to users without site administration.')             // 編集するページを選択します。ページはURLに付加されるページIDで区別されます。非公開項目は管理権限のない一般ユーザには公開されないページです。
+                       ),
+                       'pagedef_template' => array(    
+                               'title' =>      $this->_('Template'),                   // テンプレート
+                               'body'  =>      $this->_('Select the template for page.')               // ページに対してテンプレートを選択します。
+                       ),
                );
                return $helpData;
        }
index 89d365c..48995d9 100644 (file)
Binary files a/widgets/admin_main/include/locale/ja_JP.mo and b/widgets/admin_main/include/locale/ja_JP.mo differ
index 07769a2..89db7f5 100644 (file)
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-01-16 11:47+0900\n"
-"PO-Revision-Date: 2014-01-16 11:47+0900\n"
+"POT-Creation-Date: 2014-02-07 10:05+0900\n"
+"PO-Revision-Date: 2014-02-07 10:05+0900\n"
 "Last-Translator: \n"
 "Language-Team: \n"
 "Language: ja_JP\n"
@@ -49,7 +49,7 @@ msgid "Margin Right"
 msgstr "マージン右"
 
 #: ../container/admin_mainAdjustwidgetWidgetContainer.php:156
-#: ../container/admin_mainPagedefWidgetContainer.php:117
+#: ../container/admin_mainPagedefWidgetContainer.php:127
 #: ../help/help_widgetlist.php:43
 msgid "Widget ID"
 msgstr "ウィジェットID"
@@ -106,7 +106,7 @@ msgstr "タイトル"
 #: ../container/admin_mainAdjustwidgetWidgetContainer.php:468
 #: ../container/admin_mainMenudefWidgetContainer.php:152
 #: ../container/admin_mainMenudefWidgetContainer.php:177
-#: ../container/admin_mainPagedefWidgetContainer.php:120
+#: ../container/admin_mainPagedefWidgetContainer.php:130
 #: ../container/admin_mainSmenudefWidgetContainer.php:145
 #: ../container/admin_mainSmenudefWidgetContainer.php:169
 #: ../help/help_menudef.php:63 ../help/help_pagedef.php:87
@@ -244,7 +244,7 @@ msgstr "追加CSSクラス"
 #: ../container/admin_mainEditmenuWidgetContainer.php:202
 #: ../container/admin_mainMenudefWidgetContainer.php:158
 #: ../container/admin_mainOpelogWidgetContainer.php:193
-#: ../container/admin_mainPagedefWidgetContainer.php:435
+#: ../container/admin_mainPagedefWidgetContainer.php:441
 #: ../container/admin_mainSmenudefWidgetContainer.php:151
 #: ../container/admin_mainTemplistWidgetContainer.php:564
 #: ../container/admin_mainUserlistWidgetContainer.php:138
@@ -269,15 +269,15 @@ msgstr "全 %d 件"
 
 #: ../container/admin_mainConfigsiteWidgetContainer.php:138
 #: ../container/admin_mainOpelogWidgetContainer.php:341
-#: ../container/admin_mainPagedefWidgetContainer.php:333
-#: ../container/admin_mainPagedefWidgetContainer.php:337
+#: ../container/admin_mainPagedefWidgetContainer.php:349
+#: ../container/admin_mainPagedefWidgetContainer.php:353
 #: ../container/admin_mainPortalWidgetContainer.php:120
 msgid "Failed in updating data."
 msgstr "データ更新に失敗しました"
 
 #: ../container/admin_mainConfigsiteWidgetContainer.php:140
 #: ../container/admin_mainOpelogWidgetContainer.php:337
-#: ../container/admin_mainPagedefWidgetContainer.php:331
+#: ../container/admin_mainPagedefWidgetContainer.php:347
 #: ../container/admin_mainPortalWidgetContainer.php:118
 msgid "Data updated."
 msgstr "データを更新しました"
@@ -667,8 +667,8 @@ msgid "Configure page information."
 msgstr "ページの情報設定を行います。"
 
 #: ../container/admin_mainEditmenuWidgetContainer.php:118
-#: ../container/admin_mainPagedefWidgetContainer.php:96
-#: ../container/admin_mainPagedefWidgetContainer.php:97
+#: ../container/admin_mainPagedefWidgetContainer.php:103
+#: ../container/admin_mainPagedefWidgetContainer.php:104
 #: ../help/help_pagedef.php:31
 msgid "Page Id"
 msgstr "ページID"
@@ -714,7 +714,7 @@ msgstr "管理メニューその他"
 #: ../container/admin_mainLoginstatusWidgetContainer.php:149
 #: ../container/admin_mainMenudefWidgetContainer.php:140
 #: ../container/admin_mainOpelogWidgetContainer.php:185
-#: ../container/admin_mainPagedefWidgetContainer.php:114
+#: ../container/admin_mainPagedefWidgetContainer.php:124
 #: ../container/admin_mainSmenudefWidgetContainer.php:133
 #: ../container/admin_mainUserlistWidgetContainer.php:136
 msgid "Go back"
@@ -886,7 +886,7 @@ msgstr "パス:"
 #: ../container/admin_mainFilebrowseWidgetContainer.php:199
 #: ../container/admin_mainMenudefWidgetContainer.php:157
 #: ../container/admin_mainMenudefWidgetContainer.php:171
-#: ../container/admin_mainPagedefWidgetContainer.php:436
+#: ../container/admin_mainPagedefWidgetContainer.php:442
 #: ../container/admin_mainSmenudefWidgetContainer.php:150
 #: ../container/admin_mainSmenudefWidgetContainer.php:163
 #: ../container/admin_mainTemplistWidgetContainer.php:565
@@ -1192,7 +1192,7 @@ msgid "Edit"
 msgstr "編集"
 
 #: ../container/admin_mainMenudefWidgetContainer.php:178
-#: ../container/admin_mainPagedefWidgetContainer.php:122
+#: ../container/admin_mainPagedefWidgetContainer.php:132
 #: ../container/admin_mainSmenudefWidgetContainer.php:170
 #: ../container/admin_mainTemplistWidgetContainer.php:465
 #: ../container/admin_mainWidgetlistWidgetContainer.php:517
@@ -1283,7 +1283,7 @@ msgstr "コンテンツを編集"
 
 #: ../container/admin_mainOpelogWidgetContainer.php:60
 #: ../container/admin_mainOpelogWidgetContainer.php:63
-#: ../container/admin_mainPagedefWidgetContainer.php:112
+#: ../container/admin_mainPagedefWidgetContainer.php:122
 msgid "All"
 msgstr "すべて"
 
@@ -1361,117 +1361,127 @@ msgstr "レベル:"
 msgid "Status:"
 msgstr "ステータス:"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:98
+#: ../container/admin_mainPagedefWidgetContainer.php:105
 msgid "Show Detail"
 msgstr "詳細"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:99
+#: ../container/admin_mainPagedefWidgetContainer.php:106
 #: ../help/help_pagedef.php:55 ../help/help_templist.php:55
 msgid "Default Template"
 msgstr "デフォルトテンプレート"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:100
+#: ../container/admin_mainPagedefWidgetContainer.php:107
 #: ../help/help_pagedef.php:59
 msgid "Change Template"
 msgstr "変更"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:101
+#: ../container/admin_mainPagedefWidgetContainer.php:108
 #: ../help/help_pagedef.php:67
 msgid "Page Layout"
 msgstr "画面デザイン"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:102
+#: ../container/admin_mainPagedefWidgetContainer.php:109
 msgid "Layout"
 msgstr "レイアウト"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:103
+#: ../container/admin_mainPagedefWidgetContainer.php:110
 #: ../container/admin_mainTemplistWidgetContainer.php:563
 msgid "Preview"
 msgstr "プレビュー"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:104
+#: ../container/admin_mainPagedefWidgetContainer.php:111
 msgid "Maximize"
 msgstr "最大化"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:105
+#: ../container/admin_mainPagedefWidgetContainer.php:112
 #: ../help/help_pagedef.php:51
 msgid "Preview in other window"
 msgstr "別画面でプレビュー"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:106
+#: ../container/admin_mainPagedefWidgetContainer.php:113
 msgid "Site Preview"
 msgstr "実際の画面"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:109
+#: ../container/admin_mainPagedefWidgetContainer.php:115
+#: ../help/help_pagedef.php:97
+msgid "Page"
+msgstr "ページ"
+
+#: ../container/admin_mainPagedefWidgetContainer.php:116
+#: ../help/help_pagedef.php:101
+msgid "Template"
+msgstr "テンプレート"
+
+#: ../container/admin_mainPagedefWidgetContainer.php:119
 msgid "Update line data?"
 msgstr "データを更新しますか?"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:110
+#: ../container/admin_mainPagedefWidgetContainer.php:120
 msgid "Delete line data?"
 msgstr "データを削除しますか?"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:111
+#: ../container/admin_mainPagedefWidgetContainer.php:121
 msgid "Delete all line data?"
 msgstr "すべての項目を削除しますか?"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:113
+#: ../container/admin_mainPagedefWidgetContainer.php:123
 msgid "Page Definition Detail"
 msgstr "ページ定義詳細"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:115
+#: ../container/admin_mainPagedefWidgetContainer.php:125
 #: ../help/help_pagedef.php:75
 msgid "Position"
 msgstr "ポジション名"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:116
-#: ../container/admin_mainPagedefWidgetContainer.php:324
+#: ../container/admin_mainPagedefWidgetContainer.php:126
+#: ../container/admin_mainPagedefWidgetContainer.php:340
 #: ../help/help_pagedef.php:79
 msgid "Order"
 msgstr "表示順"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:118
+#: ../container/admin_mainPagedefWidgetContainer.php:128
 #: ../help/help_widgetlist.php:47
 msgid "Widget Name"
 msgstr "ウィジェット名"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:119
+#: ../container/admin_mainPagedefWidgetContainer.php:129
 #: ../help/help_pagedef.php:83
 msgid "Config ID"
 msgstr "定義ID"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:121
+#: ../container/admin_mainPagedefWidgetContainer.php:131
 #: ../help/help_pagedef.php:91
 msgid "Shared"
 msgstr "共通"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:123
+#: ../container/admin_mainPagedefWidgetContainer.php:133
 msgid "Include shared items."
 msgstr "共通項目含む"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:124
+#: ../container/admin_mainPagedefWidgetContainer.php:134
 msgid "Delete all"
 msgstr "すべて削除"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:230
+#: ../container/admin_mainPagedefWidgetContainer.php:233
 msgid "Page Attribute:"
 msgstr "ページ属性:"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:344
-#: ../container/admin_mainPagedefWidgetContainer.php:354
+#: ../container/admin_mainPagedefWidgetContainer.php:360
+#: ../container/admin_mainPagedefWidgetContainer.php:370
 msgid "Data deleted."
 msgstr "データを削除しました"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:346
-#: ../container/admin_mainPagedefWidgetContainer.php:356
+#: ../container/admin_mainPagedefWidgetContainer.php:362
+#: ../container/admin_mainPagedefWidgetContainer.php:372
 msgid "Failed in deleting data."
 msgstr "データ削除に失敗しました"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:490
+#: ../container/admin_mainPagedefWidgetContainer.php:513
 #: ../container/admin_mainTemplistWidgetContainer.php:463
 msgid "Default"
 msgstr "デフォルト"
 
-#: ../container/admin_mainPagedefWidgetContainer.php:491
+#: ../container/admin_mainPagedefWidgetContainer.php:514
 msgid "Unpublished"
 msgstr "非公開"
 
@@ -2509,6 +2519,19 @@ msgstr ""
 "同ページIDで、サブページIDに関わらずウィジェットを表示するかどうかを指定しま"
 "す。"
 
+#: ../help/help_pagedef.php:98
+msgid ""
+"Select the page to edit. Page is identified by Page ID added to url as "
+"parameter. Unpublish page is not published to users without site "
+"administration."
+msgstr ""
+"編集するページを選択します。ページはURLに付加されるページIDで区別されます。非"
+"公開項目は管理権限のない一般ユーザには公開されないページです。"
+
+#: ../help/help_pagedef.php:102
+msgid "Select the template for page."
+msgstr "ページに対してテンプレートを選択します。"
+
 #: ../help/help_portal.php:32
 msgid "Server information as portal."
 msgstr "ポータルサーバの情報です。"
index e2937ea..c4f9a30 100644 (file)
@@ -5,31 +5,21 @@
  *\r
  * @package    Magic3 Framework\r
  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>\r
- * @copyright  Copyright 2006-2012 Magic3 Project.\r
+ * @copyright  Copyright 2006-2014 Magic3 Project.\r
  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License\r
- * @version    SVN: $Id: menudef.tmpl.html 5389 2012-11-18 22:42:30Z fishbone $\r
+ * @version    SVN: $Id$\r
  * @link       http://www.magic3.org\r
  */\r
 <patTemplate:tmpl name="_widget">\r
 <script type="text/javascript">\r
 //<![CDATA[\r
+var pageSelectMenuVisible = false;                     // ページ選択メニューの表示状態\r
+var templateSelectMenuVisible = false;         // テンプレート選択メニューの表示状態\r
+\r
 function selectMenu(){\r
        document.main.submit();\r
        return true;\r
 }\r
-// プレビュー再表示\r
-function refreshPreviewWindow(){\r
-       var url = document.main.url.value;\r
-       if (url.endsWith(".php")){\r
-               url += '?cmd=preview';\r
-       } else {\r
-               url += '&cmd=preview';\r
-       }\r
-       document.getElementById("preview2").src = url;\r
-}\r
-function hidePreviewWindow(){\r
-       document.getElementById("preview2").src = '';\r
-}\r
 function m3UpdateByChildWindow(serial)\r
 {\r
        //refreshPreviewWindow();\r
@@ -40,27 +30,6 @@ function previewInOtherWindow()
        m3ShowPreviewWindow(0, "{URL}");\r
        return true;\r
 }\r
-// 詳細定義画面の表示\r
-function showDetail(){\r
-       document.main.task.value = 'pagedef_detail';\r
-       document.main.submit();\r
-       return true;\r
-}\r
-function showimage() {\r
-       var selVal = getSelectedValue( 'main', 'sel_template' );\r
-       document.images.templatepreview.src = '{_ROOT_URL}/templates/' + selVal + '/template_thumbnail.png';\r
-}\r
-function getSelectedValue( frmName, srcListName ) {\r
-       var form = eval( 'document.' + frmName );\r
-       var srcList = eval( 'form.' + srcListName );\r
-\r
-       i = srcList.selectedIndex;\r
-       if (i != null && i > -1) {\r
-               return srcList.options[i].value;\r
-       } else {\r
-               return null;\r
-       }\r
-}\r
 function maximizeLayout(){\r
        window.location.href = '{ADMIN_URL}&cmd=showpositionwithwidget&task=pagedef';\r
 }\r
@@ -70,33 +39,42 @@ function changeTemplate()
        document.main.act.value = 'changetemplate';\r
        document.main.submit();\r
 }\r
+// プレビュー用の画面作成\r
+function setupPreview()\r
+{\r
+       if (pageSelectMenuVisible || templateSelectMenuVisible){\r
+               $('#layout_preview_outer').hide();\r
+               $('#layout_preview_title').hide();\r
+               $('#layout_switch_image').hide();\r
+       } else {\r
+               $('#layout_preview_outer').show();\r
+               $('#layout_preview_title').show();\r
+               $('#layout_switch_image').show();\r
+       }\r
+}\r
+\r
 $(function(){\r
-       // タブを作成\r
-       $("#switch_layout").tabs({\r
-               select: function(event, ui){\r
-                       if (ui.panel.id == 'panel_layout'){\r
-                               $('#layoutmax').css('display', '');\r
-                               hidePreviewWindow();\r
-                       } else {\r
-                               $('#layoutmax').css('display', 'none');\r
-                               refreshPreviewWindow();\r
-                       }\r
-                       return true;\r
-               }\r
-       });\r
-       \r
+/*     \r
        // レイアウト画面最大化キー登録\r
        $(document).keyup(function(e){\r
                if (e.which == 27) maximizeLayout();    // ESCキー\r
        });\r
-       \r
+       */\r
+       // 詳細画面へ遷移\r
+       $('#link_detail').bind('click', function(e) {\r
+               document.main.task.value = 'pagedef_detail';\r
+               document.main.submit();\r
+       //      location.href = '{ADMIN_URL}&task=pagedef_detail';\r
+               return false;\r
+       });\r
+\r
        // テンプレートモード変更\r
        $("#mode_template_normal").click(function(){\r
                $(this).css('display', 'none');\r
                $('#mode_template_plain').css('display', 'inline');\r
                document.main.layoutmode.value = 'plain';\r
                \r
-               document.getElementById("preview").src = '{ADMIN_URL}&cmd=showpositionwithwidget&template={PLAIN_TEMPLATE_ID}';\r
+               document.getElementById("layout_preview").src = '{ADMIN_URL}&cmd=showpositionwithwidget&template={PLAIN_TEMPLATE_ID}';\r
                return false;\r
        });\r
        $("#mode_template_plain").click(function(){\r
@@ -104,88 +82,172 @@ $(function(){
                $('#mode_template_normal').css('display', 'inline');\r
                document.main.layoutmode.value = '';\r
                \r
-               document.getElementById("preview").src = '{ADMIN_URL}&cmd=showpositionwithwidget';\r
+               document.getElementById("layout_preview").src = '{ADMIN_URL}&cmd=showpositionwithwidget';\r
                return false;\r
        });\r
+       \r
+       // プレビューの位置調節\r
+       var offset=$('#preview_title').offset();\r
+       //var offset=$('#layout_preview_outer').offset();\r
+       //      var previewTop = offset.top + $('#preview_title').height() + 10;\r
+       var previewTop = 220;\r
+       $('#layout_preview_outer').css({top: previewTop});\r
+       //$('#layout_preview_outer')css({top:'500px'});\r
+       $('#layout_preview').css({width: '100%',  height: '100%'});\r
+\r
+       // パネル開閉イベント設定\r
+       $('#pageselectmenu .panel-collapse').on('show.bs.collapse', function (n){\r
+               $(n.target).siblings('.panel-heading').find('.layout_menu_switch.glyphicon').removeClass("glyphicon-chevron-right").addClass("glyphicon-chevron-down");\r
+               \r
+               pageSelectMenuVisible = true;\r
+               setupPreview();\r
+       });\r
+       $('#pageselectmenu .panel-collapse').on('hidden.bs.collapse', function (n){\r
+               $(n.target).siblings('.panel-heading').find('.layout_menu_switch.glyphicon').removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-right");\r
+               \r
+               pageSelectMenuVisible = false;\r
+               setupPreview();\r
+       });\r
+       $('#templateselectmenu .panel-collapse').on('show.bs.collapse', function (n){\r
+               $(n.target).siblings('.panel-heading').find('.layout_menu_switch.glyphicon').removeClass("glyphicon-chevron-right").addClass("glyphicon-chevron-down");\r
+               \r
+               templateSelectMenuVisible = true;\r
+               setupPreview();\r
+       });\r
+       $('#templateselectmenu .panel-collapse').on('hidden.bs.collapse', function (n){\r
+               $(n.target).siblings('.panel-heading').find('.layout_menu_switch.glyphicon').removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-right");\r
+               \r
+               templateSelectMenuVisible = false;\r
+               setupPreview();\r
+       });\r
+       \r
+       // メニュー選択処理\r
+       $('#layout_page_table tr').click(function(event) {\r
+               if (event.target.type !== 'radio') {\r
+                       $(':radio', this).trigger('click');\r
+               }\r
+       });\r
+       $('#layout_template_table tr').click(function(event) {\r
+               if (event.target.type !== 'radio') {\r
+                       $(':radio', this).trigger('click');\r
+               }\r
+       });\r
+       $('input[name="pagesubid"]:radio').change(function(){\r
+               selectMenu();\r
+       });\r
+       $('input[name="sel_template"]:radio').change(function(){\r
+               changeTemplate();\r
+       });\r
 });\r
 //]]>\r
 </script>\r
-<div align="center">\r
 <!-- m3:ErrorMessage -->\r
 <form method="post" name="main">\r
 <input type="hidden" name="task" value="pagedef" />\r
 <input type="hidden" name="act" />\r
 <input type="hidden" name="url" value="{URL}" />\r
-<!--<input type="hidden" name="adminurl" value="{ADMIN_URL}" />-->\r
 <input type="hidden" name="layoutmode" value="{LAYOUT_MODE}" />\r
-<table width="100%">\r
-<tr><td valign="top">\r
 <!-- head area start -->\r
-<table width="100%"><tr><td>\r
-<table class="simple-table" width="100%"><!-- page id start -->\r
-<tr><td class="table-headside" width="100"><span {_HELP_PAGEDEF_PAGE_ID}>{_LC_LABEL_PAGE_ID}</span></td>\r
-<patTemplate:tmpl name="hide_page_id" visibility="hidden"><!-- page id select start -->\r
-<td>\r
+<patTemplate:tmpl name="show_access_point" visibility="hidden">\r
+<div class="row">\r
     <select name="pageid" onchange="selectMenu();">\r
-        <patTemplate:tmpl name="main_id_list">\r
+        <patTemplate:tmpl name="access_point_list">\r
         <option value="{VALUE}" {SELECTED}>{NAME}</option>\r
         </patTemplate:tmpl>\r
     </select>\r
-</td>\r
-<td class="table-headside" width="100"><span {_HELP_PAGEDEF_PAGE_SUB_ID}>{_LC_LABEL_PAGE_SUB_ID}</span></td>\r
-</patTemplate:tmpl><!-- page id select end -->\r
-<td colspan="2">\r
-    <select name="pagesubid" onchange="selectMenu();">\r
-        <patTemplate:tmpl name="sub_id_list">\r
-        <option value="{VALUE}" {SELECTED}>{NAME}</option>\r
-        </patTemplate:tmpl>\r
-    </select>&nbsp;&nbsp;&nbsp;&nbsp;{CONTENT_TYPE}\r
-<span {_HELP_PAGEDEF_DETAIL_BTN}><input type="button" class="button" onclick="showDetail();" value="{_LC_LABEL_SHOW_DETAIL}" /></span></td></tr>\r
-<tr class="even"><td class="table-headside" width="100"><span {_HELP_PAGEDEF_PREVIEW_URL}>URL</span></td><td {PAGE_ID_COL}>\r
-<input type="text" value="{URL}" style="width:100%;" readonly />\r
-</td></tr>\r
-</table><!-- page id end -->\r
-</td><td>\r
-<table class="simple-table"><!-- select template -->\r
-<tr><td class="table-headside"><span {_HELP_PAGEDEF_DEFAULT_TEMPLATE}>{_LC_LABEL_DEFAULT_TEMPLATE}</span>\r
-<a id="mode_template_normal" href="#" style="{TEMPLATE_NORMAL_STYLE}"><img src="{TEMPLATE_NORMAL}" alt="デザインテンプレート表示" title="デザインテンプレート表示" width="16" height="16" /></a>\r
-<a id="mode_template_plain" href="#" style="{TEMPLATE_PLAIN_STYLE}"><img src="{TEMPLATE_PLAIN}" alt="デザインなしテンプレート表示" title="デザインなしテンプレート表示" width="16" height="16" /></a>\r
-</td>\r
-<td rowspan="2"><span {_HELP_PAGEDEF_TEMPLATE_IMG}><img src="{TMPL_IMAGE}" name="templatepreview" border="1" width="70" height="45" /></span></td>\r
-</tr>\r
-<tr class="even"><td>\r
-           <select name="sel_template" onchange="showimage();">\r
-               <patTemplate:tmpl name="sel_template_list">\r
-               <option value="{VALUE}" {SELECTED}>{NAME}</option>\r
-               </patTemplate:tmpl>\r
-           </select><span {_HELP_PAGEDEF_CHANGE_TEMPLATE_BTN}><input class="button" type="submit" value="{_LC_LABEL_CHANGE_TEMPLATE}" onclick="changeTemplate();" /></span>\r
-</td></tr>\r
-</table><!-- select template -->\r
-</td></tr>\r
-</table>\r
+</div>\r
+</patTemplate:tmpl>\r
+\r
+<div id="layout_header" class="row">\r
+<div class="col-lg-7">\r
+    <div class="panel-group" >\r
+        <label for="pageselectmenu"><span {_HELP_PAGEDEF_PAGE}>{_LC_LABEL_PAGE}</span></label>\r
+               <div class="panel panel-success" id="pageselectmenu" >\r
+                       <div class="panel-heading" data-toggle="collapse" data-parent="#pageselectmenu" data-target="#pageselect" >\r
+                               <h4 class="panel-title">{PAGE_TITLE}<i class="glyphicon glyphicon-chevron-right pull-right layout_menu_switch"></i><!--<a href="{ADMIN_URL}&task=pagedef_detail">--><a id="link_detail"><i class="glyphicon glyphicon-list-alt pull-right" rel="m3help" title="定義詳細"></i></a></h4>\r
+                       </div>\r
+                       <div id="pageselect" class="panel-collapse collapse">\r
+                       <div class="panel-body">\r
+                               <table id="layout_page_table" class="table table-striped table-hover">\r
+                                       <thead>\r
+                                               <tr>\r
+                                               <th> </th>\r
+                                               <th>ページ名</th>\r
+                                               <th>ページID</th>\r
+                                               <th>属性</th>\r
+                                               <th>テンプレート</th>\r
+                                               </tr>\r
+                                       </thead>\r
+                                       <tbody>\r
+                                               <patTemplate:tmpl name="sub_id_list">\r
+                                               <tr>\r
+                                               <td><input type="radio" name="pagesubid" value="{VALUE}" {COL_CHECKED}></td>\r
+                                               <td>{COL_TITLE}</td>\r
+                                               <td>{COL_ID}</td>\r
+                                               <td>{COL_CONTENT_TYPE}</td>\r
+                                               <td>{COL_TEMPLATE_ID}</td>\r
+                                               </tr>\r
+                                               </patTemplate:tmpl>\r
+                                       </tbody>\r
+                               </table>\r
+                       </div>\r
+               </div>\r
+               </div>\r
+       </div>\r
+</div>\r
+<div class="col-lg-4">\r
+       <div class="panel-group"  >\r
+               <label for="templateselectmenu"><span {_HELP_PAGEDEF_TEMPLATE}>{_LC_LABEL_TEMPLATE}</span></label>\r
+               <div class="panel panel-success" id="templateselectmenu" >\r
+                       <div class="panel-heading" data-toggle="collapse" data-parent="#templateselectmenu" data-target="#templateselect" >\r
+                               <h4 class="panel-title">{TEMPLATE_TITLE}<i class="glyphicon glyphicon-chevron-right pull-right layout_menu_switch"></i></h4>\r
+                       </div>\r
+                       <div id="templateselect" class="panel-collapse collapse">\r
+                       <div class="panel-body">\r
+                               <table id="layout_template_table" class="table table-striped table-hover">\r
+                                       <thead>\r
+                                               <tr>\r
+                                               <th> </th>\r
+                                               <th>テンプレートID</th>\r
+                                               <th>イメージ</th>\r
+                                               </tr>\r
+                                       </thead>\r
+                                       <tbody>\r
+                                       <patTemplate:tmpl name="sel_template_list">\r
+                                               <tr>\r
+                                               <td><input type="radio" name="sel_template" value="{VALUE}" {COL_CHECKED}></td>\r
+                                               <td>{COL_ID}</td>\r
+                                               <td>{COL_IMAGE}</td>\r
+                                               </tr>\r
+                                       </patTemplate:tmpl>\r
+                                       </tbody>\r
+                               </table>\r
+                       </div>\r
+               </div>\r
+               </div>\r
+       </div>\r
+</div>\r
+<div id="layout_switch_image" class="col-lg-1">\r
+<a id="mode_template_normal" style="{TEMPLATE_NORMAL_STYLE}"><img src="{TEMPLATE_NORMAL32}" alt="通常モード" title="通常モード" width="32" height="32" /></a>\r
+<a id="mode_template_plain" style="{TEMPLATE_PLAIN_STYLE}"><img src="{TEMPLATE_PLAIN32}" alt="レイアウト専用モード" title="レイアウト専用モード" width="32" height="32" /></a>\r
+</div>\r
+</div>\r
 <!-- head area end -->\r
-</td></tr>\r
-<tr><td>\r
 <!-- bottom area start -->\r
-            <div id="switch_layout"><ul>\r
-           <li><a href="#panel_layout"><span>{_LC_LABEL_LAYOUT}</span></a></li>\r
-           <li><a href="#panel_preview"><span>{_LC_LABEL_PREVIEW}</span></a></li>\r
-<div align="right">\r
-<span {_HELP_PAGEDEF_MAXIMIZE_BTN}><input type="button" id="layoutmax" class="button" onclick="maximizeLayout();" value="{_LC_LABEL_MAXIMIZE}" /></span>\r
-<span {_HELP_PAGEDEF_PREVIEW_BTN}><input type="button" id="previewother" class="button" onclick="previewInOtherWindow();" value="{_LC_LABEL_PREVIEW_IN_OTHER_WINDOW}" /></span>\r
+<div id="layout_preview_title" class="row"><!--<p class="text-right">-->\r
+<div class="col-lg-6">\r
+URL:{URL}\r
+</div>\r
+<div class="col-lg-6 text-right">\r
+<!--<span {_HELP_PAGEDEF_MAXIMIZE_BTN}><button type="button" id="layoutmax" class="btn btn-default button" onclick="maximizeLayout();return false;">{_LC_LABEL_MAXIMIZE}</button></span>-->\r
+<span {_HELP_PAGEDEF_PREVIEW_BTN}><button type="button" id="previewother" class="btn btn-default" onclick="previewInOtherWindow();return false;">{_LC_LABEL_PREVIEW}</button></span>\r
+<!--</p>-->\r
 </div>\r
-           </ul>\r
-<div id="panel_layout" style="padding:3px;">\r
-    <iframe id="preview" name="preview" style="width:100%; height:2000px; border:0;" src="{ADMIN_URL}&cmd=showpositionwithwidget{PREVIEW_TEMPLATE_PARAM}" >{_LC_LABEL_SITE_PREVIEW}</iframe>\r
 </div>\r
-<div id="panel_preview" style="padding:3px;">\r
-    <iframe id="preview2" name="preview2" style="width:100%; height:2000px; border:0;">{_LC_LABEL_SITE_PREVIEW}</iframe>\r
+<div id="layout_preview_outer">\r
+<iframe id="layout_preview" src="{ADMIN_URL}&cmd=showpositionwithwidget{PREVIEW_TEMPLATE_PARAM}" frameborder="0"></iframe>\r
 </div>\r
-           </div>\r
 <!-- bottom area end -->\r
-</td></tr>\r
-</table>\r
-\r
 </form>\r
-</div>\r
 </patTemplate:tmpl>\r
+\r
index 0628b6f..2d94287 100644 (file)
@@ -1,3 +1,15 @@
+/**
+ * 表示データ作成用テンプレート(patTemplate)
+ *
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+ *
+ * @package    Magic3 Framework
+ * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+ * @copyright  Copyright 2006-2014 Magic3 Project.
+ * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
+ * @version    SVN: $Id$
+ * @link       http://www.magic3.org
+ */
 <patTemplate:tmpl name="_widget">
 <script type="text/javascript">
 //<![CDATA[
@@ -79,11 +91,11 @@ $(function(){
     </tfoot>
     <tbody>
         <patTemplate:tmpl name="page_def_list">
-        <tr {LINE_COLOR}>
+        <tr>
            <td>{POSITION}</td>
            <td align="center"><input type="text" name="item{NO}_index" value="{INDEX}" size="4" maxlength="4" /></td>
            <td>{WIDGET_ID} / {WIDGET_NAME}</td>
-           <td align="center"><input type="text" name="item{NO}_def_id" value="{DEF_ID}" size="5" maxlength="5" onkeypress="return m3_numericKey(event,true);" {HAS_INSTANCE_DEF} />
+           <td align="center"><input type="text" name="item{NO}_def_id" value="{DEF_ID}" size="5" maxlength="5" onkeypress="return m3_numericKey(event,true);" />
            </td>
            <td align="center"><input type="checkbox" name="item{NO}_visible" {VISIBLE} /></td>
            <td align="center"><input type="checkbox" name="item{NO}_shared" {SHARED} /></td>
index ec98446..47bda65 100644 (file)
@@ -1,3 +1,15 @@
+/**\r
+ * 表示データ作成用テンプレート(patTemplate)\r
+ *\r
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.\r
+ *\r
+ * @package    Magic3 Framework\r
+ * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>\r
+ * @copyright  Copyright 2006-2014 Magic3 Project.\r
+ * @license    http://www.gnu.org/copyleft/gpl.html  GPL License\r
+ * @version    SVN: $Id$\r
+ * @link       http://www.magic3.org\r
+ */\r
 <patTemplate:tmpl name="_widget">\r
 <script type="text/javascript">\r
 //<![CDATA[\r
@@ -101,10 +113,10 @@ $(document).ready(function(){
 <table width="100%"><tr><td>\r
 <table class="simple-table" width="100%"><!-- page id start -->\r
 <tr><td class="table-headside" width="100"><span {_HELP_PAGEDEF_PAGE_ID}>{_LC_LABEL_PAGE_ID}</span></td>\r
-<patTemplate:tmpl name="hide_page_id" visibility="hidden"><!-- page id select start -->\r
+<patTemplate:tmpl name="show_access_point" visibility="hidden"><!-- page id select start -->\r
 <td>\r
     <select name="pageid" onchange="selectMenu();">\r
-        <patTemplate:tmpl name="main_id_list">\r
+        <patTemplate:tmpl name="access_point_list">\r
         <option value="{VALUE}" {SELECTED}>{NAME}</option>\r
         </patTemplate:tmpl>\r
     </select>\r
index 3c15fa3..1e1fa29 100644 (file)
@@ -1,3 +1,15 @@
+/**\r
+ * 表示データ作成用テンプレート(patTemplate)\r
+ *\r
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.\r
+ *\r
+ * @package    Magic3 Framework\r
+ * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>\r
+ * @copyright  Copyright 2006-2014 Magic3 Project.\r
+ * @license    http://www.gnu.org/copyleft/gpl.html  GPL License\r
+ * @version    SVN: $Id$\r
+ * @link       http://www.magic3.org\r
+ */\r
 <patTemplate:tmpl name="_widget">\r
 <script type="text/javascript">\r
 //<![CDATA[\r
@@ -100,10 +112,10 @@ $(document).ready(function(){
 <table width="100%"><tr><td>\r
 <table class="simple-table" width="100%"><!-- page id start -->\r
 <tr><td class="table-headside" width="100"><span {_HELP_PAGEDEF_PAGE_ID}>{_LC_LABEL_PAGE_ID}</span></td>\r
-<patTemplate:tmpl name="hide_page_id" visibility="hidden"><!-- page id select start -->\r
+<patTemplate:tmpl name="show_access_point" visibility="hidden"><!-- page id select start -->\r
 <td>\r
     <select name="pageid" onchange="selectMenu();">\r
-        <patTemplate:tmpl name="main_id_list">\r
+        <patTemplate:tmpl name="access_point_list">\r
         <option value="{VALUE}" {SELECTED}>{NAME}</option>\r
         </patTemplate:tmpl>\r
     </select>\r
index b69eea3..137b083 100644 (file)
 //<![CDATA[
 $(function(){
     $('#accordion .panel-collapse').on('shown.bs.collapse', function (n){
-          $(n.target).siblings('.panel-heading').find('.glyphicon').removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up");
+          $(n.target).siblings('.panel-heading').find('.glyphicon').removeClass("glyphicon-chevron-right").addClass("glyphicon-chevron-down");
     });
     $('#accordion .panel-collapse').on('hidden.bs.collapse', function (n){
-       $(n.target).siblings('.panel-heading').find('.glyphicon').removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down");
+       $(n.target).siblings('.panel-heading').find('.glyphicon').removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-right");
     });
 });
 //]]>
@@ -32,7 +32,7 @@ $(function(){
     <div class="panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne" >
       <h4 class="panel-title">
         <!--<a class="accordion-toggle">-->
-          Collapsible Group Item #1<i class="indicator glyphicon glyphicon-chevron-up"></i>
+          Collapsible Group Item #1<i class="indicator glyphicon glyphicon-chevron-down"></i>
         <!--</a>-->
       </h4>
     </div>
@@ -46,7 +46,7 @@ $(function(){
     <div class="panel-heading">
       <h4 class="panel-title"  data-toggle="collapse" data-parent="#accordion" data-target="#collapseTwo">
         <a class="accordion-toggle">
-          Collapsible Group Item #2<i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+          Collapsible Group Item #2<i class="indicator glyphicon glyphicon-chevron-right pull-right"></i>
         </a>
       </h4>
     </div>