我需要获取skus
搜索结果返回的Magento
列表。我环顾四周并用Google搜索,但在搜索结果页面上显示产品时无法找到产品的来源。我打开了searchresults.phtml
文件。看起来当调用$this->getChildHtml('content')
时产品是循环的,但我认为核心/文本列表有一些神奇之处。无论如何,我想访问搜索结果提供的产品集合,并在searchresults.phtml文件中循环访问。
编辑:只是为了澄清,我真正需要的是访问搜索结果中的产品集。
编辑:结果是searchresults.phtml是一个自定义页面。
答案 0 :(得分:1)
有一条线:
$_productCollection=$this->getLoadedProductCollection();
如果你想在该模板中获得所有skus(不限制每页),你可以这样做:
$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,'');
答案 1 :(得分:0)
目录搜索
扩展到类
之下\app\code\core\Mage\CatalogSearch\Block\Advanced\Result.php
在result.php中创建新函数
protected function skuProductCollection(){
return $this->getSearchModel()->getProductCollection()->getColumnValues('sku');
}
并在您的phtml文件中写下以下代码
<?php $allSku = $this->skuProductCollection() ?>
<?php print_r($allSku); ?>
希望这会对你有所帮助
答案 2 :(得分:0)
在意识到我正在使用自定义模板后,我现在看到可能有两个地方需要解决:
catalogsearch / result.phtml
catalogsearch /先进/ result.phtml
对于result.phtml,该块是Mage_CatalogSearch_Block_Result。在该块中,您可以拨打$this->_productCollection()
。 sku正在收藏中。我假设高级也是如此。
编辑:对于高级搜索,您必须使用$this->getChild('search_result_list')->_productCollection
。