magento产品网格,仅在1列模板上有4列

时间:2013-10-23 09:46:27

标签: magento layout

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

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

关于类别布局更新(来自后端)它工作正常。我还发现了很多帖子,描述了如何为所有页面布局制作4列网格。

我只需要在一个列页面上使用4列网格。我把它放在我的本地文件夹上,但它没有工作..

<page_one_column>
     <reference name="product_list">
        <action method="setColumnCount"><columns>4</columns></action>
    </reference>
</page_one_column>
我在做错了什么?感谢

2 个答案:

答案 0 :(得分:2)

转到管理员

2)目录 - &gt;管理类别

3)在我的示例中选择您想要成为一个colomn布局的类别手机

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>
希望这有帮助 enter image description here 1)

或替代解决方案

应用程序/设计/前端/默认/ [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; ?>

答案 1 :(得分:0)

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

根据您的要求定义列数

in

<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)目录 - &gt;管理类别

3)选择您想要成为一个列布局的类别

4)点击自定义设计

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

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

希望这能帮到你