我想为 list.phtml 上的每个产品打印一些附加数据,这些数据将取决于产品。例如,为每个产品打印带有 New 和 Sale 标签的 html(这只是一个示例)。我想以某种方式将逻辑与 .phtml 文件分开,并保留在 phtml 中只是一个调用。实现它的最佳方法是什么?我还想最小化覆盖核心文件并使其更加独立。我的想法是:
创建我自己的块,在 .phtml 中创建并调用它,并使用 setData 将我的产品传递给那里:
$this->getLayout()->createBlock("namespace/block")-> setTemplate("path/to/template")->setData('product', $_product)
然后在我的块 .php 文件中调用 getProduct() 。但由于某些原因,它不起作用。
对我来说最好看的解决方案,但不确定是否允许。在布局文件中创建新块并使用
getChildHtml('block_name')
. 但我不知道如何传递当前产品或如何使其能够通过我的 .php 文件中的 $this 访问。覆盖产品块并添加我自己的方法,如 getRibbons()。对我来说最糟糕的解决方案,因为这将要求在 .php 块中写入 html 并将覆盖核心块。
我对magento很陌生,也许我缺少一些基本概念?