我创建了一个名为nav_container
的div,我希望将Magento产品类别放在该div而不是默认标题中。
最简单的方法是什么?我已经研究了很长时间没有解决方案。谢谢你的建议。我正在使用Magento 1.7。
答案 0 :(得分:3)
有几种方法可以实现这一目标:
将app/design/frontend/base/default/page/html/topmenu.phtml
复制到app/design/frontend/your_package/your_theme
,然后只需添加包装div。
修改app/design/frontend/your_package/your_theme/page/html/header
并找到该行:<?php echo $this->getChildHtml('topMenu') ?>
并将其与您一起包围
你也可以使用layout xml,特别是page/html_wrapper
块 - 但是对于这个简单的例子,选项1或2很可能是最好的选择
修改强>
在实现对块的混淆之后,请参阅下面的正确解决方案
好的,首先,块在Magento中具有非常特殊的含义,完全不同于html标签。您可以在此处找到块的定义:http://www.magentocommerce.com/design_guide/articles/magento-design-terminologies4#term-blocks
现在,要在1.7 CE中移动顶部导航:
与Magento中的布局一样,您有两个主要选项:将基本布局文件复制到当前主题并进行编辑,或者在主题中使用local.xml文件进行所有基本布局覆盖。
每个都有利弊 - 虽然我会提倡你使用local.xml,除非有特殊原因不这样做。但这完全取决于你选择哪种方法:)
<强> 1。使用local.xml
app/design/frontend/your_package/your_theme/layout/local.xml
<layout version="0.1.0">
<!-- Other layout xml -->
<!--
Unset the nav from the header
-->
<reference name="header">
<action method="unsetChild"><alias>topMenu</alias></action>
</reference>
<!--
Insert it into your new containing block
-->
<reference name="nav_container">
<action method="insert"><alias>top.menu</alias></action>
</reference>
<!-- Other layout xml -->
</layout>
<强> 2。复制基础文件
首先,将app/design/frontend/base/default/layout/page.xml
复制到app/design/frontend/your_package/your_theme/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="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>
<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>
并改为:
<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/html_wrapper" name="top.container" as="topContainer" translate="label">
<label>Page Header</label>
<action method="setElementClass"><value>top-container</value></action>
</block>
</block>
此时,您只是从布局中删除了top.menu块。
接下来,您需要将块添加回正确节点下的布局:nav_container。
因此,无论您何时宣布您的nav_container块添加为您刚删除的xml的子节点,即:。
<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>
最后清除缓存并重新加载页面。