问题:Magento:将块 top.menu 从标题移动到内容

如何以编程方式将块top.menu从标题移动到 magento 主页的内容(或上面)

应编辑哪些 xml 文件以及应将代码移动到何处

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

至。我是 Magento 的新手,所以我不知道从哪里开始。

解答

这是我会这样做的方式:

首先,您需要在 app/design/frontend/default/YOUR THEME/layout 中创建一个 local.xml 文件,以免影响核心文件。

在 local.xml 文件中输入:

<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<action method="unsetChild"><name>top.menu</name></action>  

<reference name="content">
 <block type="core/text_list" name="top.menu" as="topMenu" translate="label">
                <label>Navigation Bar</label>
                <block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml" />
        </block>
    </reference>
</default>

在这里,您从标准布局中取消设置块,然后在内容块中重置它。您可以将站点的所有布局更改放在 local.xml 中,这样它们就在一个地方并且您正在编辑核心文件 - 只需在核心 xml 文件中找到要调整的块并将其添加到 local.xml (如果您想了解更多信息,Google 上有大量关于 local.xml 文件的信息)。

此外,您可能需要注释掉 header.phtml 中的行:

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

<?php // echo $this->getChildHtml('topMenu'); ?>

同样,如果您正在这样做,那么您需要将 header.phtml 文件从基本 Magento 文件夹复制到您的自定义主题文件夹中,这样您就不会编辑核心文件。

我相信 unsetchild 默认情况下应该从 header.phtml 中删除该块,但是当我刚刚测试它时,该块仍然存在,所以如果您将其注释掉,那么它应该可以正常工作。

Logo

更多推荐