Вопрос

Файл листика страницы страницы каталогов list.phtml. Анкет Где рендеринг всех продуктов в категории происходит с использованием foreach петля.

Я не понимаю, что price.phtml. Анкет Потому что нет блока для его ручки <catalog_category_default>

В настоящее время, <?php echo $this->getPriceHtml($_product, true) ?> Возвращает цену продукта.

Как этот метод связан с price.phtml ?

Это было полезно?

Решение

Дисплей цен на продукт

Метод getPriceHtml() определяется в классе блока Mage_Catalog_Block_Product_Abstract.

Метод использует рендеринг цены, который зависит от типа продукта:

$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)

Цена рендерера является блоком с соответствующим шаблоном. Оба зависят от типа продукта.

Если для указанного типа продукта не определено блок или шаблон, он по умолчанию catalog/product_price Блок и catalog/product/price.phtml шаблон.

Где определяются визуализаторы цены и шаблоны для типов продуктов?

Ценовые блоки и визуализаторы обычно указываются с использованием Mayout XML, поэтому модули, которые добавляют новые типы продуктов, также могут легко добавить свои собственные рендереры. Например. В комплекте продукт добавляет свой ценовой рендеринг следующим образом в bundle.xml Файл макета:

<default>
    <reference name="catalog_product_price_template">
        <action method="addPriceBlockType">
            <type>bundle</type>
            <block>bundle/catalog_product_price</block>
            <template>bundle/catalog/product/price.phtml</template>
        </action>
    </reference>
</default>

Шаблоны или визуализаторы пользовательских цен

Используя тот же механизм, также возможно переопределить рендеристы по умолчанию. Если вы хотите просто изменить шаблон и сохранить тип блока цен по умолчанию, просто вызовите addPriceBlockType В файле макета с блоком по умолчанию (см. Выше) и ваш шаблон.

Рендеринг ценовой блок

Код, который фактически визуализирует блок цены, выглядит следующим образом:

$this->_preparePriceRenderer($type_id)
    ->setProduct($product)
    ->setDisplayMinimalPrice($displayMinimalPrice)
    ->setIdSuffix($idSuffix)
    ->toHtml();

А $displayMinimalPrice а также $idSuffix переменные являются необязательными аргументами для getPriceHtml метод

public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')

А $idSuffix используется в шаблоне цен для завершения идентификатора CSS <span> Например, тег окружает фактическую цену:

<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top