我想让产品列表页面使用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>
我在做错了什么?感谢
答案 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>
希望这有帮助
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;定义上面的观察者
希望这能帮到你