BxDolPayments.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  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 TridentCore Trident Core
  7. * @{
  8. */
  9. class BxDolPayments extends BxDol implements iBxDolSingleton
  10. {
  11. protected $_oDb;
  12. protected $_aObjects;
  13. protected $_sActive;
  14. public function __construct()
  15. {
  16. parent::__construct();
  17. $this->_oDb = new BxDolPaymentsQuery();
  18. $this->_aObjects = $this->_oDb->getObjects();
  19. $this->_sActive = getParam('sys_default_payment');
  20. }
  21. static public function getInstance()
  22. {
  23. if(!isset($GLOBALS['bxDolClasses']['BxDolPayments']))
  24. $GLOBALS['bxDolClasses']['BxDolPayments'] = new BxDolPayments();
  25. return $GLOBALS['bxDolClasses']['BxDolPayments'];
  26. }
  27. public function setActive($sActive)
  28. {
  29. $this->_sActive = $sActive;
  30. }
  31. public function getActive()
  32. {
  33. return $this->_sActive;
  34. }
  35. public function isActive()
  36. {
  37. if(empty($this->_sActive))
  38. return false;
  39. if(!BxDolModuleQuery::getInstance()->isModuleByName($this->_sActive))
  40. return false;
  41. return true;
  42. }
  43. public function getPayments()
  44. {
  45. $aPayments = array(
  46. '' => _t('_Select_one')
  47. );
  48. foreach($this->_aObjects as $aObject) {
  49. if(empty($aObject) || !is_array($aObject))
  50. continue;
  51. $aPayments[$aObject['object']] = _t($aObject['title']);
  52. }
  53. return $aPayments;
  54. }
  55. public function updateDependentModules($sModule = 'all', $bInstall = true)
  56. {
  57. if(!BxDolRequest::serviceExists($this->_sActive, 'update_dependent_modules'))
  58. return;
  59. BxDolService::call($this->_sActive, 'update_dependent_modules', array($sModule, $bInstall));
  60. }
  61. public function getProvidersCart($iVendorId)
  62. {
  63. if(!BxDolRequest::serviceExists($this->_sActive, 'get_providers_cart'))
  64. return array();
  65. $aSrvParams = array($iVendorId);
  66. return BxDolService::call($this->_sActive, 'get_providers_cart', $aSrvParams);
  67. }
  68. public function getOption($sOption)
  69. {
  70. if(!BxDolRequest::serviceExists($this->_sActive, 'get_option'))
  71. return '';
  72. return BxDolService::call($this->_sActive, 'get_option', array($sOption));
  73. }
  74. public function getOrdersUrl()
  75. {
  76. if(!BxDolRequest::serviceExists($this->_sActive, 'get_orders_url', 'Orders'))
  77. return '';
  78. return BxDolService::call($this->_sActive, 'get_orders_url', array(), 'Orders');
  79. }
  80. public function getOrdersCount($sType)
  81. {
  82. if(!BxDolRequest::serviceExists($this->_sActive, 'get_orders_count_new', 'Orders'))
  83. return array();
  84. $aSrvParams = array($sType);
  85. return BxDolService::call($this->_sActive, 'get_orders_count_new', $aSrvParams, 'Orders');
  86. }
  87. public function getCartUrl($iVendor = 0)
  88. {
  89. if(!BxDolRequest::serviceExists($this->_sActive, 'get_cart_url', 'Cart'))
  90. return '';
  91. return BxDolService::call($this->_sActive, 'get_cart_url', array($iVendor), 'Cart');
  92. }
  93. public function getCartItemsCount()
  94. {
  95. if(!BxDolRequest::serviceExists($this->_sActive, 'get_cart_items_count', 'Cart'))
  96. return array();
  97. $aSrvParams = array();
  98. return BxDolService::call($this->_sActive, 'get_cart_items_count', $aSrvParams, 'Cart');
  99. }
  100. public function getCartItemDescriptor($iVendorId, $iModuleId, $iItemId, $iItemCount)
  101. {
  102. if(!BxDolRequest::serviceExists($this->_sActive, 'get_cart_item_descriptor', 'Cart'))
  103. return '';
  104. $aSrvParams = array($iVendorId, $iModuleId, $iItemId, $iItemCount);
  105. return BxDolService::call($this->_sActive, 'get_cart_item_descriptor', $aSrvParams, 'Cart');
  106. }
  107. /**
  108. * Returns cart JavaScript code which should be included in the page to make "Add To Cart" and "Subscribe" buttons work properly.
  109. */
  110. public function getCartJs($bWrapped = true)
  111. {
  112. if(!BxDolRequest::serviceExists($this->_sActive, 'get_cart_js', 'Cart'))
  113. return '';
  114. $aSrvParams = array($bWrapped);
  115. return BxDolService::call($this->_sActive, 'get_cart_js', $aSrvParams, 'Cart');
  116. }
  117. /**
  118. * Adds an item to cart in background mode.
  119. */
  120. public function addToCart($iVendorId, $mixedModuleId, $iItemId, $iItemCount)
  121. {
  122. if(!BxDolRequest::serviceExists($this->_sActive, 'add_to_cart', 'Cart'))
  123. return array();
  124. $aSrvParams = array($iVendorId, $mixedModuleId, $iItemId, $iItemCount);
  125. return BxDolService::call($this->_sActive, 'add_to_cart', $aSrvParams, 'Cart');
  126. }
  127. /**
  128. * Returns "Add To Cart" JavaScript code to use in onclick attribute.
  129. */
  130. public function getAddToCartJs($iVendorId, $mixedModuleId, $iItemId, $iItemCount, $bNeedRedirect = false, $bWrapped = true)
  131. {
  132. if(!BxDolRequest::serviceExists($this->_sActive, 'get_add_to_cart_js', 'Cart'))
  133. return array();
  134. $aSrvParams = array($iVendorId, $mixedModuleId, $iItemId, $iItemCount, $bNeedRedirect, $bWrapped);
  135. return BxDolService::call($this->_sActive, 'get_add_to_cart_js', $aSrvParams, 'Cart');
  136. }
  137. /**
  138. * Returns the whole "Add To Cart" link including HTML tag BUTTON and cart JavaScript code.
  139. */
  140. public function getAddToCartLink($iVendorId, $mixedModuleId, $iItemId, $iItemCount, $bNeedRedirect = false)
  141. {
  142. if(!BxDolRequest::serviceExists($this->_sActive, 'get_add_to_cart_link', 'Cart'))
  143. return '';
  144. $aSrvParams = array($iVendorId, $mixedModuleId, $iItemId, $iItemCount, $bNeedRedirect);
  145. return BxDolService::call($this->_sActive, 'get_add_to_cart_link', $aSrvParams, 'Cart');
  146. }
  147. public function getSubscribeUrl($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
  148. {
  149. if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_url', 'Cart'))
  150. return '';
  151. return BxDolService::call($this->_sActive, 'get_subscribe_url', array($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount), 'Cart');
  152. }
  153. /**
  154. * Returns "Subscribe" JavaScript code to use in onclick attribute.
  155. */
  156. public function getSubscribeJs($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1, $bWrapped = true)
  157. {
  158. if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_js', 'Cart'))
  159. return array();
  160. $aSrvParams = array($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount, $bWrapped);
  161. return BxDolService::call($this->_sActive, 'get_subscribe_js', $aSrvParams, 'Cart');
  162. }
  163. /**
  164. * Returns the whole "Subscribe" link including HTML tag BUTTON and cart JavaScript code.
  165. */
  166. public function getSubscribeLink($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount = 1)
  167. {
  168. if(!BxDolRequest::serviceExists($this->_sActive, 'get_subscribe_link', 'Cart'))
  169. return '';
  170. $aSrvParams = array($iVendorId, $sVendorProvider, $mixedModuleId, $iItemId, $iItemCount);
  171. return BxDolService::call($this->_sActive, 'get_subscribe_link', $aSrvParams, 'Cart');
  172. }
  173. public function initializeCheckout($iVendorId, $sProvider, $aItems = array())
  174. {
  175. if(!BxDolRequest::serviceExists($this->_sActive, 'initialize_checkout'))
  176. return '';
  177. $aSrvParams = array($iVendorId, $sProvider, $aItems);
  178. return BxDolService::call($this->_sActive, 'initialize_checkout', $aSrvParams);
  179. }
  180. public function prolongSubscription($sOrderId)
  181. {
  182. if(!BxDolRequest::serviceExists($this->_sActive, 'prolong_subscription'))
  183. return '';
  184. $aSrvParams = array($sOrderId);
  185. return BxDolService::call($this->_sActive, 'prolong_subscription', $aSrvParams);
  186. }
  187. }
  188. /** @} */