Parcourir la source

Ticket #5580 - API: Manage blocks submenus.

AntonLV il y a 2 mois
Parent
commit
fec258cfe1

+ 1 - 1
modules/base/general/classes/BxBaseModGeneralMenuViewActions.php

@@ -508,7 +508,7 @@ class BxBaseModGeneralMenuViewActions extends BxTemplMenuCustom
                 'object_id' => $this->_iContentId,
                 'params' => [],
                 'action' => [
-                    'url' => bx_replace_markers('{url_encoded}', $this->_aMarkers)
+                    'url' => bx_api_get_relative_url(bx_replace_markers('{url}', $this->_aMarkers))
                 ]
             ]
         ];

+ 6 - 5
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -1276,11 +1276,6 @@ class BxBaseModGeneralModule extends BxDolModule
         if(!$oGrid)
             return '';
 
-        if($this->_bIsApi)
-            return [
-                bx_api_get_block('grid', $oGrid->getCodeAPI())
-            ];
-
         $CNF = &$this->_oConfig->CNF;
 
         $mixedMenu = '';
@@ -1305,6 +1300,12 @@ class BxBaseModGeneralModule extends BxDolModule
         if(!empty($CNF['OBJECT_MENU_SUBMENU']) && isset($CNF['URI_MANAGE_COMMON']) && ($oSubmenu = BxDolMenu::getObjectInstance($CNF['OBJECT_MENU_SUBMENU'])) !== false)
             $oSubmenu->setSelected($this->_aModule['name'], $CNF['URI_MANAGE_COMMON']);
 
+        if($this->_bIsApi)
+            return [
+                'content' => [bx_api_get_block('grid', $oGrid->getCodeAPI())],
+                'menu' => $mixedMenu ? $mixedMenu->getCodeAPI() : ''
+            ];
+
         $this->_oTemplate->addCss(array('manage_tools.css'));
         $this->_oTemplate->addJs(array('manage_tools.js'));
         $this->_oTemplate->addJsTranslation(array('_sys_grid_search'));

+ 17 - 55
modules/boonex/credits/classes/BxCreditsModule.php

@@ -1470,84 +1470,46 @@ class BxCreditsModule extends BxBaseModGeneralModule
     protected function _getBlockOrders($sType) 
     {
         $CNF = &$this->_oConfig->CNF;
-
-        $sGrid = $CNF['OBJECT_GRID_ORDERS_' . strtoupper($sType)];
-        $oGrid = BxDolGrid::getObjectInstance($sGrid);
-        if(!$oGrid)
-            return $this->_bIsApi ? [] : '';
-
-        if($this->_bIsApi)
-            return [
-                bx_api_get_block('grid', $oGrid->getCodeAPI())
-            ];
         
-        return [
-            'content' => $oGrid->getCode(),
-            'menu' => $CNF['OBJECT_MENU_MANAGE_SUBMENU']
-        ];
+        return $this->_getBlockGrid($CNF['OBJECT_GRID_ORDERS_' . strtoupper($sType)]);
     }
 
     protected function _getBlockHistory($sType) 
     {
         $CNF = &$this->_oConfig->CNF;
 
-        $sGrid = $CNF['OBJECT_GRID_HISTORY_' . strtoupper($sType)];
-        $oGrid = BxDolGrid::getObjectInstance($sGrid);
-        if(!$oGrid)
-            return $this->_bIsApi ? [] : '';
-
-        if($this->_bIsApi)
-            return [
-                bx_api_get_block('grid', $oGrid->getCodeAPI())
-            ];
-
-        return [
-            'content' => $oGrid->getCode(),
-            'menu' => $CNF['OBJECT_MENU_MANAGE_SUBMENU']
-        ];
+        return $this->_getBlockGrid($CNF['OBJECT_GRID_HISTORY_' . strtoupper($sType)]);
     }
 
     protected function _getBlockWithdrawals($sType) 
     {
         $CNF = &$this->_oConfig->CNF;
 
-        $sGrid = $CNF['OBJECT_GRID_WITHDRAWALS_' . strtoupper($sType)];
-        $oGrid = BxDolGrid::getObjectInstance($sGrid);
-        if(!$oGrid)
-            return $this->_bIsApi ? [] : '';
-
-        if($this->_bIsApi)
-            return [
-                bx_api_get_block('grid', $oGrid->getCodeAPI())
-            ];
-
-        return [
-            'content' => $oGrid->getCode(),
-            'menu' => $CNF['OBJECT_MENU_MANAGE_SUBMENU']
-        ];
+        return $this->_getBlockGrid($CNF['OBJECT_GRID_WITHDRAWALS_' . strtoupper($sType)]);
     }
 
     protected function _getBlockProfiles($sType) 
     {
         $CNF = &$this->_oConfig->CNF;
 
-        $sKey = 'OBJECT_GRID_PROFILES_' . strtoupper($sType);
-        if(empty($CNF[$sKey]))
-            return $this->_bIsApi ? [] : '';
+        return $this->_getBlockGrid($CNF['OBJECT_GRID_PROFILES_' . strtoupper($sType)]);
+    }
 
-        $sGrid = $CNF[$sKey];
-        $oGrid = BxDolGrid::getObjectInstance($sGrid);
-        if(!$oGrid)
-            return $this->_bIsApi ? [] : '';
+    protected function _getBlockGrid($sGrid) 
+    {
+        $CNF = &$this->_oConfig->CNF;
 
-        if($this->_bIsApi)
-            return [
-                bx_api_get_block('grid', $oGrid->getCodeAPI())
-            ];
+        $oGrid = null;
+        if(!$sGrid || !($oGrid = BxDolGrid::getObjectInstance($sGrid)))
+            return $this->_bIsApi ? [] : '';
 
-        return [
+        $sMenu = $CNF['OBJECT_MENU_MANAGE_SUBMENU'];
+        return $this->_bIsApi ? [
+            'content' => [bx_api_get_block('grid', $oGrid->getCodeAPI())],
+            'menu' => ($oMenu = BxTemplMenu::getObjectInstance($sMenu)) ? $oMenu->getCodeAPI() : ''
+        ] : [
             'content' => $oGrid->getCode(),
-            'menu' => $CNF['OBJECT_MENU_MANAGE_SUBMENU']
+            'menu' => $sMenu
         ];
     }
 }

+ 2 - 0
modules/boonex/credits/install/sql/enable-app.sql

@@ -20,4 +20,6 @@ UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_s
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_submenu' AND `module`='bx_credits' AND `name`='credits-history-administration';
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_submenu' AND `module`='bx_credits' AND `name`='credits-orders-common';
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_submenu' AND `module`='bx_credits' AND `name`='credits-orders-administration';
+UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_submenu' AND `module`='bx_credits' AND `name`='credits-withdrawals-common';
+UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_submenu' AND `module`='bx_credits' AND `name`='credits-withdrawals-administration';
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_credits_manage_submenu' AND `module`='bx_credits' AND `name`='credits-profiles-administration';

+ 2 - 1
modules/boonex/market/classes/BxMarketModule.php

@@ -1466,7 +1466,8 @@ class BxMarketModule extends BxBaseModTextModule
 
         if($this->_bIsApi)
             return [
-                bx_api_get_block('grid', $oGrid->getCodeAPI())
+                'content' => [bx_api_get_block('grid', $oGrid->getCodeAPI())],
+                'menu' => ($oMenu = BxTemplMenu::getObjectInstance($CNF['OBJECT_MENU_LICENSES'])) ? $oMenu->getCodeAPI() : ''
             ];
 
         $this->_oTemplate->addJs(['licenses.js']);

+ 4 - 0
modules/boonex/market/install/sql/enable-app.sql

@@ -17,6 +17,8 @@ UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_market_top' AND
 UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_market_home' AND `module`='bx_market' AND `title_system`='' AND `title`='_bx_market_page_block_title_latest_entries';
 UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_market_manage' AND `module`='bx_market' AND `title_system`='_bx_market_page_block_title_system_manage' AND `title`='_bx_market_page_block_title_manage';
 UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_market_administration' AND `module`='bx_market' AND `title_system`='_bx_market_page_block_title_system_manage_administration' AND `title`='_bx_market_page_block_title_manage';
+UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_market_licenses_administration' AND `module`='bx_market' AND `title_system`='' AND `title`='_bx_market_page_block_title_licenses_administration';
+UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_market_licenses' AND `module`='bx_market' AND `title_system`='' AND `title`='_bx_market_page_block_title_licenses';
 
 -- MENUS:
 
@@ -27,3 +29,5 @@ UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_market_submenu'
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_market_submenu' AND `module`='bx_market' AND `name`='products-featured';
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_market_submenu' AND `module`='bx_market' AND `name`='products-top';
 UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_market_submenu' AND `module`='bx_market' AND `name`='products-manage';
+UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_market_licenses_submenu' AND `module`='bx_market' AND `name`='products-licenses-administration';
+UPDATE `sys_menu_items` SET `active_api`=1 WHERE `set_name`='bx_market_licenses_submenu' AND `module`='bx_market' AND `name`='products-licenses';

+ 7 - 7
modules/boonex/payment/classes/BxPaymentOrders.php

@@ -63,20 +63,20 @@ class BxPaymentOrders extends BxBaseModPaymentOrders
 
         $this->_oModule->setSiteSubmenu('menu_dashboard', 'system', 'dashboard-orders');
 
+        $sBlockTitle = _t($this->_sLangsPrefix . 'page_block_title_orders_' . $sType);
         $sBlockContent = $this->_oModule->_oTemplate->displayBlockOrders($sType, $iUserId);
-        if($this->_bIsApi)
-            return !$sBlockContent ? [bx_api_get_msg(_t($this->_sLangsPrefix . 'msg_no_results'))] : [
-                'title' => _t($this->_sLangsPrefix . 'page_block_title_orders_' . $sType),
-                'content' => [bx_api_get_block('grid', $sBlockContent)]
-            ];
 
         $sBlockSubmenu = $this->_oModule->_oConfig->getObject('menu_orders_submenu');
         $oBlockSubmenu = BxDolMenu::getObjectInstance($sBlockSubmenu);
         if($oBlockSubmenu)
             $oBlockSubmenu->setSelected($this->MODULE, 'orders-' . $sType);
 
-        return [
-            'title' => _t($this->_sLangsPrefix . 'page_block_title_orders_' . $sType),
+        return $this->_bIsApi ? [
+            'title' => $sBlockTitle,
+            'content' => !$sBlockContent ? [bx_api_get_msg(_t($this->_sLangsPrefix . 'msg_no_results'))] : [bx_api_get_block('grid', $sBlockContent)],
+            'menu' => $oBlockSubmenu->getCodeAPI()
+        ] : [
+            'title' => $sBlockTitle,
             'content' => !$sBlockContent ? MsgBox(_t($this->_sLangsPrefix . 'msg_no_results')) : $sBlockContent,
             'menu' => $oBlockSubmenu
         ];