Magento - 如何将导航块移动到右栏?

时间:2010-05-11 08:10:10

标签: templates magento

我一直在编辑Magento的默认CSS来改变外观,并且已经到了我想要移动一些内容块的位置。

我通过CSS杀死了左栏

.col-left { display: none; }

然后增加主要内容部分的宽度以创建“两列布局”。我现在要做的是将类别的导航移动到右列。我不知道怎么......

如何在Magento中移动内容块? :/

2 个答案:

答案 0 :(得分:3)

在Magento中进行大型移动最好通过修改布局XML文件来完成,而不是通过CSS进行攻击。在文件catalog.xml中,以下是相关行:

    <reference name="top.menu">
        <block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
    </reference>
    <reference name="left">
        <!--<block type="core/template" name="left.permanent.callout" template="callouts/left_col.phtml">
            <action method="setImgSrc"><src>images/media/col_left_callout.jpg</src></action>
            <action method="setImgAlt" translate="alt" module="catalog"><alt>Our customer service is available 24/7. Call us at (555) 555-0123.</alt></action>
            <action method="setLinkUrl"><url>checkout/cart</url></action>
        </block>-->
    </reference>
    <reference name="right">
        <!--<block type="core/template" before="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>-->
        <!--<block type="core/template" name="right.permanent.callout" template="callouts/right_col.phtml"/>-->
    </reference>

要渲染topnav,请将catalog/navigation行移动到左侧或右侧列块中,导航将如此呈现。

希望有所帮助!

谢谢, 乔

答案 1 :(得分:2)

Magento有四种“标准”布局:1col,3col,2col-left和2col-right,但如果你愿意,你可以添加更多。您需要更改编辑页面上使用的布局,而不是使用CSS进行黑客攻击。这绝对是错误的做法。

正如Joseph所指出的,Magento的模板系统由 blocks templates 组成,它们由 layout 文件定位。模板是标准的php,虽然以.phtml为前缀,布局是xml。您可以在app/design/frontend/$interface/$theme/(template|layout)中找到大量这些文件。

Magento因其糟糕的文档而闻名,但您可能想要查看他们的Designer's Guide,其中详细介绍了模板和布局的概念,包括如何移动块。

布局文件的语法远非直截了当,但是,在这个阶段你需要知道的是,为了引用右手中的块,左手和内容列需要注意:

<reference name="(right|left|content)"></reference>

<block />声明从一个移到另一个,导致块移动。

要记住的另一个关键点是要注意:

<reference name="root">
    <action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>

在引用根容器时使用setTemplate操作,您可以轻松地将模板切换为1column2columns-left2columns-right3columns。布局模板本身可以在template/page/

中找到