ソースを参照

Ticket #4643 - Add "Persistant" for menus in Nav builder.

AntonLV 2 年 前
親
コミット
d093d668dc

+ 1 - 0
install/sql/system.sql

@@ -4571,6 +4571,7 @@ CREATE TABLE IF NOT EXISTS `sys_objects_menu` (
   `set_name` varchar(64) NOT NULL,
   `module` varchar(32) NOT NULL,
   `template_id` int(11) NOT NULL,
+  `persistent` tinyint(4) NOT NULL DEFAULT '0',
   `deletable` tinyint(4) NOT NULL DEFAULT '1',
   `active` tinyint(4) NOT NULL DEFAULT '0',
   `override_class_name` varchar(255) NOT NULL,

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

@@ -1190,7 +1190,8 @@
 	<string name="_adm_nav_dsc_items_title"><![CDATA[Link name displayed in site menus. Use at least 3 characters.]]></string>
 	<string name="_adm_nav_dsc_items_title_system"><![CDATA[Item name, displayed in Studio only.]]></string>
 	<string name="_adm_nav_dsc_items_visible_for_levels"><![CDATA[Select user levels that can see this menu item]]></string>
-	<string name="_adm_nav_dsc_menus_set_name"><![CDATA[Assign a Set of menu Items]]></string>
+	<string name="_adm_nav_dsc_menus_persistent"><![CDATA[Number of persistent menu items. Applicable for menus with 'Auto More' mechanism only.]]></string>
+        <string name="_adm_nav_dsc_menus_set_name"><![CDATA[Assign a Set of menu Items]]></string>
 	<string name="_adm_nav_dsc_menus_set_title"><![CDATA[Descriptive name displayed in Studio only. Use at least 3 characters.]]></string>
 	<string name="_adm_nav_dsc_menus_style"><![CDATA[Select presentation style - the way this menu will be displayed on site]]></string>
 	<string name="_adm_nav_dsc_menus_title"><![CDATA[Descriptive name displayed in Studio only. Use at least 3 characters.]]></string>
@@ -1264,6 +1265,7 @@
 	<string name="_adm_nav_txt_menus_gl_set_title"><![CDATA[Set]]></string>
 	<string name="_adm_nav_txt_menus_gl_template_title"><![CDATA[Style]]></string>
 	<string name="_adm_nav_txt_menus_gl_title"><![CDATA[System Name]]></string>
+        <string name="_adm_nav_txt_menus_persistent"><![CDATA[Persistent items]]></string>
 	<string name="_adm_nav_txt_menus_set_name"><![CDATA[Set]]></string>
 	<string name="_adm_nav_txt_menus_set_name_new"><![CDATA[Create New]]></string>
 	<string name="_adm_nav_txt_menus_set_name_select"><![CDATA[Select Set...]]></string>

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

@@ -1172,6 +1172,7 @@
 	<string name="_adm_nav_dsc_items_title"><![CDATA[Название ссылки для отображения в меню сайта. Используйте как минимум 3 символа.]]></string>
 	<string name="_adm_nav_dsc_items_title_system"><![CDATA[Имя элемента, отображаемое только в Студии.]]></string>
 	<string name="_adm_nav_dsc_items_visible_for_levels"><![CDATA[Выбрать членства, разрешённые для просмотра элемента данного меню]]></string>
+        <string name="_adm_nav_dsc_menus_persistent"><![CDATA[Количество постоянных пунктов меню. Применимо только для авто-перестраиваемых меню.]]></string>
 	<string name="_adm_nav_dsc_menus_set_name"><![CDATA[Назначить набор для элемента меню]]></string>
 	<string name="_adm_nav_dsc_menus_set_title"><![CDATA[Описательное имя для использования только в Студии. Используйте как минимум 3 символа.]]></string>
 	<string name="_adm_nav_dsc_menus_style"><![CDATA[Выбрать стиль презентации - способа, каким будет отображаться данное меню на сайте]]></string>
@@ -1246,6 +1247,7 @@
 	<string name="_adm_nav_txt_menus_gl_set_title"><![CDATA[Набор]]></string>
 	<string name="_adm_nav_txt_menus_gl_template_title"><![CDATA[Стиль]]></string>
 	<string name="_adm_nav_txt_menus_gl_title"><![CDATA[Системное имя]]></string>
+        <string name="_adm_nav_txt_menus_persistent"><![CDATA[Постоянные пункты меню]]></string>
 	<string name="_adm_nav_txt_menus_set_name"><![CDATA[Набор]]></string>
 	<string name="_adm_nav_txt_menus_set_name_new"><![CDATA[Создать новый]]></string>
 	<string name="_adm_nav_txt_menus_set_name_select"><![CDATA[Выбрать набор...]]></string>

+ 1 - 0
studio/classes/BxDolStudioNavigationQuery.php

@@ -24,6 +24,7 @@ class BxDolStudioNavigationQuery extends BxDolDb
             `tm`.`set_name` AS `set_name`,
             `tm`.`module` AS `module`,
             `tm`.`template_id` AS `template_id`,
+            `tm`.`persistent` AS `persistent`,
             `tm`.`deletable` AS `deletable`,
             `tm`.`active` AS `active`,
             `tm`.`override_class_name` AS `override_class_name`,

+ 11 - 0
studio/template/scripts/BxBaseStudioNavigationMenus.php

@@ -333,6 +333,17 @@ class BxBaseStudioNavigationMenus extends BxDolStudioNavigationMenus
                         'error' => _t('_adm_nav_err_menus_style'),
                     ),
                 ),
+                'persistent' => array(
+                    'type' => 'text',
+                    'name' => 'persistent',
+                    'caption' => _t('_adm_nav_txt_menus_persistent'),
+                    'info' => _t('_adm_nav_dsc_menus_persistent'),
+                    'value' => isset($aMenu['persistent']) ? $aMenu['persistent'] : 0,
+                    'required' => '0',
+                    'db' => array (
+                        'pass' => 'Int',
+                    )
+                ),
                 'controls' => array(
                     'name' => 'controls',
                     'type' => 'input_set',

+ 1 - 0
template/scripts/BxBaseMenu.php

@@ -82,6 +82,7 @@ class BxBaseMenu extends BxDolMenu
 
         return [
             'object' => $this->_sObject, 
+            'persistent' => $this->_aObject['persistent'],
             'items' => $aItems
         ];
     }

+ 1 - 1
template/scripts/BxBaseMenuMoreAuto.php

@@ -36,7 +36,7 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
         $this->_sTmplNameItemMorePopup = 'menu_item_more_popup.html';
 
         $this->_bMoreAuto = null;
-        $this->_iMoreAutoItemsStatic = 1;
+        $this->_iMoreAutoItemsStatic = (int)$aObject['persistent'];
         $this->_bMoreAutoItemsStaticOnly = false;
 
         $this->_sJsClassMoreAuto = 'BxDolMenuMoreAuto';