2011-09-16 3 views
0

誰でもこの問題をお手伝いできますか?Magento Advanced Searchの作成方法検索用語が指定されていない場合は、すべての製品を表示しますか?

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

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

ありがとうございます。 あなたのヘルプははるかに高く評価されています))

よろしく

P.S. >設定 - - >カタログ - 0へ>カタログ検索

変更「最小クエリの長​​さ」ともう一度検索をしようとする私は、システムの下では、Magentoの1.5コミュニティ版

答えて

0

を使用してください。

ワイルドカード検索は、検索している属性の数や製品の数に応じて非常に課税される可能性があります。 LIKE vs FULLTEXTにも依存します。

第2の質問については、上の管理者の同じ場所でレイヤードナビゲーションを処理できます。 「検索結果がそれよりも少ない場合は階層化ナビゲーションを適用」の数を、主要な可視性を持つ製品の数と同じに設定します。カテゴリは、デフォルトではレイヤードナビゲーションの一部です。

+1

コア検索の仕組みも変更する必要があります。上の例では最小限のパラメタが必要ですが、ブランク検索を行うとSQL構文エラーが発生します。あなたはこのような拡張を調べる必要があるかもしれませんhttp://www.magentocommerce.com/magento-connect/Php4u/extension/5999/blast_lucene_seach –

0

これは古い投稿ですが、最近私が同じ問題に直面して以来、私はそれを解決しました。

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

だから私たちが望むもの:あなたはパラメータを指定せずに検索できるように否定したコードは、ライン上のファイルの関数addFiltersで

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

()208(Magentoのv1.8.1)内にありますスローされた例外beeingを取り除くことです。コアファイルを変更したくないので、このクラスを書き直してaddFilters()関数をオーバーロードしてExceptionをキャッチすると、空の高度な検索が可能になります。あなたのモジュール内

はファイル

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> 
... 

トリックを行う必要があること。

関連する問題