Просмотр исходного кода

Ticket #4677 - Wiki page updates: Mobile view with Contents.

AntonLV 2 лет назад
Родитель
Сommit
418b79f48f

+ 13 - 0
inc/js/functions.js

@@ -712,6 +712,19 @@ function bx_menu_show_more_less(oLink, sMenu, sSelectorParent) {
     });
 }
 
+function bx_menu_toggle_contents(oLink, sSelectorParent) {
+    if(!sSelectorParent)
+        sSelectorParent = '.bx-menu-contents';
+
+    var sClass = 'bx-m-collapsed';
+    var oParent = $(oLink).parents(sSelectorParent + ':first');
+
+    oParent.toggleClass(sClass);
+    oParent.siblings('.bx-menu-content').toggle();
+
+    return false;
+}
+
 function bx_menu_toggle(oLink, sMenu, sMenuItem, sSelectorParent) {
     if(!sSelectorParent)
         sSelectorParent = 'li';

+ 4 - 0
modules/boonex/artificer/data/template/system/css/menu.css

@@ -184,18 +184,22 @@ div.bx-popup-menu-main.sys-add-content ul {
 }
 
 /*--- Profile Followings Menu ---*/
+.bx-menu-contents .bx-menu-show,
 .bx-menu-ver.bx-menu-multilevel li .bx-menu-show,
 .bx-menu-ver.bx-menu-object-sys_profile_followings li .bx-menu-show {
     display: none;
 }
+.bx-menu-contents .bx-menu-hide,
 .bx-menu-ver.bx-menu-multilevel li .bx-menu-hide, 
 .bx-menu-ver.bx-menu-object-sys_profile_followings li .bx-menu-hide {
     display: inline;
 }
+.bx-menu-contents.bx-m-collapsed .bx-menu-show,
 .bx-menu-ver.bx-menu-multilevel li.bx-mi-collapsed .bx-menu-show,
 .bx-menu-ver.bx-menu-object-sys_profile_followings li.bx-mi-collapsed .bx-menu-show {
     display: inline;
 }
+.bx-menu-contents.bx-m-collapsed .bx-menu-hide,
 .bx-menu-ver.bx-menu-multilevel li.bx-mi-collapsed .bx-menu-hide,
 .bx-menu-ver.bx-menu-object-sys_profile_followings li.bx-mi-collapsed .bx-menu-hide {
     display: none;

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -26,6 +26,7 @@
 	<string name="_Can not delete comments with replies"><![CDATA[Cannot delete comments with replies]]></string>
 	<string name="_Cancel"><![CDATA[Cancel]]></string>
 	<string name="_Content"><![CDATA[Content]]></string>
+        <string name="_Contents"><![CDATA[Contents]]></string>
 	<string name="_Count"><![CDATA[Count]]></string>
 	<string name="_DELETE_SUCCESS"><![CDATA[You account was successfully deleted]]></string>
 	<string name="_DELETE_TEXT"><![CDATA[All your content will be deleted. Are you sure you want to delete your account?]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -24,6 +24,7 @@
 	<string name="_Can not delete comments with replies"><![CDATA[Невозможно удалить комментарии с ответами]]></string>
 	<string name="_Cancel"><![CDATA[Отменить]]></string>
 	<string name="_Content"><![CDATA[Содержимое]]></string>
+        <string name="_Contents"><![CDATA[Содержание]]></string>
 	<string name="_Count"><![CDATA[Счётчик]]></string>
 	<string name="_DELETE_SUCCESS"><![CDATA[Ваш аккаунт был удачно удалён]]></string>
 	<string name="_DELETE_TEXT"><![CDATA[Всё Ваше содержимое будет удалено. Вы уверены, что ходите удалить свой аккаунт?]]></string>

+ 4 - 0
template/css/menu.css

@@ -1014,18 +1014,22 @@ ul.bx-menu-btns-icon-hor li:last-child .bx-btn {
     font-size: 1.0rem;
 }
 
+.bx-menu-contents .bx-menu-show,
 .bx-menu-ver.bx-menu-multilevel li .bx-menu-show,
 .bx-menu-ver.bx-menu-object-sys_profile_followings li .bx-menu-show {
     display: none;
 }
+.bx-menu-contents .bx-menu-hide,
 .bx-menu-ver.bx-menu-multilevel li .bx-menu-hide, 
 .bx-menu-ver.bx-menu-object-sys_profile_followings li .bx-menu-hide {
     display: inline;
 }
+.bx-menu-contents.bx-m-collapsed .bx-menu-show,
 .bx-menu-ver.bx-menu-multilevel li.bx-mi-collapsed .bx-menu-show,
 .bx-menu-ver.bx-menu-object-sys_profile_followings li.bx-mi-collapsed .bx-menu-show {
     display: inline;
 }
+.bx-menu-contents.bx-m-collapsed .bx-menu-hide,
 .bx-menu-ver.bx-menu-multilevel li.bx-mi-collapsed .bx-menu-hide,
 .bx-menu-ver.bx-menu-object-sys_profile_followings li.bx-mi-collapsed .bx-menu-hide {
     display: none;

+ 39 - 26
template/menu_multilevel.html

@@ -1,27 +1,40 @@
-<ul class="bx-menu-ver bx-menu-multilevel bx-menu-object-__object__ space-y-2">
-    <bx_repeat:menu_items>
-        <li class="bx-menu-item bx-menu-item-__name__ __class_add__">
-            <div class="bx-menu-item-cnt">
-                <div class="bx-menu-item-link bx-stl-mil-wo-gaps">
-                    <a class="bx-stl-mil-gaps flex flex-auto items-center" href="__link__" <bx_if:onclick>onclick="__onclick__"</bx_if:onclick> __attrs__>
-                        <span class="bx-menu-item-icon bx-stl-mii flex-none group-hover:text-gray-700 dark:group-hover:text-gray-300">
-                            <bx_include_auto:menu_icon.html />
-                        </span>
-                        <span class="bx-menu-item-title bx-stl-mit flex-1 uppercase" sidebar-toggle-item>__title__</span>
-                        <bx_if:show_toggler>
-                            <span class="bx-menu-collapse flex-none pl-2" sidebar-toggle-item>
-                                <i class="sys-icon chevron-up bx-menu-hide"></i>
-                                <i class="sys-icon chevron-down bx-menu-show"></i>
-                            </span>
-                        </bx_if:show_toggler>
-                    </a>
-                </div>
-                <bx_if:show_subitems>
-                    <div class="bx-menu-item-subitems pt-2">
-                        <ul class="bx-menu-item-subitems bx-menu-pf-subitems bx-menu-ver space-y-2">__subitems__</ul>
+<div class="bx-menu-multilevel-wrp">
+    <div class="bx-menu-contents border rounded-md md:hidden">
+        <a class="bx-stl-mil-gaps flex flex-auto items-center" href="javascript:void(0)" onclick="javascript:bx_menu_toggle_contents(this)">
+            <span class="bx-menu-item-title bx-stl-mit flex-1 uppercase" sidebar-toggle-item>__menu_item_selected__</span>
+            <span class="bx-menu-collapse flex-none pl-2" sidebar-toggle-item>
+                <i class="sys-icon chevron-up bx-menu-show"></i>
+                <i class="sys-icon chevron-down bx-menu-hide"></i>
+            </span>
+        </a>
+    </div>
+    <div class="bx-menu-content hidden md:block">
+        <ul class="bx-menu-ver bx-menu-multilevel bx-menu-object-__object__ space-y-2">
+            <bx_repeat:menu_items>
+                <li class="bx-menu-item bx-menu-item-__name__ __class_add__">
+                    <div class="bx-menu-item-cnt">
+                        <div class="bx-menu-item-link bx-stl-mil-wo-gaps">
+                            <a class="bx-stl-mil-gaps flex flex-auto items-center" href="__link__" <bx_if:onclick>onclick="__onclick__"</bx_if:onclick> __attrs__>
+                                <span class="bx-menu-item-icon bx-stl-mii flex-none group-hover:text-gray-700 dark:group-hover:text-gray-300">
+                                    <bx_include_auto:menu_icon.html />
+                                </span>
+                                <span class="bx-menu-item-title bx-stl-mit flex-1 uppercase" sidebar-toggle-item>__title__</span>
+                                <bx_if:show_toggler>
+                                    <span class="bx-menu-collapse flex-none pl-2" sidebar-toggle-item>
+                                        <i class="sys-icon chevron-up bx-menu-hide"></i>
+                                        <i class="sys-icon chevron-down bx-menu-show"></i>
+                                    </span>
+                                </bx_if:show_toggler>
+                            </a>
+                        </div>
+                        <bx_if:show_subitems>
+                            <div class="bx-menu-item-subitems pt-2">
+                                <ul class="bx-menu-item-subitems bx-menu-pf-subitems bx-menu-ver space-y-2">__subitems__</ul>
+                            </div>
+                        </bx_if:show_subitems>
                     </div>
-                </bx_if:show_subitems>
-            </div>
-        </li>
-    </bx_repeat:menu_items>
-</ul>
+                </li>
+            </bx_repeat:menu_items>
+        </ul>
+    </div>
+</div>

+ 16 - 5
template/scripts/BxBaseMenu.php

@@ -20,6 +20,8 @@ class BxBaseMenu extends BxDolMenu
     protected $_aOptionalParams = array('target' => '', 'onclick' => '');
     protected $_bDisplayAddons = false;
 
+    protected $_aSelected; // Selected menu item.
+
     public function __construct ($aObject, $oTemplate)
     {
         parent::__construct ($aObject);
@@ -30,6 +32,7 @@ class BxBaseMenu extends BxDolMenu
             $this->_oTemplate = BxDolTemplate::getInstance();
 
         $this->_iPageType = false;
+        $this->_aSelected = [];
     }
 
     public function getDisplayAddons()
@@ -114,10 +117,14 @@ class BxBaseMenu extends BxDolMenu
      */
     protected function _getTemplateVars ()
     {
-        return array (
+        $aMenuItems = $this->getMenuItems();
+        $sMenuItemSelected = _t($aMenuItems && $this->_aSelected && !empty($this->_aSelected['title']) ? $this->_aSelected['title'] : '_Contents');
+
+        return [
             'object' => $this->_sObject,
-            'bx_repeat:menu_items' => $this->getMenuItems (),
-        );
+            'menu_item_selected' => $sMenuItemSelected,
+            'bx_repeat:menu_items' => $aMenuItems,
+        ];
     }
 
     /**
@@ -196,6 +203,10 @@ class BxBaseMenu extends BxDolMenu
             return $aResult;
         }
 
+        $bIsSelected = $this->_isSelected($a);
+        if($bIsSelected)
+            $this->_aSelected = $a;
+
         $a['object'] = $this->_sObject;
 
         $a['title'] = _t($a['title']);
@@ -226,7 +237,7 @@ class BxBaseMenu extends BxDolMenu
 
         list ($sIcon, $sIconUrl, $sIconA, $sIconHtml) = $this->_getMenuIcon($a);
 
-        $a['class_add'] = $this->_isSelected($a) ? 'bx-menu-tab-active' : '';
+        $a['class_add'] = $bIsSelected ? 'bx-menu-tab-active' : '';
         $a['class_add'] .= $this->_getVisibilityClass($a);
         $a['class_link'] = '';
 
@@ -240,7 +251,7 @@ class BxBaseMenu extends BxDolMenu
             $this->_aHx['get'] = $a['link'];
             $a['attrs'] .= bx_get_htmx_attrs($this->_aHx, $this->_mHxPreload);
 
-            if(!bx_is_htmx_request() && !$this->_isSelected($a))
+            if(!bx_is_htmx_request() && !$bIsSelected)
                 $a['attrs_wrp'] .= bx_get_htmx_attrs([
                     'get' => $a['link'],
                     'trigger' => 'load',