瀏覽代碼

Ticket #4971 - Build-in API support: Subscriptions list in Payments.

AntonLV 1 年之前
父節點
當前提交
05c0c69cf1

+ 4 - 0
modules/base/payment/classes/BxBaseModPaymentSubscriptions.php

@@ -14,6 +14,8 @@ class BxBaseModPaymentSubscriptions extends BxDol
     protected $MODULE;
     protected $_oModule;
 
+    protected $_bIsApi;
+
     protected $_bSingleSeller;
     protected $_iSingleSeller;
 
@@ -23,6 +25,8 @@ class BxBaseModPaymentSubscriptions extends BxDol
 
         $this->_oModule = BxDolModule::getInstance($this->MODULE);
 
+        $this->_bIsApi = bx_is_api();
+
         $this->_bSingleSeller = $this->_oModule->_oConfig->isSingleSeller();
 
         $this->_iSingleSeller = 0;

+ 15 - 8
modules/boonex/payment/classes/BxPaymentSubscriptions.php

@@ -499,15 +499,22 @@ class BxPaymentSubscriptions extends BxBaseModPaymentSubscriptions
 
         $sMethod = 'displayBlockSbs' . bx_gen_method_name($sType);
         if(!$this->_oModule->_oTemplate->isMethodExists($sMethod))
-            return array(
+            return $this->_bIsApi ? [] : [
                 'content' => MsgBox(_t('_Empty'))
-            );
+            ];
 
-    	$iUserId = $this->_oModule->getProfileId();
+        $iUserId = $this->_oModule->getProfileId();
         if(empty($iUserId))
-            return array(
+            return $this->_bIsApi ? [] : [
                 'content' => MsgBox(_t($CNF['T']['ERR_REQUIRED_LOGIN']))
-            );
+            ];
+
+        $mixedBlockContent = $this->_oModule->_oTemplate->$sMethod($iUserId);
+
+        if($this->_bIsApi)
+            return !$mixedBlockContent ? [] : [
+                bx_api_get_block('subscriptions_' . $sType, $mixedBlockContent)
+            ];
 
         $this->_oModule->setSiteSubmenu('menu_dashboard', 'system', 'dashboard-subscriptions');
 
@@ -516,10 +523,10 @@ class BxPaymentSubscriptions extends BxBaseModPaymentSubscriptions
         if($oBlockSubmenu) 
             $oBlockSubmenu->setSelected($this->MODULE, 'sbs-' . str_replace('_', '-', $sType));     
 
-        return array(
-            'content' => $this->_oModule->_oTemplate->$sMethod($iUserId),
+        return [
+            'content' => $mixedBlockContent,
             'menu' => $this->_oModule->_oConfig->getObject('menu_sbs_submenu')
-        );
+        ];
     }
 
     private function _getInterval($iPeriod, $sPeriodUnit, $iTrial = 0)

+ 11 - 5
modules/boonex/payment/classes/BxPaymentTemplate.php

@@ -228,11 +228,14 @@ class BxPaymentTemplate extends BxBaseModPaymentTemplate
     {
         $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject('grid_sbs_list_my'), $this->getModule()->_oTemplate);
         if(!$oGrid || empty($iClientId))
-            return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
+            return $this->_bIsApi ? false : MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
 
-		$oGrid->addQueryParam('client_id', $iClientId);
+        $oGrid->addQueryParam('client_id', $iClientId);
+
+        if($this->_bIsApi)
+            return $oGrid->getCodeAPI(true);
 
-		$this->addJsCssSubscriptions();
+        $this->addJsCssSubscriptions();
         return $this->displayJsCode(BX_PAYMENT_ORDERS_TYPE_SUBSCRIPTION) . $oGrid->getCode();
     }
 
@@ -240,9 +243,12 @@ class BxPaymentTemplate extends BxBaseModPaymentTemplate
     {
         $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject('grid_sbs_list_all'), $this->getModule()->_oTemplate);
         if(!$oGrid)
-            return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
+            return $this->_bIsApi ? false : MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
+
+        if($this->_bIsApi)
+            return $oGrid->getCodeAPI(true);
 
-		$this->addJsCssSubscriptions();
+        $this->addJsCssSubscriptions();
         return $this->displayJsCode(BX_PAYMENT_ORDERS_TYPE_SUBSCRIPTION) . $oGrid->getCode();
     }