我正在尝试以列表或网格模式显示我的类别视图显示产品。
<reference name="content">
<block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
<!-- The following code shows how to set your own pager increments -->
<!--
<action method="setDefaultListPerPage"><limit>4</limit></action>
<action method="setDefaultGridPerPage"><limit>9</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
<action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
-->
</block>
<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</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>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</block>
</reference>
以下是<catalog_category_layered>
和<catalog_category_default>
中的代码。知道有人怎么做吗?我正在谷歌搜索很多时间,并没有找到解决方案。
答案 0 :(得分:11)
您可以使用以下xml在布局XML或admin中的“自定义布局更新”部分执行此操作:
<reference name="product_list_toolbar">
<action method="setData"><key>_current_grid_mode</key><value>list</value></action>
</reference>
确保工具栏块名称在产品列表块中设置如下:
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
答案 1 :(得分:10)
您可以从后端设置网格或列表
系统 - &gt;配置 - &gt;目录 - &gt;前端 - &gt;列表模式
答案 2 :(得分:2)
如果您选择使用@ rengaw83描述的方法,您将无法再在该类别中的模式之间切换。例如,如果单击“网格”,模式将不会更改为网格模式。
为了能够通过自定义布局切换模式并仅在类别中设置默认视图模式,您需要覆盖核心工具栏块,并向其添加以下方法:
/**
* Sets the current View modes (grid, list, etc.)
*
* @param array $modes
*/
public function setCurrentModes($modes)
{
$this->_availableMode = $modes;
$modes = array_keys($this->_availableMode);
$defaultMode = current($modes);
$mode = $this->getRequest()->getParam($this->getModeVarName());
if ($mode) {
if ($mode == $defaultMode) {
Mage::getSingleton('catalog/session')->unsDisplayMode();
}
} else {
$mode = Mage::getSingleton('catalog/session')->getDisplayMode();
}
if (!$mode || !isset($this->_availableMode[$mode])) {
$mode = $defaultMode;
}
$this->setData('_current_grid_mode', $mode);
}
然后,您将能够在自定义布局选项卡中设置模式:
<reference name="product_list_toolbar">
<action method="setCurrentModes">
<modes>
<list>List</list>
<grid>Grid</grid>
</modes>
</action>
</reference>
表示默认列表模式,或
<reference name="product_list_toolbar">
<action method="setCurrentModes">
<modes>
<grid>Grid</grid>
<list>List</list>
</modes>
</action>
</reference>
表示默认网格模式。或者您甚至只能通过一种模式来设置网格或列表模式。