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

Ticket #1813 - Related changes in Core.

AntonLV 8 лет назад
Родитель
Сommit
1b1caf5cb3
2 измененных файлов с 24 добавлено и 4 удалено
  1. 12 2
      inc/js/functions.js
  2. 12 2
      template/scripts/BxBaseFunctions.php

+ 12 - 2
inc/js/functions.js

@@ -485,6 +485,14 @@ function bx_menu_slide_inline (sMenu, e, sPosition) {
 
     var eIcon = $(e).find('.sys-icon-a');    
 
+    var fPositionElement = function (oElement) {
+        eSlider.css({
+            position: 'absolute',
+            top: oElement.outerHeight(true),
+            left: 0
+        });
+    };
+
     var fPositionBlock = function () {
         var eBlock = eSlider.parents('.bx-page-block-container');
         eSlider.css({
@@ -516,11 +524,13 @@ function bx_menu_slide_inline (sMenu, e, sPosition) {
             (new Marka(eIcon[0])).set('times');
         }
 
-        if ('block' == sPosition)
+        if(typeof sPosition == 'object')
+            fPositionElement(sPosition);
+        else if(typeof sPosition == 'string' && sPosition == 'block')
             fPositionBlock();
         else
             fPositionSite();
-        
+
         eSlider.slideDown();
 
         eSlider.data('data-control-btn', e);        

+ 12 - 2
template/scripts/BxBaseFunctions.php

@@ -249,9 +249,18 @@ class BxBaseFunctions extends BxDolFactory implements iBxDolSingleton
             }
 
             if ($sMenu) {
-                $sId = 'bx-menu-db-' . time() . rand(0, PHP_INT_MAX);
+                $bButtonMenu = !empty($aButtons['menu']) && is_array($aButtons['menu']);
+
+                $sId = $bButtonMenu && !empty($aButtons['menu']['id']) ? $aButtons['menu']['id'] : 'bx-menu-db-' . time() . rand(0, PHP_INT_MAX);
                 $sCode .= $this->slideBox($sId, $sMenu, true);
-                $aButtonMenu = array ('icon-a' => $this->_sDesignBoxIcon, 'onclick' => "bx_menu_slide_inline('#" . $sId . "', this)");
+
+                $aButtonMenu = array('icon-a' => $this->_sDesignBoxIcon, 'onclick' => "bx_menu_slide_inline('#" . $sId . "', this)");
+                if($bButtonMenu) {
+                    $aButtonMenu = array_merge($aButtonMenu, $aButtons['menu']);
+                    $aButtons[] = array('menu' => 1);
+
+                    unset($aButtons['menu']);
+                }
             }
 
         }
@@ -262,6 +271,7 @@ class BxBaseFunctions extends BxDolFactory implements iBxDolSingleton
                 if (isset($aButton['menu']) && $aButton['menu']) {
                     if (!$aButtonMenu)
                         continue;
+
                     $aButton = $aButtonMenu;
                 }