5

デフォルトでリストモードまたはグリッドモードでカテゴリビュー表示製品を実行しようとしています。

<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>。誰かがそれを行う方法を知っていますか?私は長い間グーグルしていて、解決策を見つけられませんでした。

4

3 に答える 3

12

これは、次の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>
于 2014-09-12T07:43:30.007 に答える
10

バックエンドからグリッドまたはリストを設定できます

[システム]->[構成]->[カタログ]->[フロントエンド]->[リストモード]

于 2012-09-06T18:33:09.977 に答える
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>

デフォルトのグリッドモードの場合。または、1つのモードのみを渡して、使用可能なグリッドモードまたはリストモードのみを設定することもできます。

于 2016-02-25T07:43:31.870 に答える