BxBaseModPaymentCart.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 BxBaseModPaymentCart extends BxDol
  12. {
  13. protected $MODULE;
  14. protected $_oModule;
  15. function __construct()
  16. {
  17. parent::__construct();
  18. $this->_oModule = BxDolModule::getInstance($this->MODULE);
  19. }
  20. public function serviceGetCartLink()
  21. {
  22. if(!$this->_oModule->isLogged())
  23. return '';
  24. return $this->_oModule->_oConfig->getUrl('cart');
  25. }
  26. public function serviceGetCartJs($bWrapped = true)
  27. {
  28. return $this->_oModule->_oTemplate->displayCartJs($bWrapped);
  29. }
  30. public function serviceGetAddToCartLink($iVendorId, $mixedModuleId, $iItemId, $iItemCount, $bNeedRedirect = false)
  31. {
  32. $iModuleId = $this->_oModule->_oConfig->getModuleId($mixedModuleId);
  33. if(empty($iModuleId))
  34. return '';
  35. return $this->_oModule->_oTemplate->displayAddToCartLink($iVendorId, $iModuleId, $iItemId, $iItemCount, $bNeedRedirect);
  36. }
  37. public function serviceGetAddToCartJs($iVendorId, $mixedModuleId, $iItemId, $iItemCount, $bNeedRedirect = false, $bWrapped = true)
  38. {
  39. $iModuleId = $this->_oModule->_oConfig->getModuleId($mixedModuleId);
  40. if(empty($iModuleId))
  41. return '';
  42. return $this->_oModule->_oTemplate->displayAddToCartJs($iVendorId, $iModuleId, $iItemId, $iItemCount, $bNeedRedirect, $bWrapped);
  43. }
  44. public function serviceGetCartItemDescriptor($iVendorId, $iModuleId, $iItemId, $iItemCount)
  45. {
  46. return $this->_oModule->_oConfig->descriptorA2S(array($iVendorId, $iModuleId, $iItemId, $iItemCount));
  47. }
  48. public function serviceGetCartItemsCount($iUserId = 0)
  49. {
  50. $iUserId = !empty($iUserId) ? $iUserId : $this->_oModule->getProfileId();
  51. if(empty($iUserId))
  52. return 0;
  53. $aInfo = $this->getInfo($iUserId);
  54. $iCount = 0;
  55. foreach($aInfo as $iVendorId => $aVendorCart)
  56. $iCount += $aVendorCart['items_count'];
  57. return $iCount;
  58. }
  59. protected function _parseByVendor($iUserId)
  60. {
  61. $sItems = $this->_oModule->_oDb->getCartItems($iUserId);
  62. return $this->_reparseBy($this->_oModule->_oConfig->descriptorsM2A($sItems), 'vendor_id');
  63. }
  64. protected function _parseByModule($iUserId)
  65. {
  66. $sItems = $this->_oModule->_oDb->getCartItems($iUserId);
  67. return $this->_reparseBy($this->_oModule->_oConfig->descriptorsM2A($sItems), 'module_id');
  68. }
  69. protected function _reparseBy($aItems, $sKey)
  70. {
  71. $aResult = array();
  72. foreach($aItems as $aItem)
  73. if(isset($aItem[$sKey]))
  74. $aResult[$aItem[$sKey]][] = $aItem;
  75. return $aResult;
  76. }
  77. }
  78. /** @} */