BxBaseModPaymentModule.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup BasePayment Base classes for Payment like modules
  7. * @ingroup TridentModules
  8. *
  9. * @{
  10. */
  11. class BxBaseModPaymentModule extends BxDolModule
  12. {
  13. protected $_sLangsPrefix;
  14. function __construct($aModule)
  15. {
  16. parent::__construct($aModule);
  17. $this->_oConfig->init($this->_oDb);
  18. $this->_sLangsPrefix = $this->_oConfig->getPrefix('langs');
  19. }
  20. public function serviceUpdateDependentModules($sModule = 'all', $bInstall = true)
  21. {
  22. $aModules = $sModule == 'all' ? $this->_oDb->getModulesBy(array('type' => 'modules')) : array($this->_oDb->getModuleByName($sModule));
  23. foreach($aModules as $aModule) {
  24. $mixedData = $this->callGetPaymentData($aModule['name']);
  25. if($mixedData === false)
  26. continue;
  27. $sMethodName = $bInstall ? 'insertModule' : 'deleteModule';
  28. $this->_oDb->$sMethodName($mixedData);
  29. }
  30. }
  31. public function serviceGetCurrencyInfo()
  32. {
  33. return array(
  34. 'sign' => $this->_oConfig->getCurrencySign(),
  35. 'code' => $this->_oConfig->getCurrencyCode()
  36. );
  37. }
  38. public function serviceGetOption($sOption)
  39. {
  40. return $this->_oDb->getParam($this->_oConfig->getPrefix('options') . $sOption);
  41. }
  42. public function serviceGetProvidersCart($iVendorId)
  43. {
  44. $aVendorProviders = $this->_oDb->getVendorInfoProvidersCart($iVendorId);
  45. $aResult = array();
  46. foreach($aVendorProviders as $aProvider) {
  47. $aProvider['caption_cart'] = _t($this->_sLangsPrefix . 'txt_cart_' . $aProvider['name']);
  48. $aResult[] = $aProvider;
  49. }
  50. return $aResult;
  51. }
  52. public function getVendorInfo($iUserId)
  53. {
  54. return array_merge($this->getProfileInfo($iUserId), array(
  55. 'currency_code' => $this->_oConfig->getCurrencyCode(),
  56. 'currency_sign' => $this->_oConfig->getCurrencySign()
  57. ));
  58. }
  59. public function getProfileId()
  60. {
  61. return bx_get_logged_profile_id();
  62. }
  63. public function getProfileInfo($iUserId = 0)
  64. {
  65. $oProfile = $this->getObjectUser($iUserId);
  66. $oAccount = $oProfile->getAccountObject();
  67. return array(
  68. 'id' => $iUserId,
  69. 'name' => $oProfile->getDisplayName(),
  70. 'email' => $oAccount->getEmail(),
  71. 'link' => $oProfile->getUrl(),
  72. 'icon' => $oProfile->getIcon(),
  73. 'unit' => $oProfile->getUnit(),
  74. 'active' => $oProfile->isActive(),
  75. );
  76. }
  77. public function getObjectUser($iUserId = 0)
  78. {
  79. bx_import('BxDolProfile');
  80. $oProfile = BxDolProfile::getInstance($iUserId);
  81. if (!$oProfile) {
  82. bx_import('BxDolProfileUndefined');
  83. $oProfile = BxDolProfileUndefined::getInstance();
  84. }
  85. return $oProfile;
  86. }
  87. public function getObjectJoin()
  88. {
  89. $sClassName = $this->_oConfig->getClassPrefix() . 'Join';
  90. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  91. bx_import('Join', $this->_aModule);
  92. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  93. }
  94. return $GLOBALS['bxDolClasses'][$sClassName];
  95. }
  96. public function getObjectCart()
  97. {
  98. $sClassName = $this->_oConfig->getClassPrefix() . 'Cart';
  99. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  100. bx_import('Cart', $this->_aModule);
  101. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  102. }
  103. return $GLOBALS['bxDolClasses'][$sClassName];
  104. }
  105. public function getObjectOrders()
  106. {
  107. $sClassName = $this->_oConfig->getClassPrefix() . 'Orders';
  108. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  109. bx_import('Orders', $this->_aModule);
  110. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  111. }
  112. return $GLOBALS['bxDolClasses'][$sClassName];
  113. }
  114. public function getObjectDetails()
  115. {
  116. $sClassName = $this->_oConfig->getClassPrefix() . 'Details';
  117. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  118. bx_import('Details', $this->_aModule);
  119. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  120. }
  121. return $GLOBALS['bxDolClasses'][$sClassName];
  122. }
  123. public function getObjectProvider($sProvider, $mixedVendorId = BX_PAYMENT_EMPTY_ID)
  124. {
  125. $aProvider = is_numeric($mixedVendorId) && (int)$mixedVendorId != BX_PAYMENT_EMPTY_ID ? $this->_oDb->getVendorInfoProvider((int)$mixedVendorId, $sProvider) : $this->_oDb->getProviders(array('type' => 'by_name', 'name' => $sProvider));
  126. $sClassPath = !empty($aProvider['class_file']) ? BX_DIRECTORY_PATH_ROOT . $aProvider['class_file'] : $this->_oConfig->getClassPath() . $aProvider['class_name'] . '.php';
  127. if(empty($aProvider) || !file_exists($sClassPath))
  128. return false;
  129. require_once($sClassPath);
  130. return new $aProvider['class_name']($aProvider);
  131. }
  132. public function callGetPaymentData($mixedModule)
  133. {
  134. $sMethod = 'get_payment_data';
  135. if(!BxDolRequest::serviceExists($mixedModule, $sMethod))
  136. return false;
  137. return BxDolService::call($mixedModule, $sMethod);
  138. }
  139. public function callGetCartItem($mixedModule, $aParams)
  140. {
  141. return BxDolService::call($mixedModule, 'get_cart_item', $aParams);
  142. }
  143. public function callGetCartItems($mixedModule, $aParams)
  144. {
  145. return BxDolService::call($mixedModule, 'get_cart_items', $aParams);
  146. }
  147. public function callRegisterCartItem($mixedModule, $aParams)
  148. {
  149. return BxDolService::call($mixedModule, 'register_cart_item', $aParams);
  150. }
  151. public function callRegisterSubscriptionItem($mixedModule, $aParams)
  152. {
  153. return BxDolService::call($mixedModule, 'register_subscription_item', $aParams);
  154. }
  155. public function callUnregisterCartItem($mixedModule, $aParams)
  156. {
  157. return BxDolService::call($mixedModule, 'unregister_cart_item', $aParams);
  158. }
  159. public function callUnregisterSubscriptionItem($mixedModule, $aParams)
  160. {
  161. return BxDolService::call($mixedModule, 'unregister_subscription_item', $aParams);
  162. }
  163. public function callCancelSubscriptionItem($mixedModule, $aParams)
  164. {
  165. return BxDolService::call($mixedModule, 'cancel_subscription_item', $aParams);
  166. }
  167. }
  168. /** @} */