Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractItems.php
Go to the documentation of this file.
1 <?php
7 
15 {
19  const DEFAULT_TYPE = 'default';
20 
29  public function getItemRenderer($type)
30  {
32  $rendererList = $this->getRendererListName() ? $this->getLayout()->getBlock(
33  $this->getRendererListName()
34  ) : $this->getChildBlock(
35  'renderer.list'
36  );
37  if (!$rendererList) {
38  throw new \RuntimeException('Renderer list for block "' . $this->getNameInLayout() . '" is not defined');
39  }
40  $overriddenTemplates = $this->getOverriddenTemplates() ?: [];
41  $template = isset($overriddenTemplates[$type]) ? $overriddenTemplates[$type] : $this->getRendererTemplate();
42  $renderer = $rendererList->getRenderer($type, self::DEFAULT_TYPE, $template);
43  $renderer->setRenderedBlock($this);
44  return $renderer;
45  }
46 
54  protected function _prepareItem(\Magento\Framework\View\Element\AbstractBlock $renderer)
55  {
56  return $this;
57  }
58 
65  protected function _getItemType(\Magento\Framework\DataObject $item)
66  {
67  if ($item->getOrderItem()) {
68  $type = $item->getOrderItem()->getProductType();
69  } elseif ($item instanceof \Magento\Quote\Model\Quote\Address\Item) {
70  $type = $item->getQuoteItem()->getProductType();
71  } else {
72  $type = $item->getProductType();
73  }
74  return $type;
75  }
76 
83  public function getItemHtml(\Magento\Framework\DataObject $item)
84  {
85  $type = $this->_getItemType($item);
86 
87  $block = $this->getItemRenderer($type)->setItem($item);
88  $this->_prepareItem($block);
89  return $block->toHtml();
90  }
91 }
_prepareItem(\Magento\Framework\View\Element\AbstractBlock $renderer)
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$block
Definition: block.php:8
$type
Definition: item.phtml:13
getItemHtml(\Magento\Framework\DataObject $item)
_getItemType(\Magento\Framework\DataObject $item)
$template
Definition: export.php:12