Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Items.php
Go to the documentation of this file.
1 <?php
13 
19 {
25  protected $_coreRegistry = null;
26 
32  private $itemsPerPage;
33 
37  private $itemCollectionFactory;
38 
42  private $itemCollection;
43 
50  public function __construct(
51  \Magento\Framework\View\Element\Template\Context $context,
52  \Magento\Framework\Registry $registry,
53  array $data = [],
54  \Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory $itemCollectionFactory = null
55  ) {
56  $this->_coreRegistry = $registry;
57  $this->itemCollectionFactory = $itemCollectionFactory ?: \Magento\Framework\App\ObjectManager::getInstance()
58  ->get(\Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory::class);
59  parent::__construct($context, $data);
60  }
61 
68  protected function _prepareLayout()
69  {
70  $this->itemsPerPage = $this->_scopeConfig->getValue('sales/orders/items_per_page');
71 
72  $this->itemCollection = $this->itemCollectionFactory->create();
73  $this->itemCollection->setOrderFilter($this->getOrder());
74  $this->itemCollection->filterByParent(null);
75 
77  $pagerBlock = $this->getChildBlock('sales_order_item_pager');
78  if ($pagerBlock) {
79  $pagerBlock->setLimit($this->itemsPerPage);
80  //here pager updates collection parameters
81  $pagerBlock->setCollection($this->itemCollection);
82  $pagerBlock->setAvailableLimit([$this->itemsPerPage]);
83  $pagerBlock->setShowAmounts($this->isPagerDisplayed());
84  }
85 
86  return parent::_prepareLayout();
87  }
88 
96  public function isPagerDisplayed()
97  {
98  $pagerBlock = $this->getChildBlock('sales_order_item_pager');
99  return $pagerBlock && ($this->itemCollection->getSize() > $this->itemsPerPage);
100  }
101 
109  public function getItems()
110  {
111  return $this->itemCollection->getItems();
112  }
113 
121  public function getPagerHtml()
122  {
124  $pagerBlock = $this->getChildBlock('sales_order_item_pager');
125  return $pagerBlock ? $pagerBlock->toHtml() : '';
126  }
127 
133  public function getOrder()
134  {
135  return $this->_coreRegistry->registry('current_order');
136  }
137 }
__construct(\Magento\Framework\View\Element\Template\Context $context, \Magento\Framework\Registry $registry, array $data=[], \Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory $itemCollectionFactory=null)
Definition: Items.php:50