Magento:将块 top.menu 从标题移动到内容
·
问题: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 中删除该块,但是当我刚刚测试它时,该块仍然存在,所以如果您将其注释掉,那么它应该可以正常工作。
更多推荐
所有评论(0)