如何在我的Magento模块中调用getChildHtml函数

5
我创建了一个模块和块。
在默认主题的catalog.xml文件中,我使用以下代码创建了一个块:<block type="mymodule/mymodule" name="my_block" template="mymodule/mymodule.phtml"/>
我通过getChildHtml('my_block')方法从默认主题的catalog/product/view.phtml文件调用这个块,并显示来自mymodule.phtml文件的文本。但我不想在view.phtml之上的地方调用该块,有没有办法在mymodule的任何位置调用上述块以显示mymodule.phtml文件中的文本?

在布局XML文件中(可能是catalog.xml),查找my_block,并尝试将其添加到您的模板中。这是您想在模块模板中称呼它的方式吗?还是您想在类内部调用它? - Dreaded semicolon
这取决于你想要在哪里显示它。我认为list.phtml没有一些块钩子,因为会影响性能。所以你应该更改主题文件。你可以创建自己的主题或将其添加到app/design/frontend/default/default/catalog/product/ - Sergii Stotskyi
可怕的分号和Serjio感谢您的回复。实际上,我已经在catalog.xml中创建了my_block,它使用我的模块phtml模板文件,并且该模板文件在产品类别页面中显示,并且当我从list.phtml页面调用getChildhtml(“my_block”)时它可以正常工作。但是,还有其他方法可以从我的模块文件中调用该块吗? - mahesh kajale
你想在自己的模块中调用my_block吗?可以通过PHP代码或XML实现。 - Mahmood Rehman
2个回答

0

调用方法getChildHtml()会加载传递给该方法的名称对应的子块的HTML。

将您的块放入布局文件中的一个引用区域,例如左侧、右侧和内容,并使用分配的名称调用它。

尝试一下,

<?php echo $this->getChildHtml('my_block') ?>

0
如果您想在不使用getChildHtml()的情况下调用您的块,则需要将其放入内容块(如left、right、content等),它将自动呈现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接