Bladeren bron

#3688 - Studio -> Menu builder. Visibility depends on lauout column.

RomanL 4 jaren geleden
bovenliggende
commit
b9eea72d0a

+ 1 - 0
install/sql/system.sql

@@ -4377,6 +4377,7 @@ CREATE TABLE IF NOT EXISTS `sys_menu_items` (
   `visibility_custom` text NOT NULL,
   `hidden_on` varchar(255) NOT NULL DEFAULT '',
   `hidden_on_pt` int(11) NOT NULL DEFAULT '0',
+  `hidden_on_col` int(11) NOT NULL DEFAULT '0',    
   `primary` tinyint(4) NOT NULL DEFAULT '0',
   `collapsed` tinyint(4) NOT NULL DEFAULT '0',
   `active` tinyint(4) NOT NULL DEFAULT '1',

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

@@ -1253,7 +1253,12 @@
         <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_nav_txt_block_hidden_on_mobile"><![CDATA[mobile app]]></string>
-        <string name="_adm_nav_txt_block_hidden_on_pt"><![CDATA[Hidden on page type]]></string>
+        <string name="_adm_nav_txt_block_hidden_on_pt"><![CDATA[Hidden for page type]]></string>
+        <string name="_adm_nav_txt_block_hidden_on_col"><![CDATA[Hidden for column]]></string>
+        <string name="_adm_nav_txt_block_hidden_on_col_thin"><![CDATA[Thin]]></string>
+        <string name="_adm_nav_txt_block_hidden_on_col_half"><![CDATA[Half]]></string>
+        <string name="_adm_nav_txt_block_hidden_on_col_wide"><![CDATA[Wide]]></string>
+        <string name="_adm_nav_txt_block_hidden_on_col_full"><![CDATA[Full]]></string>
         <string name="_adm_page_cpt_audit"><![CDATA[Audit]]></string>
         <string name="_adm_page_cpt_badges"><![CDATA[Badges]]></string>
 	<string name="_adm_page_cpt_builder_forms"><![CDATA[Forms]]></string>

+ 13 - 0
plugins_public/tailwind/css/tailwind.css

@@ -356,6 +356,19 @@
         min-width: 1rem;
     }
 
+    /* Common elements: Menu visibility */
+    .bx-layout-column-thin .bx-def-thin-col-hide{
+        @apply hidden;
+    }
+    .bx-layout-column-half .bx-def-half-col-hide{
+        @apply hidden;
+    }
+    .bx-layout-column-wide .bx-def-wide-col-hide{
+        @apply hidden;
+    }
+    .bx-layout-column-full .bx-def-full-col-hide{
+        @apply hidden;
+    }
     /* Common elements: Buttons */
     .bx-btn {
         @apply relative inline-flex justify-center items-center px-4 py-2 border border-gray-300 dark:border-gray-700 text-sm font-medium text-gray-700 dark:text-gray-300 dark:hover:text-white hover:text-gray-800 whitespace-nowrap bg-white dark:bg-gray-800 dark:hover:bg-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded-md shadow-sm hover:shadow-md cursor-pointer;

File diff suppressed because it is too large
+ 0 - 0
plugins_public/tailwind/css/tailwind.min.css


+ 2 - 0
studio/classes/BxDolStudioNavigationQuery.php

@@ -289,6 +289,7 @@ class BxDolStudioNavigationQuery extends BxDolDb
                 `tmi`.`editable` AS `editable`,
                 `tmi`.`hidden_on` AS `hidden_on`,
                 `tmi`.`hidden_on_pt` AS `hidden_on_pt`,
+                `tmi`.`hidden_on_col` AS `hidden_on_col`,
                 `tmi`.`order` AS `order`" . $sSelectClause . "
             FROM `sys_menu_items` AS `tmi` " . $sJoinClause . "
             WHERE 1 " . $sWhereClause . " " . $sGroupClause . " " . $sOrderClause . " " . $sLimitClause;
@@ -340,6 +341,7 @@ class BxDolStudioNavigationQuery extends BxDolDb
     {
         $sSql = "UPDATE `sys_menu_items` SET `" . implode("`=?, `", array_keys($aFields)) . "`=?  WHERE `id`=?";
         $sSql = call_user_func_array(array($this, 'prepare'), array_merge(array($sSql), array_values($aFields), array($iId)));
+        echo $sSql;
         return $this->query($sSql);
     }
 

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

@@ -730,6 +730,17 @@ class BxBaseStudioNavigationItems extends BxDolStudioNavigationItems
                         'pass' => 'Set',
                     )
                 ),
+                'hidden_on_col' => array(
+                    'type' => 'select_multiple',
+                    'name' => 'hidden_on_col',
+                    'caption' => _t('_adm_nav_txt_block_hidden_on_col'),
+                    'info' => '',
+                    'value' => isset($aItem['hidden_on_col']) ? (int)$aItem['hidden_on_col'] : '',
+                    'values' => array(),
+                    'db' => array (
+                        'pass' => 'Set',
+                    )
+                ),
                 'icon' => array(
                     'type' => 'textarea',
                     'name' => 'icon',
@@ -830,6 +841,11 @@ class BxBaseStudioNavigationItems extends BxDolStudioNavigationItems
 
             $aForm['inputs']['hidden_on_pt']['values'][$iPageType - 1] = _t($aPageType['title']);
         }
+        
+        $aForm['inputs']['hidden_on_col']['values'][1] = _t('_adm_nav_txt_block_hidden_on_col_thin');
+        $aForm['inputs']['hidden_on_col']['values'][2] = _t('_adm_nav_txt_block_hidden_on_col_half');
+        $aForm['inputs']['hidden_on_col']['values'][3] = _t('_adm_nav_txt_block_hidden_on_col_wide');
+        $aForm['inputs']['hidden_on_col']['values'][4] = _t('_adm_nav_txt_block_hidden_on_col_full');
 
         switch($sAction) {
             case 'add':

+ 6 - 3
template/css/menu.css

@@ -695,14 +695,13 @@ ul.bx-menu-btns-icon-hor li:last-child .bx-btn {
 
 /* --------------- custom menu */
 
-.bx-menu-custom > li > span,
+.bx-menu-custom > li > span:not(.bx-menu-meta-item-ex),
 .bx-menu-custom > li > a {
     display:inline-block;
 }
 
 .bx-menu-custom.bx-menu-custom-hor > li > span {
-    margin-right: 20px;
-    margin-right: 1.25rem;
+    margin-right: 1rem;
 }
 
 
@@ -1004,3 +1003,7 @@ ul.bx-menu-btns-icon-hor li:last-child .bx-btn {
 .bx-popup .bx-menu-ver.bx-menu-object-sys_switch_template li a div > span {
     margin-left: 0;
 }
+
+.bx-menu-meta-item-ex A{
+    display: flex !important;
+}

+ 35 - 13
template/scripts/BxBaseMenu.php

@@ -150,13 +150,6 @@ class BxBaseMenu extends BxDolMenu
 
     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',
-            pow(2, BX_DB_HIDDEN_MOBILE - 1) => 'bx-def-mobile-app-hide'
-        );
-
         if (isset($a['active']) && !$a['active'])
             return false;
 
@@ -196,12 +189,9 @@ class BxBaseMenu extends BxDolMenu
 
         $a['class_add'] = $this->_isSelected($a) ? 'bx-menu-tab-active' : '';
 
-        $sHiddenOnCssClasses = '';
-        if(!empty($a['hidden_on']))
-            foreach($aHiddenOn as $iHiddenOn => $sClass)
-                if((int)$a['hidden_on'] & $iHiddenOn)
-                    $sHiddenOnCssClasses .= ' ' . $sClass;
-        $a['class_add'] .=  $sHiddenOnCssClasses;
+        
+        
+        $a['class_add'] .= $this->_getMenuVisibility($a);
 
         $a['link'] = isset($a['link']) ? $this->_oPermalinks->permalink($a['link']) : 'javascript:void(0);';
         $a['title_attr'] = bx_html_attribute(strip_tags($a['title']));
@@ -274,6 +264,38 @@ class BxBaseMenu extends BxDolMenu
         return $a;
     }
 
+    protected function _getMenuVisibility($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',
+            pow(2, BX_DB_HIDDEN_MOBILE - 1) => 'bx-def-mobile-app-hide'
+        );
+        
+        $aHiddenOnCol = array(
+            pow(2, 1) => 'bx-def-thin-col-hide',
+            pow(2, 2) => 'bx-def-half-col-hide',
+            pow(2, 3) => 'bx-def-wide-col-hide',
+            pow(2, 4) => 'bx-def-full-col-hide'
+        );
+        
+        $sHiddenOnCssClasses = '';
+        if(!empty($a['hidden_on']))
+            foreach($aHiddenOn as $iHiddenOn => $sClass)
+                if((int)$a['hidden_on'] & $iHiddenOn)
+                    $sHiddenOnCssClasses .= ' ' . $sClass;
+       
+        
+        if(!empty($a['hidden_on_col'])){    
+            foreach($aHiddenOnCol as $iHiddenOn => $sClass)
+                if((int)$a['hidden_on_col'] & $iHiddenOn)
+                    $sHiddenOnCssClasses .= ' ' . $sClass;
+        }
+        
+        return $sHiddenOnCssClasses;
+    }
+    
     protected function _getMenuIcon ($a)
     {
         return BxTemplFunctions::getInstanceWithTemplate($this->_oTemplate)->getIcon(!empty($a['icon']) ? $a['icon'] : '');

+ 2 - 0
template/scripts/BxBaseMenuCustom.php

@@ -101,6 +101,8 @@ class BxBaseMenuCustom extends BxTemplMenuMoreAuto
         if($this->_isSelected($aItem))
             $sClass .= ' bx-menu-tab-active';
 
+        $sClass .= $this->_getMenuVisibility($aItem);
+        
         return array(
             'name' => $aItem['name'],
             'class' => $sClass,

Some files were not shown because too many files changed in this diff