Link.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Checkout\Block\Cart;
  7. /**
  8. * "My Cart" link
  9. *
  10. * @SuppressWarnings(PHPMD.DepthOfInheritance)
  11. */
  12. class Link extends \Magento\Framework\View\Element\Html\Link
  13. {
  14. /**
  15. * @var \Magento\Framework\Module\Manager
  16. */
  17. protected $_moduleManager;
  18. /**
  19. * @var \Magento\Checkout\Helper\Cart
  20. */
  21. protected $_cartHelper;
  22. /**
  23. * @param \Magento\Framework\View\Element\Template\Context $context
  24. * @param \Magento\Framework\Module\Manager $moduleManager
  25. * @param \Magento\Checkout\Helper\Cart $cartHelper
  26. * @param array $data
  27. * @codeCoverageIgnore
  28. */
  29. public function __construct(
  30. \Magento\Framework\View\Element\Template\Context $context,
  31. \Magento\Framework\Module\Manager $moduleManager,
  32. \Magento\Checkout\Helper\Cart $cartHelper,
  33. array $data = []
  34. ) {
  35. $this->_cartHelper = $cartHelper;
  36. parent::__construct($context, $data);
  37. $this->_moduleManager = $moduleManager;
  38. }
  39. /**
  40. * @return string
  41. * @codeCoverageIgnore
  42. */
  43. public function getLabel()
  44. {
  45. return $this->_createLabel($this->_getItemCount());
  46. }
  47. /**
  48. * @return string
  49. * @codeCoverageIgnore
  50. */
  51. public function getHref()
  52. {
  53. return $this->getUrl('checkout/cart');
  54. }
  55. /**
  56. * Render block HTML
  57. *
  58. * @return string
  59. */
  60. protected function _toHtml()
  61. {
  62. if (!$this->_moduleManager->isOutputEnabled('Magento_Checkout')) {
  63. return '';
  64. }
  65. return parent::_toHtml();
  66. }
  67. /**
  68. * Count items in cart
  69. *
  70. * @return int
  71. */
  72. protected function _getItemCount()
  73. {
  74. $count = $this->getSummaryQty();
  75. return $count ? $count : $this->_cartHelper->getSummaryCount();
  76. }
  77. /**
  78. * Create link label based on cart item quantity
  79. *
  80. * @param int $count
  81. * @return \Magento\Framework\Phrase
  82. */
  83. protected function _createLabel($count)
  84. {
  85. if ($count == 1) {
  86. return __('My Cart (1 item)');
  87. } elseif ($count > 0) {
  88. return __('My Cart (%1 items)', $count);
  89. } else {
  90. return __('My Cart');
  91. }
  92. }
  93. }