![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-sales/Block/Items/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Block\Items; use Magento\Sales\ViewModel\ItemRendererTypeResolverInterface; /** * Abstract block for display sales (quote/order/invoice etc.) items * * @author Magento Core Team <[email protected]> * @SuppressWarnings(PHPMD.NumberOfChildren) */ class AbstractItems extends \Magento\Framework\View\Element\Template { /** * Block alias fallback */ const DEFAULT_TYPE = 'default'; /** * Retrieve item renderer block * * @param string $type * @return \Magento\Framework\View\Element\AbstractBlock * @throws \RuntimeException * @SuppressWarnings(PHPMD.NPathComplexity) */ public function getItemRenderer($type) { /** @var \Magento\Framework\View\Element\RendererList $rendererList */ $rendererList = $this->getRendererListName() ? $this->getLayout()->getBlock( $this->getRendererListName() ) : $this->getChildBlock( 'renderer.list' ); if (!$rendererList) { throw new \RuntimeException('Renderer list for block "' . $this->getNameInLayout() . '" is not defined'); } $overriddenTemplates = $this->getOverriddenTemplates() ?: []; $template = isset($overriddenTemplates[$type]) ? $overriddenTemplates[$type] : $this->getRendererTemplate(); $renderer = $rendererList->getRenderer($type, self::DEFAULT_TYPE, $template); $renderer->setRenderedBlock($this); return $renderer; } /** * Prepare item before output * * @param \Magento\Framework\View\Element\AbstractBlock $renderer * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function _prepareItem(\Magento\Framework\View\Element\AbstractBlock $renderer) { return $this; } /** * Return product type for quote/order item * * @param \Magento\Framework\DataObject $item * @return string */ protected function _getItemType(\Magento\Framework\DataObject $item) { if ($item->getOrderItem()) { $type = $item->getOrderItem()->getProductType(); } elseif ($item instanceof \Magento\Quote\Model\Quote\Address\Item) { $type = $item->getQuoteItem()->getProductType(); } else { $type = $item->getProductType(); } return $type; } /** * Get item row html * * @param \Magento\Framework\DataObject $item * @return string */ public function getItemHtml(\Magento\Framework\DataObject $item) { $type = $this->_getItemType($item); $itemRendererTypeResolver = $this->getData($type . '_renderer_type_resolver'); if ($itemRendererTypeResolver instanceof ItemRendererTypeResolverInterface) { $type = $itemRendererTypeResolver->resolve($item) ?? $type; } $block = $this->getItemRenderer($type)->setItem($item); $this->_prepareItem($block); return $block->toHtml(); } }