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