繁体   English   中英

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

[英]Magento Including a CUSTOM phtml file in view.phtml

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

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

这将作为最后一项提取

我理解标注通常是

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

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

有人可以帮忙吗?

您可以使用

<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('goodtest/test.phtml')->toHtml(); ?>

另见:

如何在magento的specfic页面调用.phtml块?

想要使用锚标记在另一个phtml文件中调用一个phtml文件

vicch的回应是正确的做法。

但是,知道有另一种方法也很有帮助:

$block = $this->getLayout()->createBlock(
      'Mage_Core_Block_Template',
      'choose_a_block_name',
       array('template' => 'folder/myphtmlfile.phtml')
 );

我发布这个是为了一般知识。 这不是可接受的方式,因为它与Magento模板和块的使用方式不一致。

鉴于您提供的信息,我只能提供一般解决方案。

首先,您需要找到此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或其子类型。

这个问题的答案在代码下面,只需将“directory / acc_drop.phtml”更改为您的文件路径名。

    <?php echo $this->getLayout()->createBlock('core/template')->setTemplate('directory/acc_drop.phtml')->toHtml(); ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM