Magento类别页面:将特定类别的布局从网格模式更改为列表模式

Rud*_*lah 2 xml layout magento

我希望某些类别页面处于列表模式并从显示的30个项目开始但我希望另一个类别页面处于网格模式并且显示的项目更少.

我知道我可以通过管理面板更新自定义布局xml来实现这一点,但我不确定确切的XML是什么.

Rud*_*lah 5

我的解决方案是创建一个覆盖Toolbar类的模块,该类控制目录的网格/列表视图以及要显示的项目数.

调用要覆盖的特定类Mage_Catalog_Block_Product_List_Toolbar.克隆文件并向其添加以下方法:

/**
 * Sets the current View mode (grid, list, etc.)
 *
 * @param string $mode
 */
public function setCurrentMode($mode)
{
    $this->setData('_current_grid_mode', $mode);
}
Run Code Online (Sandbox Code Playgroud)

您还需要为它创建一个config.xml文件.

<!-- app/code/local/Example/Catalog/etc/config.xml -->
<?xml version="1.0"?>
<config>
  <global>
    <blocks>
      <catalog>
        <rewrite>
          <product_list_toolbar>Example_Catalog_Block_Product_List_Toolbar</product_list_toolbar>
        </rewrite>
      </catalog>
    </blocks>
  </global>
</config>
Run Code Online (Sandbox Code Playgroud)

现在,在管理面板中,要更改类别的布局,请转到目录>管理类别,然后选择要更改的类别.转到" 自定义设计"选项卡,在标有" 自定义布局更新"的字段中,输入以下XML代码:

<reference name="product_list_toolbar">
  <action method="setCurrentMode">
    <mode>list</mode>
  </action>
</reference>
Run Code Online (Sandbox Code Playgroud)

当然,请记住刷新Magento的布局缓存,否则您的更改将不会出现.