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

+ 18 - 0
inc/classes/BxDolPayments.php

@@ -70,6 +70,24 @@ class BxDolPayments extends BxDol implements iBxDolSingleton
         return BxDolService::call($this->_sActive, 'is_accepting_payments', $aSrvParams);
     }
 
+	public function isPaymentProvider($iVendorId, $sVendorProvider, $sPaymentType = '')
+    {
+    	if(empty($this->_sActive) || !BxDolRequest::serviceExists($this->_sActive, 'is_payment_provider'))
+    		return false;
+
+    	$aSrvParams = array($iVendorId, $sVendorProvider, $sPaymentType);
+        return BxDolService::call($this->_sActive, 'is_payment_provider', $aSrvParams);
+    }
+
+	public function getPaymentProvider($iVendorId, $sVendorProvider, $sPaymentType = '')
+    {
+    	if(empty($this->_sActive) || !BxDolRequest::serviceExists($this->_sActive, 'get_payment_provider'))
+    		return false;
+
+    	$aSrvParams = array($iVendorId, $sVendorProvider, $sPaymentType);
+        return BxDolService::call($this->_sActive, 'get_payment_provider', $aSrvParams);
+    }
+
 	public function getPayments()
     {
         $aPayments = array(

+ 1 - 1
modules/boonex/forum/classes/BxForumStudioPage.php

@@ -28,7 +28,7 @@ class BxForumStudioPage extends BxTemplStudioModule
 
 	protected function getCategories()
     {
-        $oGrid = BxDolGrid::getObjectInstance($this->_oModule->_oConfig->CNF['OBJECT_GRID_CATEGORIES']);
+        $oGrid = BxDolGrid::getObjectInstance($this->_oModule->_oConfig->CNF['OBJECT_GRID_CATEGORIES'], BxDolStudioTemplate::getInstance());
         if(!$oGrid)
             return '';
 

+ 8 - 0
modules/boonex/payment/classes/BxPaymentDb.php

@@ -72,6 +72,11 @@ class BxPaymentDb extends BxBaseModPaymentDb
 	
 					$sWhereClause = " AND `tp`.`for_recurring`='1'";
 	        		break;
+
+	        	case 'all':
+					$aMethod['name'] = 'getAllWithKey';
+					$aMethod['params'][1] = 'name';
+	        		break;
 	        }          
 
         $aMethod['params'][0] = "SELECT
@@ -155,6 +160,9 @@ class BxPaymentDb extends BxBaseModPaymentDb
 
     public function getVendorInfoProviders($iVendorId, $aParams = array())
     {
+    	if(empty($aParams))
+    		$aParams = array('type' => 'all');
+
 		$aProviders = $this->getProviders($aParams);
 		$aOptions = $this->getOptions($iVendorId);
 

+ 27 - 3
modules/boonex/payment/classes/BxPaymentModule.php

@@ -140,14 +140,38 @@ class BxPaymentModule extends BxBaseModPaymentModule
     			break;
 
     		default:
-    			$aProvidersCart = $this->_oDb->getVendorInfoProvidersSingle($iVendorId);
-    			$aProvidersSubscription = $this->_oDb->getVendorInfoProvidersRecurring($iVendorId);
-    			$bResult = !empty($aProvidersCart) || !empty($aProvidersSubscription);
+    			$aProviders = $this->_oDb->getVendorInfoProviders($iVendorId);
+    			$bResult = !empty($aProviders);
     	}
 
 		return $bResult;
     }
 
+    public function serviceIsPaymentProvider($iVendorId, $sVendorProvider, $sPaymentType = '')
+    {
+    	$aProvider = $this->serviceGetPaymentProvider($iVendorId, $sVendorProvider, $sPaymentType);
+    	return $aProvider !== false;
+    }
+
+    public function serviceGetPaymentProvider($iVendorId, $sVendorProvider, $sPaymentType = '')
+    {
+    	$aProviders = array();
+    	switch($sPaymentType) {
+    		case BX_PAYMENT_TYPE_SINGLE:
+    			$aProviders = $this->_oDb->getVendorInfoProvidersSingle($iVendorId);
+    			break;
+
+    		case BX_PAYMENT_TYPE_RECURRING:
+    			$aProviders = $this->_oDb->getVendorInfoProvidersRecurring($iVendorId);
+    			break;
+
+    		default:
+    			$aProviders = $this->_oDb->getVendorInfoProviders($iVendorId);
+    	}
+
+    	return !empty($aProviders) && !empty($aProviders[$sVendorProvider]) && is_array(($aProviders[$sVendorProvider])) ? $aProviders[$sVendorProvider] : false;
+    }
+
     public function serviceGetOptionsSiteAdmin()
     {
         $aResult = array(