Magento在view.phtml中包含一个CUSTOM phtml文件

时间:2012-01-18 11:57:04

标签: magento php

我正在尝试研究如何创建自定义的phtml文件以包含在view.phtml上(并最终从任何默认的Magento phtml文件中调用)。

我创建了一个单独的phtml文件,其中包含我想要的内容,名为productbadges.phtml

这将作为最后一项提取

我理解标注通常是

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

但是我知道我需要在catalog.xml中添加一些内容,以便Magento识别出标注并可以获取正确的文件。但我没有正确理解Magento的XML语法。

有人可以帮忙吗?

4 个答案:

答案 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(); ?>