如何在我自己的div中添加产品类别?

时间:2012-06-16 16:59:36

标签: php magento

我创建了一个名为nav_container的div,我希望将Magento产品类别放在该div而不是默认标题中。

最简单的方法是什么?我已经研究了很长时间没有解决方案。谢谢你的建议。我正在使用Magento 1.7。

1 个答案:

答案 0 :(得分:3)

有几种方法可以实现这一目标:

  1. app/design/frontend/base/default/page/html/topmenu.phtml复制到app/design/frontend/your_package/your_theme,然后只需添加包装div。

  2. 修改app/design/frontend/your_package/your_theme/page/html/header并找到该行:<?php echo $this->getChildHtml('topMenu') ?>并将其与您一起包围

  3. 你也可以使用layout xml,特别是page/html_wrapper块 - 但是对于这个简单的例子,选项1或2很可能是最好的选择

  4. 修改

    在实现对块的混淆之后,请参阅下面的正确解决方案

    好的,首先,块在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>
    

    最后清除缓存并重新加载页面。