2

catalogsearch の結果ページと同じように、Magento の高度な検索結果ページにレイヤード ナビゲーション フィルターを表示する必要があります。

必要に応じて、XML ブロックを catalogsearch_advanced_result に移動しました。

<reference name="left">
<block type="catalogsearch/layer" name="catalogsearch.leftnav" template="catalog/layer/view.phtml"/>
</reference>

ブロックが呼び出されますが、何も表示されません。コア ファイルを調べたところ、Catalog/Block/Layer/View.php で、この関数が属性を返さないことがわかりました (161 行目):

protected function _getFilterableAttributes()
{
    $attributes = $this->getData('_filterable_attributes');
    if (is_null($attributes)) {
        $attributes = $this->getLayer()->getFilterableAttributes();
        $this->setData('_filterable_attributes', $attributes);
    }

    return $attributes;
}

getFilterableAttributes() を Catalog/Model/Layer.php ファイルにトレースしましたが、この時点から、catalogsearch と高度な検索の違いがどこにあるのかを理解するのが難しくなります。

私は基本的に、これを可能な限り機能させたいだけです。ヘルプやガイダンスをいただければ幸いです。

編集:

製品属性が次のように正しく設定されています。

ここに画像の説明を入力

4

1 に答える 1

3

ちょっと高度な検索ページに階層化されたナビゲーションを導入することに成功しました。次の手順を実行します: ステップ 1:catalogsearch.xml以下のような更新で
`

    <label>Advanced Search Result</label>
    <update handle="page_two_columns_right" />
    <!-- Mage_Catalogsearch -->
    <reference name="root">
        <action method="setTemplate"><template>page/3columns.phtml</template></action>
    </reference>
    <reference name="left">
        <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
    </reference>`

ステップ 2: キャッシュをクリアすれば準備完了です。

フィルターを機能させるために、リクエスト内の URL でいくつかの変更を行います。たとえば、高度な検索では、価格フィルターは次のようprice[from]=1&price[to]=100になります。price=1,100

于 2013-02-28T05:50:29.660 に答える