如何在目录产品列表页面中呈现price.phtml?

时间:2013-06-14 06:30:43

标签: magento

目录产品列表页面的模板文件是list.phtml。使用foreach循环进行类别中所有产品的渲染。

我对price.phtml的渲染感到困惑。因为句柄中没有阻止

现在,<?php echo $this->getPriceHtml($_product, true) ?>会返回产品的价格。

此方法如何与price.phtml相关联?
请说清楚。感谢

1 个答案:

答案 0 :(得分:0)

与list.phtml一起使用的Block类是Mage_Catalog_Block_Product_List,因此方法getPriceHtml位于此类或某些类的父级中。在这种情况下,方法碰巧在Mage_Catalog_Block_Product_Abstract,我们的块类的直接父级:

public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
{
    $type_id = $product->getTypeId();
    if (Mage::helper('catalog')->canApplyMsrp($product)) {
        $realPriceHtml = $this->_preparePriceRenderer($type_id)
            ->setProduct($product)
            ->setDisplayMinimalPrice($displayMinimalPrice)
            ->setIdSuffix($idSuffix)
            ->toHtml();
        $product->setAddToCartUrl($this->getAddToCartUrl($product));
        $product->setRealPriceHtml($realPriceHtml);
        $type_id = $this->_mapRenderer;
    }

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