RomanL 8 лет назад
Родитель
Сommit
f974e29ba3

+ 1 - 0
install/sql/system.sql

@@ -3393,6 +3393,7 @@ CREATE TABLE IF NOT EXISTS `sys_menu_items` (
   `copyable` tinyint(4) NOT NULL DEFAULT '1',
   `copyable` tinyint(4) NOT NULL DEFAULT '1',
   `editable` tinyint(4) NOT NULL DEFAULT '1',
   `editable` tinyint(4) NOT NULL DEFAULT '1',
   `order` int(11) NOT NULL,
   `order` int(11) NOT NULL,
+  `hidden_on` varchar(255) NOT NULL DEFAULT '',
   PRIMARY KEY (`id`)
   PRIMARY KEY (`id`)
 );
 );
 
 

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

@@ -1061,6 +1061,10 @@
 	<string name="_adm_nav_txt_sets_gl_module"><![CDATA[Module]]></string>
 	<string name="_adm_nav_txt_sets_gl_module"><![CDATA[Module]]></string>
 	<string name="_adm_nav_txt_sets_gl_title"><![CDATA[System Name]]></string>
 	<string name="_adm_nav_txt_sets_gl_title"><![CDATA[System Name]]></string>
 	<string name="_adm_nav_txt_sets_title"><![CDATA[System Name]]></string>
 	<string name="_adm_nav_txt_sets_title"><![CDATA[System Name]]></string>
+  <string name="_adm_nav_txt_block_hidden_on"><![CDATA[Hidden on]]></string>
+  <string name="_adm_nav_txt_block_hidden_on_phone"><![CDATA[phone]]></string>
+  <string name="_adm_nav_txt_block_hidden_on_tablet"><![CDATA[tablet]]></string>
+  <string name="_adm_nav_txt_block_hidden_on_desktop"><![CDATA[desktop]]></string>
 	<string name="_adm_page_cpt_builder_forms"><![CDATA[Forms]]></string>
 	<string name="_adm_page_cpt_builder_forms"><![CDATA[Forms]]></string>
 	<string name="_adm_page_cpt_builder_menus"><![CDATA[Navigation]]></string>
 	<string name="_adm_page_cpt_builder_menus"><![CDATA[Navigation]]></string>
 	<string name="_adm_page_cpt_builder_mobile"><![CDATA[Mobile Builder]]></string>
 	<string name="_adm_page_cpt_builder_mobile"><![CDATA[Mobile Builder]]></string>

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

@@ -1059,6 +1059,10 @@
 	<string name="_adm_nav_txt_sets_gl_module"><![CDATA[Модуль]]></string>
 	<string name="_adm_nav_txt_sets_gl_module"><![CDATA[Модуль]]></string>
 	<string name="_adm_nav_txt_sets_gl_title"><![CDATA[Системное имя]]></string>
 	<string name="_adm_nav_txt_sets_gl_title"><![CDATA[Системное имя]]></string>
 	<string name="_adm_nav_txt_sets_title"><![CDATA[Системное имя]]></string>
 	<string name="_adm_nav_txt_sets_title"><![CDATA[Системное имя]]></string>
+  <string name="_adm_nav_txt_block_hidden_on"><![CDATA[Скрыть на]]></string>
+  <string name="_adm_nav_txt_block_hidden_on_phone"><![CDATA[телефоне]]></string>
+  <string name="_adm_nav_txt_block_hidden_on_tablet"><![CDATA[планшете]]></string>
+  <string name="_adm_nav_txt_block_hidden_on_desktop"><![CDATA[настольном компьютере]]></string>
 	<string name="_adm_page_cpt_builder_forms"><![CDATA[Формы]]></string>
 	<string name="_adm_page_cpt_builder_forms"><![CDATA[Формы]]></string>
 	<string name="_adm_page_cpt_builder_menus"><![CDATA[Навигация]]></string>
 	<string name="_adm_page_cpt_builder_menus"><![CDATA[Навигация]]></string>
 	<string name="_adm_page_cpt_builder_mobile"><![CDATA[Мобильный построитель]]></string>
 	<string name="_adm_page_cpt_builder_mobile"><![CDATA[Мобильный построитель]]></string>

+ 1 - 0
studio/classes/BxDolStudioNavigationQuery.php

@@ -267,6 +267,7 @@ class BxDolStudioNavigationQuery extends BxDolDb
                 `tmi`.`active` AS `active`,
                 `tmi`.`active` AS `active`,
                 `tmi`.`copyable` AS `copyable`,
                 `tmi`.`copyable` AS `copyable`,
                 `tmi`.`editable` AS `editable`,
                 `tmi`.`editable` AS `editable`,
+                `tmi`.`hidden_on` AS `hidden_on`,
                 `tmi`.`order` AS `order`" . $sSelectClause . "
                 `tmi`.`order` AS `order`" . $sSelectClause . "
             FROM `sys_menu_items` AS `tmi` " . $sJoinClause . "
             FROM `sys_menu_items` AS `tmi` " . $sJoinClause . "
             WHERE 1 " . $sWhereClause . " " . $sGroupClause . " " . $sOrderClause . " " . $sLimitClause;
             WHERE 1 " . $sWhereClause . " " . $sGroupClause . " " . $sOrderClause . " " . $sLimitClause;

+ 15 - 0
studio/template/scripts/BxBaseStudioNavigationItems.php

@@ -661,6 +661,21 @@ class BxBaseStudioNavigationItems extends BxDolStudioNavigationItems
                         'error' => _t('_adm_nav_err_items_onclick'),
                         'error' => _t('_adm_nav_err_items_onclick'),
                     ),
                     ),
                 ),
                 ),
+                'hidden_on' => array(
+                    'type' => 'select_multiple',
+                    'name' => 'hidden_on',
+                    'caption' => _t('_adm_nav_txt_block_hidden_on'),
+                    'info' => '',
+                	'value' => (int)$aItem['hidden_on'],
+                    'values' => array(
+                		BX_DB_HIDDEN_PHONE => _t('_adm_nav_txt_block_hidden_on_phone'),
+                		BX_DB_HIDDEN_TABLET => _t('_adm_nav_txt_block_hidden_on_tablet'),
+                		BX_DB_HIDDEN_DESKTOP => _t('_adm_nav_txt_block_hidden_on_desktop')
+                	),
+                	'db' => array (
+                        'pass' => 'Set',
+                    )
+				),
                 'icon' => array(
                 'icon' => array(
                     'type' => 'text',
                     'type' => 'text',
                     'name' => 'icon',
                     'name' => 'icon',

+ 1 - 1
template/css/media-desktop.css

@@ -5,7 +5,7 @@ html {
 }
 }
 
 
 .bx-def-media-desktop-hide {
 .bx-def-media-desktop-hide {
-    display:none;
+    display:none !important;
 }
 }
 .bx-def-media-desktop-show-block {
 .bx-def-media-desktop-show-block {
     display:block;
     display:block;

+ 1 - 1
template/css/media-phone.css

@@ -5,7 +5,7 @@ html {
 }
 }
 
 
 .bx-def-media-phone-hide {
 .bx-def-media-phone-hide {
-    display:none;
+    display:none !important;
 }
 }
 .bx-def-media-phone-show-block {
 .bx-def-media-phone-show-block {
     display:block;
     display:block;

+ 1 - 1
template/css/media-tablet.css

@@ -5,7 +5,7 @@ html {
 }
 }
 
 
 .bx-def-media-tablet-hide {
 .bx-def-media-tablet-hide {
-    display:none;
+    display:none !important;
 }
 }
 .bx-def-media-tablet-show-block {
 .bx-def-media-tablet-show-block {
     display:block;
     display:block;

+ 14 - 0
template/scripts/BxBaseMenu.php

@@ -90,6 +90,12 @@ class BxBaseMenu extends BxDolMenu
 
 
 	protected function _getMenuItem ($a)
 	protected function _getMenuItem ($a)
 	{
 	{
+        $aHiddenOn = array(
+			pow(2, BX_DB_HIDDEN_PHONE - 1) => 'bx-def-media-phone-hide',
+			pow(2, BX_DB_HIDDEN_TABLET - 1) => 'bx-def-media-tablet-hide',
+			pow(2, BX_DB_HIDDEN_DESKTOP - 1) => 'bx-def-media-desktop-hide'
+		);
+        
 		if (isset($a['active']) && !$a['active'])
 		if (isset($a['active']) && !$a['active'])
 			return false;
 			return false;
 
 
@@ -116,6 +122,14 @@ class BxBaseMenu extends BxDolMenu
 		list ($sIcon, $sIconUrl, $sIconA) = $this->_getMenuIcon($a);
 		list ($sIcon, $sIconUrl, $sIconA) = $this->_getMenuIcon($a);
 
 
 		$a['class_add'] = $this->_isSelected($a) ? 'bx-menu-tab-active' : '';
 		$a['class_add'] = $this->_isSelected($a) ? 'bx-menu-tab-active' : '';
+        $a['class_add'] .= 'hza';
+        
+        $sHiddenOnCssClasses = '';
+        if(!empty($a['hidden_on']))
+            foreach($aHiddenOn as $iHiddenOn => $sClass)
+                if((int)$a['hidden_on'] & $iHiddenOn)
+                    $sHiddenOnCssClasses .= ' ' . $sClass;
+        $a['class_add'] .=  $sHiddenOnCssClasses;
 		$a['link'] = isset($a['link']) ? $this->_oPermalinks->permalink($a['link']) : 'javascript:void(0);';
 		$a['link'] = isset($a['link']) ? $this->_oPermalinks->permalink($a['link']) : 'javascript:void(0);';
 		$a['title_attr'] = bx_html_attribute(strip_tags($a['title']));
 		$a['title_attr'] = bx_html_attribute(strip_tags($a['title']));
 		$a['bx_if:image'] = array (
 		$a['bx_if:image'] = array (