OSDN Git Service

「デフォルトメニュー」ウィジェットにBootstrapテンプレート用の縦型メニュー仕様を追加。 v2.8.16
authornaoki hirata <naoki@magic3.org>
Sun, 11 May 2014 11:28:34 +0000 (20:28 +0900)
committernaoki hirata <naoki@magic3.org>
Sun, 11 May 2014 11:28:34 +0000 (20:28 +0900)
include/sql/update_widgets.sql
widgets/default_menu/include/container/default_menuWidgetContainer.php
widgets/default_menu/include/template/admin.tmpl.html
widgets/default_menu/include/template/index_bootstrap.tmpl.html
widgets/default_menu/include/template/index_bootstrap_nav.tmpl.html [new file with mode: 0644]

index ab5d4db..61bad57 100644 (file)
@@ -48,7 +48,7 @@ INSERT INTO _widgets
 DELETE FROM _widgets WHERE wd_id = 'default_menu';\r
 INSERT INTO _widgets\r
 (wd_id,          wd_name,              wd_type, wd_type_option, wd_category_id, wd_template_type, wd_version, wd_required_version, wd_author,      wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib, wd_add_script_lib_a,                         wd_has_admin, wd_use_instance_def, wd_initialized, wd_cache_type, wd_view_control_type, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
-('default_menu', 'デフォルトメニュー', 'menu',  'nav',          'menu',         'bootstrap',      '3.1.0',   '2.8.15',        'Naoki Hirata', 'Magic3.org', 'GPL',      10,                '複数のメニューが作成できる多階層のメニューです。「user3」ポジションに配置するとナビゲーションメニューが表示できます。', '', 'jquery-ui.tabs', true,  true,              true, 2,          1, '2014-05-04', now(),         now());\r
+('default_menu', 'デフォルトメニュー', 'menu',  'nav',          'menu',         'bootstrap',      '3.1.1',   '2.8.15',        'Naoki Hirata', 'Magic3.org', 'GPL',      10,                '複数のメニューが作成できる多階層のメニューです。「user3」ポジションに配置するとナビゲーションメニューが表示できます。', '', 'jquery-ui.tabs', true,  true,              true, 2,          1, '2014-05-11', now(),         now());\r
 DELETE FROM _widgets WHERE wd_id = 'accordion_menu';\r
 INSERT INTO _widgets\r
 (wd_id,            wd_name,                  wd_type, wd_category_id, wd_version, wd_author,      wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib, wd_add_script_lib_a,                         wd_has_admin, wd_use_instance_def, wd_initialized, wd_cache_type, wd_view_control_type, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
index 8d0672d..0444465 100644 (file)
@@ -19,6 +19,7 @@ require_once($gEnvManager->getCurrentWidgetDbPath() . '/default_menuDb.php');
 class default_menuWidgetContainer extends BaseWidgetContainer
 {
        private $db;                    // DB接続オブジェクト
+       private $targetObj;             // 設定オブジェクト
        private $langId;                // 現在の言語
        private $paramObj;              // 定義取得用
        private $cssFilePath = array();                 // CSSファイル
@@ -42,6 +43,13 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                
                // DBオブジェクト作成
                $this->db = new default_menuDb();
+               
+               // 定義ID取得
+               $configId = $this->gEnv->getCurrentWidgetConfigId();
+               if (empty($configId)) $configId = self::DEFAULT_CONFIG_ID;
+               
+               // パラメータオブジェクトを取得
+               $this->targetObj = $this->getWidgetParamObjByConfigId($configId);
        }
        /**
         * テンプレートファイルを設定
@@ -58,13 +66,24 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                $this->renderType = 'JOOMLA_NEW';               // 描画出力タイプ
                $this->templateType = $this->gEnv->getCurrentTemplateType();
                $isNav = $this->isNavigationMenuStyle();                // ナビゲーションメニュータイプかどうか
+               $useVerticalMenu        = 0;// 縦型メニューデザインを使用するかどうか
+               if (!empty($this->targetObj) && !empty($this->targetObj->useVerticalMenu)) $useVerticalMenu = 1;
                
+               // 描画タイプを決める
                switch ($this->templateType){
                        case 0:
                                $this->renderType = 'JOOMLA_OLD';
                                break;
                        case 10:
-                               if ($isNav) $this->renderType = 'BOOTSTRAP';
+                               if ($isNav){
+                                       $this->renderType = 'BOOTSTRAP_NAV';            // Boostrapナビゲーションメニュー
+                               } else {
+                                       if ($useVerticalMenu){          // 縦型メニューの場合
+                                               $this->renderType = 'BOOTSTRAP';
+                                       } else {
+                                               $this->renderType = 'JOOMLA_NEW';               // 描画出力タイプ
+                                       }
+                               }
                                break;
                        default:
                                $this->renderType = 'JOOMLA_NEW';               // 描画出力タイプ
@@ -80,10 +99,13 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                        case 'JOOMLA_OLD':
                                $templateFile = 'index_old.tmpl.html';
                                break;
-                       case 'BOOTSTRAP':
+                       case 'BOOTSTRAP_NAV':           // Bootstrapナビゲーションメニュー
                                $this->cssFilePath[] = $this->getUrl($this->gEnv->getCurrentWidgetCssUrl() . self::DEFAULT_BOOTSTRAP_CSS_FILE);         // CSSファイル
+                               $templateFile = 'index_bootstrap_nav.tmpl.html';
+                               break;
+                       case 'BOOTSTRAP':               // Bootstrapメニュー
                                $templateFile = 'index_bootstrap.tmpl.html';
-                               break;                          
+                               break;
                }
                return $templateFile;
        }
@@ -101,12 +123,13 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                $this->langId = $this->gEnv->getCurrentLanguage();
                $this->currentUserLogined = $this->gEnv->isCurrentUserLogined();        // 現在のユーザはログイン中かどうか
                
-               // 定義ID取得
-               $configId = $this->gEnv->getCurrentWidgetConfigId();
-               if (empty($configId)) $configId = self::DEFAULT_CONFIG_ID;
-               
-               // パラメータオブジェクトを取得
-               $targetObj = $this->getWidgetParamObjByConfigId($configId);
+//             // 定義ID取得
+//             $configId = $this->gEnv->getCurrentWidgetConfigId();
+//             if (empty($configId)) $configId = self::DEFAULT_CONFIG_ID;
+//             
+//             // パラメータオブジェクトを取得
+//             $targetObj = $this->getWidgetParamObjByConfigId($configId);
+               $targetObj = $this->targetObj;
                if (empty($targetObj)){         // 定義データが取得できないとき
                        // 出力抑止
                        $this->cancelParse();
@@ -140,7 +163,7 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                        $this->gEnv->setJoomlaMenuData($this->menuData);
                        
                        // Bootstrap用のデータを埋め込む
-                       if ($this->renderType == 'BOOTSTRAP'){
+                       if ($this->renderType == 'BOOTSTRAP_NAV'){
                                $this->tmpl->addVar("_widget", "site_url", $this->convertUrlToHtmlEntity($this->gEnv->getRootUrl() . '/'));
                                $this->tmpl->addVar("_widget", "sitename", $this->convertToDispString($this->gEnv->getSiteName()));
 
@@ -331,7 +354,7 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                                                        array_unshift($classArray, 'parent');
                                                        
                                                        // ##### タグ作成 #####
-                                                       if ($this->renderType == 'BOOTSTRAP'){// Bootstrapタイプのとき
+                                                       if ($this->renderType == 'BOOTSTRAP_NAV'){// Bootstrapナビゲーションメニューのとき
                                                                //$classArray[] = 'dropdown';
                                                                $dropDownCaret = '';
                                                                if ($level == 0){
@@ -373,7 +396,7 @@ class default_menuWidgetContainer extends BaseWidgetContainer
                                                $this->menuTree[] = $menuItem;
                                                
                                                // ##### タグ作成 #####
-                                               if ($this->renderType == 'BOOTSTRAP'){// Bootstrapタイプのとき
+                                               if ($this->renderType == 'BOOTSTRAP_NAV' || $this->renderType == 'BOOTSTRAP'){// Bootstrapメニューのとき
                                                        $treeHtml .= '<li class="divider"></li>' . M3_NL;
                                                } else {
                                                        $treeHtml .= '<li><span class="separator">' . $title . '</span></li>' . M3_NL;
index e7d2480..c72484f 100644 (file)
@@ -118,10 +118,7 @@ $(function(){
            <td class="table-headside"><span {_HELP_MENU_DESIGN}>デザイン</span></td>\r
            <td colspan="3">\r
                <div class="checkbox"><label><input type="checkbox" id="is_hier" name="is_hier" {IS_HIER} {IS_HIER_DISABLED} />階層化あり</label></div>\r
-               <fieldset>\r
-               <legend>Artisteer型テンプレート用</legend>\r
                <div class="checkbox"><label><input type="checkbox" name="item_vertical_menu" {VERTICAL_MENU} />縦型メニュー</label></div>\r
-               </fieldset>\r
                <fieldset>\r
                <legend>Bootstrap型テンプレート用</legend>\r
                <div class="checkbox"><label><input type="checkbox" name="item_show_sitename" {SHOW_SITENAME_CHECKED} />サイト名を常に表示</label></div>\r
index b43cf7a..718b24f 100644 (file)
  * @link       http://www.magic3.org
  */
 <patTemplate:tmpl name="_widget">
-<nav class="navbar navbar-default navbar-fixed-top{NAVBAR_OPTION_CLASS}" role="navigation">
-    <div class="navbar-header">
-        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#default_menu-navbar-collapse">
-            <span class="sr-only">Toggle navigation</span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-        </button>
-        <a class="navbar-brand{SITENAME_OPTION_CLASS}" href="{SITE_URL}">{SITENAME}</a>
-    </div>
-    <div class="collapse navbar-collapse" id="default_menu-navbar-collapse">
-        <ul class="nav navbar-nav">{MENU_HTML}</ul>
-<patTemplate:tmpl name="show_search" visibility="hidden">
-        <div class="nav navbar-nav navbar-right col-sm-4">
-        <form class="navbar-form" role="search">
-        <div class="input-group">
-            <input type="hidden" name="task" value="search">
-            <input type="hidden" name="option" value="com_search">
-            <input type="text" class="form-control" placeholder="キーワード検索" name="searchword">
-            <div class="input-group-btn">
-                <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
-            </div>
-        </div>
-        </form>
-               </div>
-</patTemplate:tmpl>
-    </div>
-</nav>
+<ul class="nav nav-pills nav-stacked">{MENU_HTML}</ul>
 </patTemplate:tmpl>
diff --git a/widgets/default_menu/include/template/index_bootstrap_nav.tmpl.html b/widgets/default_menu/include/template/index_bootstrap_nav.tmpl.html
new file mode 100644 (file)
index 0000000..b43cf7a
--- /dev/null
@@ -0,0 +1,42 @@
+/**
+ * 表示データ作成用テンプレート(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">
+<nav class="navbar navbar-default navbar-fixed-top{NAVBAR_OPTION_CLASS}" role="navigation">
+    <div class="navbar-header">
+        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#default_menu-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+        </button>
+        <a class="navbar-brand{SITENAME_OPTION_CLASS}" href="{SITE_URL}">{SITENAME}</a>
+    </div>
+    <div class="collapse navbar-collapse" id="default_menu-navbar-collapse">
+        <ul class="nav navbar-nav">{MENU_HTML}</ul>
+<patTemplate:tmpl name="show_search" visibility="hidden">
+        <div class="nav navbar-nav navbar-right col-sm-4">
+        <form class="navbar-form" role="search">
+        <div class="input-group">
+            <input type="hidden" name="task" value="search">
+            <input type="hidden" name="option" value="com_search">
+            <input type="text" class="form-control" placeholder="キーワード検索" name="searchword">
+            <div class="input-group-btn">
+                <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
+            </div>
+        </div>
+        </form>
+               </div>
+</patTemplate:tmpl>
+    </div>
+</nav>
+</patTemplate:tmpl>