b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / vendor / magento / framework / Pricing /
Filename/home/dev2.destoffenstraat.com/vendor/magento/framework/Pricing/Render.php
Size3.52 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 03:56
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Framework\Pricing;

use Magento\Framework\Pricing\Amount\AmountInterface;
use Magento\Framework\Pricing\Price\PriceInterface;
use Magento\Framework\Pricing\Render\Layout;
use Magento\Framework\View\Element\AbstractBlock;
use Magento\Framework\View\Element\Template;

/**
* Base price render
*
* @api
* @method string getPriceRenderHandle()
*
* @api
* @since 100.0.2
*/
class Render extends AbstractBlock
{
/**#@+
* Zones where prices displaying can be configured
*/
const ZONE_ITEM_VIEW = 'item_view';
const ZONE_ITEM_LIST = 'item_list';
const ZONE_ITEM_OPTION = 'item_option';
const ZONE_SALES = 'sales';
const ZONE_EMAIL = 'email';
const ZONE_CART = 'cart';
const ZONE_DEFAULT = null;
/**#@-*/

/**#@-*/
protected $defaultTypeRender = 'default';

/**
* Price layout
*
* @var Layout
*/
protected $priceLayout;

/**
* Constructor
*
* @param Template\Context $context
* @param Layout $priceLayout
* @param array $data
*/
public function __construct(
Template\Context $context,
Layout $priceLayout,
array $data = []
) {
$this->priceLayout = $priceLayout;
parent::__construct($context, $data);
}

/**
* Prepare layout
*
* @return $this
*/
protected function _prepareLayout()
{
$this->priceLayout->addHandle($this->getPriceRenderHandle());
$this->priceLayout->loadLayout();
return parent::_prepareLayout();
}

/**
* Render price
*
* @param string $priceCode
* @param SaleableInterface $saleableItem
* @param array $arguments
* @return string
* @throws \InvalidArgumentException
* @throws \RuntimeException
*/
public function render($priceCode, SaleableInterface $saleableItem, array $arguments = [])
{
$useArguments = array_replace($this->_data, $arguments);

/** @var \Magento\Framework\Pricing\Render\RendererPool $rendererPool */
$rendererPool = $this->priceLayout->getBlock('render.product.prices');
if (!$rendererPool) {
throw new \RuntimeException('Wrong Price Rendering layout configuration. Factory block is missed');
}

// obtain concrete Price Render
$priceRender = $rendererPool->createPriceRender($priceCode, $saleableItem, $useArguments);
return $priceRender->toHtml();
}

/**
* Render price amount
*
* @param AmountInterface $amount
* @param PriceInterface $price
* @param SaleableInterface $saleableItem
* @param array $arguments
* @return string
* @throws \RuntimeException
*/
public function renderAmount(
AmountInterface $amount,
PriceInterface $price,
SaleableInterface $saleableItem = null,
array $arguments = []
) {
$useArguments = array_replace($this->_data, $arguments);

/** @var \Magento\Framework\Pricing\Render\RendererPool $rendererPool */
$rendererPool = $this->priceLayout->getBlock('render.product.prices');
if (!$rendererPool) {
throw new \RuntimeException('Wrong Price Rendering layout configuration. Factory block is missed');
}

// obtain concrete Amount Render
$amountRender = $rendererPool->createAmountRender($amount, $saleableItem, $price, $useArguments);
return $amountRender->toHtml();
}
}