我正在尝试研究如何创建自定义的phtml文件以包含在view.phtml上(并最终从任何默认的Magento phtml文件中调用)。
我创建了一个单独的phtml文件,其中包含我想要的内容,名为productbadges.phtml
这将作为最后一项提取
我理解标注通常是
<?php echo $this->getChildHtml('phtmlfilename') ?>
但是我知道我需要在catalog.xml中添加一些内容,以便Magento识别出标注并可以获取正确的文件。但我没有正确理解Magento的XML语法。
有人可以帮忙吗?
答案 0 :(得分:6)
vicch的回应是正确的做法。
但是,知道有另一种方法也很有帮助:
$block = $this->getLayout()->createBlock(
'Mage_Core_Block_Template',
'choose_a_block_name',
array('template' => 'folder/myphtmlfile.phtml')
);
我发布这是为了一般知识。这不是可接受的方式,因为它与Magento模板和块的使用方式不一致。
答案 1 :(得分:6)
你可以使用
<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('goodtest/test.phtml')->toHtml(); ?>
另见:
How do i call .phtml block at specfic page in magento?
和
want to call one phtml file in another phtml file using anchor tag
答案 2 :(得分:5)
鉴于您提供的信息,我只能提供一般解决方案。
首先,您需要找到此view.phtml的布局XML。你应该寻找类似的东西:
<block type="..." name="..." ... template="../view.phtml">
要直接在包装块下添加新模板的声明,它应该是:
<block type="..." name="..." ... template="../view.phtml">
<block type="..." name="phtmlfilename" template="../phtmlfilename.phtml"/>
...
</block>
也可以在其他地方引用outter块:
<reference name="[name_of_view.phtml_block]">
<block type="..." name="phtmlfilename" template="../phtmlfilename.phtml"/>
</reference>
新模板的类型是类名,应为core/template
或其子类型。
答案 3 :(得分:0)
这个问题的答案是代码,只需更改&#34;目录/ acc_drop.phtml&#34;到你的文件路径名。
<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('directory/acc_drop.phtml')->toHtml(); ?>