0

検索結果からskus返されたのリストを取得する必要があります。Magento私は周りを見回してグーグルで調べましたが、検索結果ページに製品を表示するときに製品がどこから来たのかを見つけることができません. searchresults.phtmlファイルを開いています。が呼び出されたときに製品がループされるように見え$this->getChildHtml('content')ますが、コア/テキストリストで魔法が起こっていると思います。とにかく、検索結果によって提供される製品コレクションにアクセスし、searchresults.phtml ファイルでループしたいと思います。

編集: 明確にするために、私が本当に必要としているのは、検索結果から得られる製品コレクションへのアクセスです。

編集: searchresults.phtml はカスタム ページであることが判明しました。

4

3 に答える 3

2

app/design/frontend/{package}/{theme}/catalog/product/list.phtml に次の行があります:

$_productCollection=$this->getLoadedProductCollection();

そのテンプレート内ですべての sku (ページごとに制限されない) を取得する場合は、次のようにします。

$select = clone $_productCollection->getSelect();
$select
        ->reset(Zend_Db_Select::LIMIT_COUNT)//remove this line if you want list of skus belonging only to current page
        ->reset(Zend_Db_Select::LIMIT_OFFSET) // and this one too
        ->reset(Zend_Db_Select::COLUMNS)
        ->reset(Zend_Db_Select::ORDER)
        ->columns('sku');
$all_skus = Mage::getSingleton('core/resource')->getConnection('core_read')->fetchCol($select,'');
于 2013-10-10T18:46:54.753 に答える
0

カスタム テンプレートを使用していたことに気付いた後、対処する必要がある場所がおそらく 2 つあります。

カタログ検索/結果.phtml

catalogsearch/advanced/result.phtml

result.phtml の場合、ブロックは Mage_CatalogSearch_Block_Result です。そのブロックでは、 を呼び出すことができます$this->_productCollection()。sku はコレクション内にあります。上級者も同じだと思います。

編集:高度な検索には、使用する必要があります$this->getChild('search_result_list')->_productCollection

于 2013-10-10T20:04:00.757 に答える