1

製品リスト ページを 3 (デフォルト) ではなく 4 列を使用するようにしたい

<reference name="product_list">
<action method="setColumnCount"><columns>4</columns></action>
</reference>

カテゴリ レイアウトの更新 (バックエンドから) では、正常に動作しています。また、すべてのページ レイアウトで 4 列のグリッドを作成する方法について説明している多数の投稿も見つけました。

1 列のページでのみ 4 列のグリッドを使用する必要があります。これをlocal.xmlに入れましたが、機能していません..

<page_one_column>
     <reference name="product_list">
        <action method="setColumnCount"><columns>4</columns></action>
    </reference>
</page_one_column>

私は何を間違っていますか?ありがとう

4

2 に答える 2

2

管理者に移動

2) カタログ -> カテゴリの管理

3)私の例の携帯電話で1列のレイアウトにしたいカテゴリを選択します

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)

または代替ソリューション

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; ?>
于 2013-10-24T06:22:48.700 に答える
0

app/design/frontend/default/default/layout/catalog.xml を開く

要件に応じて列数を定義します

<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) カタログ -> カテゴリの管理

3) 1列レイアウトにしたいカテゴリを選択

4) カスタムデザインをクリック

5) 親カテゴリ設定を使用 = ページ レイアウトなし = 1 列

注:コアで編集する代わりに、新しいモジュールを作成し、オブザーバーの上に定義します

これがあなたを助けることを願っています

于 2013-10-24T09:41:20.497 に答える