目录产品列表页面的模板文件是list.phtml。使用foreach循环进行类别中所有产品的渲染。
我对price.phtml的渲染感到困惑。因为句柄中没有阻止
现在,<?php echo $this->getPriceHtml($_product, true) ?>
会返回产品的价格。
此方法如何与price.phtml相关联?
请说清楚。感谢
答案 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();
}