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

UNA Market like on Boonex site: Related changes in Payments.

AntonLV 10 лет назад
Родитель
Сommit
3582a3feef

+ 3 - 3
cart.php

@@ -14,11 +14,11 @@ bx_import('BxDolLanguages');
 
 check_logged();
 
-$sLink = BxDolPayments::getInstance()->getCartLink();
-if(empty($sLink))
+$sUrl = BxDolPayments::getInstance()->getCartUrl();
+if(empty($sUrl))
 	BxDolTemplate::getInstance()->displayPageNotFound();
 
-header('Location: ' . $sLink);
+header('Location: ' . $sUrl);
 exit;
 
 /** @} */

+ 14 - 6
inc/classes/BxDolPayments.php

@@ -93,12 +93,12 @@ class BxDolPayments extends BxDol implements iBxDolSingleton
     	return BxDolService::call($this->_sActive, 'get_option', array($sOption));
     }
 
-    public function getOrdersLink()
+    public function getOrdersUrl()
     {
-    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_orders_link', 'Orders'))
+    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_orders_url', 'Orders'))
     		return '';
 
-    	return BxDolService::call($this->_sActive, 'get_orders_link', array(), 'Orders');
+    	return BxDolService::call($this->_sActive, 'get_orders_url', array(), 'Orders');
     }
 
     public function getOrdersCount($sType)
@@ -110,12 +110,12 @@ class BxDolPayments extends BxDol implements iBxDolSingleton
 		return BxDolService::call($this->_sActive, 'get_orders_count_new', $aSrvParams, 'Orders');
     }
 
-    public function getCartLink($iVendor = 0)
+    public function getCartUrl($iVendor = 0)
     {
-    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_cart_link', 'Cart'))
+    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_cart_url', 'Cart'))
     		return '';
 
-    	return BxDolService::call($this->_sActive, 'get_cart_link', array($iVendor), 'Cart');
+    	return BxDolService::call($this->_sActive, 'get_cart_url', array($iVendor), 'Cart');
     }
 
     public function getCartItemsCount()
@@ -184,6 +184,14 @@ class BxDolPayments extends BxDol implements iBxDolSingleton
 		return BxDolService::call($this->_sActive, 'get_add_to_cart_link', $aSrvParams, 'Cart');
     }
 
+	public function getSubscribeUrl($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
+    {
+    	if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_url', 'Cart'))
+    		return '';
+
+    	return BxDolService::call($this->_sActive, 'get_subscribe_url', array($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount), 'Cart');
+    }
+
 	/**
      * Returns "Subscribe" JavaScript code to use in onclick attribute.
      */

+ 15 - 1
modules/base/payment/classes/BxBaseModPaymentCart.php

@@ -21,7 +21,7 @@ class BxBaseModPaymentCart extends BxDol
         $this->_oModule = BxDolModule::getInstance($this->MODULE);
     }
 
-	public function serviceGetCartLink($iVendor = 0)
+	public function serviceGetCartUrl($iVendor = 0)
     {
     	if(!$this->_oModule->isLogged())
             return '';
@@ -55,6 +55,20 @@ class BxBaseModPaymentCart extends BxDol
 		return $this->_oModule->_oTemplate->displayAddToCartLink($iVendorId, $iModuleId, $iItemId, $iItemCount, $bNeedRedirect);
     }
 
+	public function serviceGetSubscribeUrl($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
+    {
+    	if(!$this->_oModule->isLogged())
+            return '';
+
+    	return  bx_append_url_params($this->_oModule->_oConfig->getUrl('URL_SUBSCRIBE'), array(
+    		'seller_id' => $iVendorId,
+    		'seller_provider' => $sVendorProvider,
+    		'module_id' => $mixedModuleId, 
+    		'item_id' => $iItemId,
+    		'item_count' => $iItemCount
+    	));
+    }
+
 	public function serviceGetSubscribeJs($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1, $bWrapped = true)
     {
 		$iModuleId = $this->_oModule->_oConfig->getModuleId($mixedModuleId);

+ 1 - 1
modules/base/payment/classes/BxBaseModPaymentOrders.php

@@ -21,7 +21,7 @@ class BxBaseModPaymentOrders extends BxDol
         $this->_oModule = BxDolModule::getInstance($this->MODULE);
     }
 
-	public function serviceGetOrdersLink()
+	public function serviceGetOrdersUrl()
     {
     	if(!$this->_oModule->isLogged())
             return '';

+ 1 - 0
modules/boonex/payment/classes/BxPaymentConfig.php

@@ -22,6 +22,7 @@ class BxPaymentConfig extends BxBaseModPaymentConfig
         	'URL_CARTS' => 'page.php?i=payment-carts',
         	'URL_CART' => 'page.php?i=payment-cart',
         	'URL_CART_CHECKOUT' => $sBaseUrl . 'initialize_checkout/' . BX_PAYMENT_TYPE_SINGLE . '/',
+        	'URL_SUBSCRIBE' => $sBaseUrl . 'subscribe/',
         	'URL_HISTORY' => 'page.php?i=payment-history',
         	'URL_ORDERS' => 'page.php?i=payment-orders',
         	'URL_DETAILS' => 'page.php?i=payment-details',

+ 23 - 1
modules/boonex/payment/classes/BxPaymentModule.php

@@ -192,7 +192,29 @@ class BxPaymentModule extends BxBaseModPaymentModule
 		echoJson($aResult);
     }
 
-    public function actionSubscribe()
+	public function actionSubscribe()
+    {
+    	$iSellerId = bx_process_input(bx_get('seller_id'), BX_DATA_INT);
+    	$sSellerProvider = bx_process_input(bx_get('seller_provider'));
+    	$iModuleId = bx_process_input(bx_get('module_id'), BX_DATA_INT);
+    	$iItemId = bx_process_input(bx_get('item_id'), BX_DATA_INT);
+    	$iItemCount = bx_process_input(bx_get('item_count'), BX_DATA_INT);
+    	if(empty($iItemCount))
+    		$iItemCount = 1;
+
+        $aResult = $this->getObjectCart()->serviceSubscribe($iSellerId, $sSellerProvider, $iModuleId, $iItemId, $iItemCount);
+
+		if($aResult['code'] != 0)
+			return $this->_oTemplate->displayPageCodeError($aResult['message']);
+
+		if(empty($aResult['redirect']) && !empty($aResult['message']))
+			return $this->_oTemplate->displayPageCodeResponse($aResult['message']);
+
+		header('Location: ' . $aResult['redirect']);
+        exit;
+    }
+
+    public function actionSubscribeJson()
     {
     	$iSellerId = bx_process_input(bx_get('seller_id'), BX_DATA_INT);
     	$sSellerProvider = bx_process_input(bx_get('seller_provider'));

+ 1 - 1
modules/boonex/payment/js/cart.js

@@ -75,7 +75,7 @@ BxPaymentCart.prototype.subscribe = function(iSellerId, sSellerProvider, iModule
     	oParams.item_count = parseInt(iItemCount);
 
     $.post(
-        this._sActionsUrl + 'subscribe/',
+        this._sActionsUrl + 'subscribe_json/',
         oParams,
         function(oData){
         	$this.processResult(oData);

+ 3 - 3
orders.php

@@ -14,11 +14,11 @@ bx_import('BxDolLanguages');
 
 check_logged();
 
-$sLink = BxDolPayments::getInstance()->getOrdersLink();
-if(empty($sLink))
+$sUrl = BxDolPayments::getInstance()->getOrdersUrl();
+if(empty($sUrl))
 	BxDolTemplate::getInstance()->displayPageNotFound();
 
-header('Location: ' . $sLink);
+header('Location: ' . $sUrl);
 exit;
 
 /** @} */