Magento用getChildHtml调用一个块

时间:2013-05-16 18:46:42

标签: magento layout block

请遵循以下代码,该代码取自我的Magento Commerce主题:

从layout / page.xml中提取

<block type="page/html_header" name="header" as="header">
    <block type="page/template_links" name="top.links" as="topLinks"/>
    <block type="page/switch" name="store_language" as="store_language" template="page/switch/languages.phtml"/>
    <block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>
    <block type="directory/currency" name="store_currency_selector" as="store_currency_selector" template="directory/currency_top.phtml"/>
    <block type="core/text_list" name="top.menu" as="topMenu" translate="label">
        <label>Navigation Bar</label>
        <block type="page/template_links" name="top.links.mobile" as="topLinksMobile"/>
        <block type="checkout/cart_sidebar" name="cart_sidebar_mobile" as="cartSidebarMobile" template="checkout/cart/topbar.phtml"/>
    </block>
    <block type="page/html_wrapper" name="top.container" as="topContainer" translate="label">
        <label>Page Header</label>
        <action method="setElementClass"><value>top-container</value></action>
    </block>
    <block type="checkout/cart_sidebar" name="cart_sidebar" as="topcart" template="checkout/cart/topbar.phtml"/>
</block>

从template / catalog / navigation / top.phtml中提取

<li class="level0 nav-2 active level-top first parent">
    <a href="javascript:;">ACCOUNT</a>
    <?php echo $this->getParentBlock()->getChildHtml('topLinksMobile'); ?>
</li>
<li class="level0 nav-3 active level-top first parent">
    <a href="javascript:;">CART</a>
    <?php echo $this->getChildHtml('cartSidebarMobile'); ?>
</li>

基本上,我正在尝试做的是在“topMenu”块中创建两个子块,然后使用“getChildHtml”函数将它们打印到模板中。

不幸的是,我的函数调用失败了,而在top.phtml生成的内容之前加载了两个块。

请告诉我一些关于我做错事的建议。

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

在以下文件中尝试调用函数 template/page/html/topmenu.phtml

答案 1 :(得分:0)

我已经进步了一点。

阅读:Magento - display block but only show when I call it with getChildHtml

和:Understanding Magento Block and Block Type

我了解 core / text_list 会自动打印内容,因此我将类型更改为“page / html_wrapper”。

问题是现在这两个元素的内容是重复的。一次是在top.phtml的内容之前,第二次是在调用getChildHtml时。

任何想法都会非常感激。