magento产品网格,仅在1列模板上有4列
我想让产品列表页面使用4列而不是3列(默认) 我发现如果我使用magento产品网格,仅在1列模板上有4列,magento,layout,Magento,Layout,我想让产品列表页面使用4列而不是3列(默认) 我发现如果我使用 <reference name="product_list"> <action method="setColumnCount"><columns>4</columns></action> </reference> 4. 在类别布局更新(从后端)它的工作良好。我还发现了许多关于如何为所有页面布局制作4列网格的帖子 我只需要在一列页面上使用4列网格。我把它放在
<reference name="product_list">
<action method="setColumnCount"><columns>4</columns></action>
</reference>
4.
在类别布局更新(从后端)它的工作良好。我还发现了许多关于如何为所有页面布局制作4列网格的帖子
我只需要在一列页面上使用4列网格。我把它放在local.xml上,但它不起作用
<page_one_column>
<reference name="product_list">
<action method="setColumnCount"><columns>4</columns></action>
</reference>
</page_one_column>
4.
我做错了什么?谢谢转到管理员
2) 目录->管理类别
3) 在我的示例中,选择您希望成为一列布局的类别手机
4) 点击定制设计
(五)
使用父类别设置=否
页面布局=1列
自定义布局更新
4.
希望这有帮助
(一)
或替代解决方案
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; ?>
openapp/design/frontend/default/default/layout/catalog.xml 根据您的需求定义列计数 在 现在在中定义观察者
app/code/core/Mage/Catalog/etc/config.xml
在
添加下面的函数
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列
注意:不要在核心中编辑,而是创建新模块并定义上述观察者
希望这有助于您编辑:stack不允许我编辑以前的评论。。正如我所说,“定制设计”方法对我没有用处,因为我需要所有1列布局都使用它。。使用代码编辑的替代解决方案可以工作,但我希望使用布局xml。这也是我提问的目的。。如果仅使用xml更新无法完成所需的操作,我将使用您提供的php方法。谢谢,是否可以只使用layout upadate,而不编辑(覆盖)任何核心代码?仅使用local.xml或其他内容。如果不在核心文件中进行更改或重写,则不可能实现。local.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
<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());
}
}