Przeglądaj źródła

Ticket #259 - Fix in integration with Studio -> Market Apps.

AntonLV 9 lat temu
rodzic
commit
a0c766e64a

+ 25 - 20
modules/base/payment/classes/BxBaseModPaymentTemplate.php

@@ -58,30 +58,14 @@ class BxBaseModPaymentTemplate extends BxBaseModGeneralTemplate
 		$oTemplate->getPageCode();
     }
 
-	public function displayPageCodeResponse($sMessage, $bWrap = true)
+	public function displayPageCodeResponse($sMessage, $bWrap = true, $bCenter = false)
     {
-		$aParams = array(
-            'title' => array(
-                'page' => _t($this->_sLangsPrefix . 'page_title_response')
-            ),
-            'content' => array(
-                'page_main_code' => $bWrap ? MsgBox(_t($sMessage)) : $sMessage
-            )
-        );
-        $this->displayPageCode($aParams);
+        $this->displayPageCodeText($this->_sLangsPrefix . 'page_title_response', $sMessage, $bWrap, $bCenter);
     }
 
-    public function displayPageCodeError($sMessage, $bWrap = true)
+    public function displayPageCodeError($sMessage, $bWrap = true, $bCenter = false)
     {
-		$aParams = array(
-            'title' => array(
-                'page' => _t($this->_sLangsPrefix . 'page_title_error')
-            ),
-            'content' => array(
-                'page_main_code' => $bWrap ? MsgBox(_t($sMessage)) : $sMessage
-            )
-        );
-        $this->displayPageCode($aParams);
+        $this->displayPageCodeText($this->_sLangsPrefix . 'page_title_error', $sMessage, $bWrap, $bCenter);
     }
 
     public function displayPageCodeRedirect($sUrl, $aData = array(), $sMethod = 'post', $sMessage = '', $bWrap = true)
@@ -128,6 +112,27 @@ class BxBaseModPaymentTemplate extends BxBaseModGeneralTemplate
             'content' => $aParams['content']
         ));
     }
+
+    protected function displayPageCodeText($sTitle, $sText, $bWrap = true, $bCenter = false)
+    {
+        if($bWrap)
+            $sText = MsgBox(_t($sText));
+
+        if($bCenter)
+            $sText = $this->parsePageByName('center.html', array(
+                'content' => $sText
+            ));
+
+		$aParams = array(
+            'title' => array(
+                'page' => _t($sTitle)
+            ),
+            'content' => array(
+                'page_main_code' => $sText
+            )
+        );
+        $this->displayPageCode($aParams);
+    }
 }
 
 /** @} */

+ 3 - 0
modules/base/payment/template/center.html

@@ -0,0 +1,3 @@
+<div class="bx-def-font-align-center">
+    <div style="display:inline-block;">__content__</div>
+</div>

+ 12 - 4
modules/boonex/payment/classes/BxPaymentModule.php

@@ -245,15 +245,23 @@ class BxPaymentModule extends BxBaseModPaymentModule
     		$iItemCount = 1;
 
         $aResult = $this->getObjectCart()->serviceSubscribe($iSellerId, $sSellerProvider, $iModuleId, $iItemId, $iItemCount);
+        $bRedirect = !empty($aResult['redirect']);
 
-		if($aResult['code'] != 0)
+        if(!empty($aResult['popup'])) {
+            $this->_oTemplate->addJsCssCart(BX_PAYMENT_TYPE_RECURRING, $iSellerId);
+			return $this->_oTemplate->displayPageCodeResponse(!empty($aResult['popup']['html']) ? $aResult['popup']['html'] : $aResult['popup'], false, true);
+        }
+
+		if(!empty($aResult['code']))
 			return $this->_oTemplate->displayPageCodeError($aResult['message']);
 
-		if(empty($aResult['redirect']) && !empty($aResult['message']))
+		if(!empty($aResult['message']) && !$bRedirect)
 			return $this->_oTemplate->displayPageCodeResponse($aResult['message']);
 
-		header('Location: ' . $aResult['redirect']);
-        exit;
+        if($bRedirect) {
+    		header('Location: ' . $aResult['redirect']);
+            exit;
+        }
     }
 
     public function actionSubscribeJson()

+ 1 - 0
modules/boonex/payment/template/center.html

@@ -0,0 +1 @@
+<bx_include_base:../modules/base/payment/template/center.html />