BxBaseModPaymentModule.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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 serviceGetProviders($iVendorId, $sProvider = '')
  43. {
  44. $aVendorProviders = $this->_oDb->getVendorInfoProviders($iVendorId, $sProvider);
  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. return array(
  67. 'id' => $iUserId,
  68. 'name' => $oProfile->getDisplayName(),
  69. 'link' => $oProfile->getUrl(),
  70. 'icon' => $oProfile->getIcon(),
  71. 'unit' => $oProfile->getUnit(),
  72. 'active' => $oProfile->isActive(),
  73. );
  74. }
  75. public function getObjectUser($iUserId = 0)
  76. {
  77. bx_import('BxDolProfile');
  78. $oProfile = BxDolProfile::getInstance($iUserId);
  79. if (!$oProfile) {
  80. bx_import('BxDolProfileUndefined');
  81. $oProfile = BxDolProfileUndefined::getInstance();
  82. }
  83. return $oProfile;
  84. }
  85. public function getObjectJoin()
  86. {
  87. $sClassName = $this->_oConfig->getClassPrefix() . 'Join';
  88. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  89. bx_import('Join', $this->_aModule);
  90. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  91. }
  92. return $GLOBALS['bxDolClasses'][$sClassName];
  93. }
  94. public function getObjectCart()
  95. {
  96. $sClassName = $this->_oConfig->getClassPrefix() . 'Cart';
  97. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  98. bx_import('Cart', $this->_aModule);
  99. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  100. }
  101. return $GLOBALS['bxDolClasses'][$sClassName];
  102. }
  103. public function getObjectOrders()
  104. {
  105. $sClassName = $this->_oConfig->getClassPrefix() . 'Orders';
  106. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  107. bx_import('Orders', $this->_aModule);
  108. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  109. }
  110. return $GLOBALS['bxDolClasses'][$sClassName];
  111. }
  112. public function getObjectDetails()
  113. {
  114. $sClassName = $this->_oConfig->getClassPrefix() . 'Details';
  115. if(!isset($GLOBALS['bxDolClasses'][$sClassName])) {
  116. bx_import('Details', $this->_aModule);
  117. $GLOBALS['bxDolClasses'][$sClassName] = new $sClassName();
  118. }
  119. return $GLOBALS['bxDolClasses'][$sClassName];
  120. }
  121. public function getObjectProvider($sProvider, $mixedVendorId = BX_PAYMENT_EMPTY_ID)
  122. {
  123. $aProvider = is_numeric($mixedVendorId) && (int)$mixedVendorId != BX_PAYMENT_EMPTY_ID ? $this->_oDb->getVendorInfoProviders((int)$mixedVendorId, $sProvider) : $this->_oDb->getProviders($sProvider);
  124. $sClassPath = !empty($aProvider['class_file']) ? BX_DIRECTORY_PATH_ROOT . $aProvider['class_file'] : $this->_oConfig->getClassPath() . $aProvider['class_name'] . '.php';
  125. if(empty($aProvider) || !file_exists($sClassPath))
  126. return false;
  127. require_once($sClassPath);
  128. return new $aProvider['class_name']($aProvider);
  129. }
  130. public function callGetPaymentData($mixedModule)
  131. {
  132. $sMethod = 'get_payment_data';
  133. if(!BxDolRequest::serviceExists($mixedModule, $sMethod))
  134. return false;
  135. return BxDolService::call($mixedModule, $sMethod);
  136. }
  137. public function callGetCartItem($mixedModule, $aParams)
  138. {
  139. return BxDolService::call($mixedModule, 'get_cart_item', $aParams);
  140. }
  141. public function callGetCartItems($mixedModule, $aParams)
  142. {
  143. return BxDolService::call($mixedModule, 'get_cart_items', $aParams);
  144. }
  145. public function callRegisterCartItem($mixedModule, $aParams)
  146. {
  147. return BxDolService::call($mixedModule, 'register_cart_item', $aParams);
  148. }
  149. }
  150. /** @} */