0

誰でもこの問題を手伝ってもらえますか?

Magento で高度な検索を使用していますが、うまく機能しますが、検索語を入力せずに [検索] をクリックすると、エラーまたは「少なくとも 1 つの検索語を指定してください」というメッセージが表示されます。

検索語を入力せずに「検索」をクリックすると、すべてのカテゴリのすべての製品が表示されるようにしたいのですが、どうすれば可能ですか?

前もって感謝します。あなたの助けは大歓迎です: ))

よろしく

PS Iはmagento 1.5コミュニティバージョンを使用

4

2 に答える 2

0

[システム] -> [構成] -> [カタログ] -> [カタログ検索] の下

「最小クエリ長」を 0 に変更して、検索を再試行してください。

ワイルドカード検索は、検索する属性の数と製品の数によっては非常に負担がかかる可能性があることに注意してください. これは、LIKE と FULLTEXT によっても異なります。

2 番目の質問については、上記の admin の同じ場所でレイヤード ナビゲーションを処理できます。「検索結果が以下の場合にレイヤード ナビゲーションを適用する」の数を、プライマリ ビジビリティにある製品の数と同じに設定します。カテゴリは、デフォルトでレイヤード ナビゲーションの一部です。

于 2011-09-16T15:49:21.067 に答える
0

これは古い投稿ですが、最近同じ問題に遭遇したため、解決方法を次に示します。パラメータなしで検索できないようにするコードは、ファイル内にあります

app/code/core/Mage/CatalogSearch/Model/Advanced.php

関数 addFilters() の 208 行目 (Magento v1.8.1):

if ($allConditions) {
        $this->getProductCollection()->addFieldsToFilter($allConditions);
    } else if (!$hasConditions) {
        Mage::throwException(Mage::helper('catalogsearch')->__('Please specify at least one search term.'));
    }

したがって、私たちがやりたいことは、例外がスローされるのを取り除くことです。コア ファイルを一切変更したくないため、このクラスを書き直し、addFilters() 関数をオーバーロードして例外をキャッチし、空の高度な検索を有効にします。

モジュール内でファイルを作成します

app/code/local/Yournamespace/Yourmodule/Models/Catalogsearch/Advanced.php


class Yournamespace_Yourmodel_Model_Catalogsearch_Advanced extends Mage_CatalogSearch_Model_Advanced {

/**
 * call original addFilters but catch Exception
 * so search WITHOUT search parameters is allowed.
 * 
 * @param array $values
 * @return \Yournamespace_Yourmodel_Model_Catalogsearch_Advanced
 */
public function addFilters($values) {

    try {
        return parent::addFilters($values);
    } catch (Mage_Core_Exception $ex) {

        return $this;
    }

}

}

元の高度な検索モデルを新しいモデルで書き直します。

app/code/local/Yournamespace/Yourmodule/etc/config.xml

...
<global>
    <models>
        <catalogsearch>
            <rewrite>
                <advanced>Yournamespace_Yourmodel_Model_Catalogsearch_Advanced</advanced>
            </rewrite>
        </catalogsearch>
    </models>
</global>
...

これでうまくいくはずです。

于 2014-06-24T08:58:55.487 に答える