我需要在我的相关产品上显示产品选项:
在list.phtml中,我为每个可配置的产品显示了它的选项(option表示像color这样的属性),代码如下:
<?php if($_product->getTypeId() == 'configurable'): ?>
<?php echo $this->getOptionsHtml($_product); ?>
<?php endif; ?>
字符串
结果:没有!
这里有什么问题?为什么在相关的.phtml不工作?
getOptionsHtml-此函数来自Belvg ColorSwatchPro扩展。
<?php
class Belvg_ColorSwatchPro_Block_Product_List extends Mage_Catalog_Block_Product_List
{
public function getOptionsHtml($_product)
{ die('sss');
$block = $this->getLayout()->createBlock(
'Belvg_ColorSwatchPro_Block_Product_List_Options',
'product_list_options',
array('template' => 'colorswatch/product/list/options.phtml'
));
$block->setProduct($_product);
return $block->toHtml();
}
}
型
1条答案
按热度按时间qyuhtwio1#
所以现在我将试着解释为什么会这样。
Magento中的所有模板都被分配给一些块。例如,在您的情况下,
list.phtml
使用Belvg_ColorSwatchPro_Block_Product_List
块。因此,如果在模板中调用构造$this->getOptionsHtml($_product);
,则意味着您调用Belvg_ColorSwatchPro_Block_Product_List
块的方法。但是当你在related.phtml中使用
$this->getOptionsHtml($_product)
时,它不起作用,因为这个模板被分配给没有方法getOptionsHtml
的块Mage_Catalog_Block_Product_List_Related
。为了使其可行,我可以建议您最简单的方法。在相关的.phtml模板中,而不是
字符串
使用
型
希望对你有帮助。