5

好的,这是一个似乎很容易解决的问题,但它让我望而却步......

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

在此处输入图像描述

我试过这个:在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。

4

5 回答 5

5

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

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

以下

$_helper = $this->helper('catalog/output');
于 2013-12-17T06:56:24.057 回答
4

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

<catalog_category_default translate="label">
    <update handle="page_two_columns_left" />
于 2012-12-19T13:22:28.450 回答
3

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

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

您必须尝试样式属性才能获得所需的结果。

并且不要忘记更改您的锚类别设置:

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

最后删除你的magento缓存。

于 2012-12-19T11:20:30.037 回答
2

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

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

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

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

于 2012-12-19T11:31:15.640 回答
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>
...
于 2014-05-16T22:34:49.660 回答