如何更改Magento的列数

时间:2012-12-19 11:11:16

标签: magento magento-1.7

好的,这个问题似乎很容易解决,但它让我不知所措......

我的Magento网上有一些类别,每个类别都有一些产品。我希望它们显示为4列数,但它总是显示为3列计数,如下所示:

enter image description here

我试过这个: 在 app / desing / frontend / default / mytheme / layout / catalog.xml 上,我修改了这段代码:

<!--
Category default layout
-->

<catalog_category_default translate="label">
    <label>Catalog Category (Non-Anchor)</label>
    <reference name="left">
        <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
    </reference>
    <reference name="content">
        <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
            <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                    <block type="page/html_pager" name="product_list_toolbar_pager"/>
                    <!-- The following code shows how to set your own pager increments -->
                    <!--
                        <action method="setDefaultListPerPage"><limit>4</limit></action>
                        <action method="setDefaultGridPerPage"><limit>9</limit></action>
                        <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
                        <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
                        <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
                        <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
                        <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                    -->
                </block>
                <action method="setColumnCount"><columns>4</columns></action>
                <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
            </block>
        </block>
    </reference>
</catalog_category_default>

所以我认为将列数设置为4,但它仍然会显示3个产品......有什么想法吗?

PS:使用Magento 1.7。

5 个答案:

答案 0 :(得分:5)

在list.phtml文件下添加以下代码

$this->setData('column_count',4);

下面的

$_helper = $this->helper('catalog/output');

答案 1 :(得分:4)

尝试使用更新句柄操作来定义当前布局(有时主题使用默认列数而不是layoutdepend): 只需在节点的开头添加行

<catalog_category_default translate="label">
    <update handle="page_two_columns_left" />

答案 2 :(得分:3)

您还必须编辑css样式。例如:

.products-grid li.item {
   float: left;
   margin: 0 22px 0 0;
   padding: 0 0 29px;
   width: 200px;
}

您必须尝试使用​​样式属性来获得所需的结果。

不要忘记更改您的Anchor类别设置:

<catalog_category_layered translate="label">
       <label>Catalog Category (Anchor)</label>
       ...
                   <action method="setColumnCount"><count>4</count></action>

最后删除您的magento缓存。

答案 3 :(得分:2)

我认为“setColumnCount”没有在List.php或它的父类中定义。所以你的方法不起作用。 如果根据类别页面的特定布局调用“addColumnCountLayoutDepend”来设置列数会更好。

因此,如果您在类别页面上使用2ColumnRight布局,请尝试下面的代码。

<action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>

这将设置列表页面,其中包含4列中列出的产品。您还需要进行一些CSS更改。

答案 4 :(得分:0)

尝试更新catalog.xml,如下所示:

     <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">

 <action method="setData"><name>column_count</name><value>4</value></action>
...