1

我想让产品列表页面使用 4 列而不是 3 列(默认)我发现如果我使用

<reference name="product_list">
<action method="setColumnCount"><columns>4</columns></action>
</reference>

在类别布局更新(从后端)上它工作正常。我还发现了许多帖子,这些帖子描述了如何为所有页面布局制作 4 列网格。

我只需要在一列页面上使用 4 列网格。我把它放在我的 local.xml 上,但它不起作用..

<page_one_column>
     <reference name="product_list">
        <action method="setColumnCount"><columns>4</columns></action>
    </reference>
</page_one_column>

我究竟做错了什么?谢谢

4

2 回答 2

2

去管理员

2)目录->管理类别

3)在我的示例手机中选择您希望成为一种列布局的类别

4) 点击定制设计

5)

Use Parent Category Settings = no

Page Layout = 1 column
Custom Layout Update 

<reference name="product_list">
        <action method="setColumnCount"><columns>4</columns></action>
    </reference>

希望这有帮助 在此处输入图像描述1)

或替代解决方案

app/design/frontend/default/[yourtheme]/template/catalog/product/list.phtml

89号线

 <?php $_columnCount = $this->getColumnCount(); ?>

将上面的代码替换为

 <?php $_collectionSize = $_productCollection->count() ?>
    <?php $pageLayout=$this->getLayout()->getBlock('root')->getTemplate(); ?>
    <?php if ($pageLayout="page/1column.phtml"):?>
        <?php $_columnCount = 4 ?>
    <?php else: ?>  
        <?php $_columnCount = $this->getColumnCount(); ?>
    <?php endif; ?>
于 2013-10-24T06:22:48.700 回答
0

打开app/design/frontend/default/default/layout/catalog.xml

根据您的要求定义列数

<catalog_category_default>,<catalog_category_layered> 

或者

如果你想设置列数<catalogsearch_result_index>

打开并编辑

打开app/design/frontend/default/default/layout/catalogsearch.xml

<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>4</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>

现在定义观察者

app/code/core/Mage/Catalog/etc/config.xml

在中添加以下代码<events>

    <catalog_controller_category_init_after>
          <observers>
                <custom_page_layout>
                    <class>catalog/observer</class>
                         <method>addHandle</method>
                </custom_page_layout>
           </observers>
  </catalog_controller_category_init_after>

现在开放

 app/code/core/Mage/Catalog/Model/Observer.php

添加以下功能

public function addHandle($observer)
    {
        $controllerAction = $observer->getEvent()->getControllerAction();
        $category = $observer->getEvent()->getCategory();
        if ($category->getPageLayout()) {
                $controllerAction->getLayout()->helper('page/layout')
                    ->applyHandle($category->getPageLayout());
            }
    }

去管理员

2)目录->管理类别

3)选择你想成为一栏布局的类别

4) 点击定制设计

5) 使用父类别设置 = 无页面布局 = 1 列

注意:而不是在核心中编辑创建新模块并定义上面的观察者

希望这对你有帮助

于 2013-10-24T09:41:20.497 回答