基本上,如果用户搜索产品并且搜索返回emtpy,我希望能够在“没有与您的搜索匹配的结果”文本下显示特定类别。
我尝试了不同的方法,但似乎results.phtml对搜索查询字符串中的每个非匹配产品进行排序。如果字符串与某组产品匹配并不重要 - 它只会显示这些产品。
我正在尝试使用一个简单的代码:
<?php echo $this->getLayout()->createBlock('catalog/product_list')->setCategoryId(4)->setTemplate('catalog/product/list.phtml')->toHtml() ?>
这段代码适用于除results.phtml之外的模板页面上的任何位置,因为搜索功能会阻止所有不匹配的产品。 (如果产品与使用此代码块的搜索匹配,它将显示该产品。)
这里有类似的问题,但没有解决方案:Display specific category products on no results search page
谢谢,感谢这个问题的任何答案: - )
答案 0 :(得分:0)
您可以按如下方式创建自定义块,并设置here
等分页<?php echo $this->getLayout()->createBlock('yourmodule/product_customlist')->setTemplate('catalog/product/list.phtml')->toHtml() ?>
<强>更新强>
应用程序的/ etc /模块/ Custom_Products.xml
如下
<config>
<modules>
<Custom_Products>
<active>true</active>
<codePool>local</codePool>
</Custom_Products>
</modules>
</config>
应用程序/代码/本地/客户/产品的/ etc / config.xml中
文件如下
<config>
<global>
<blocks>
<customproducts>
<class>Custom_Products_Block</class>
</customproducts>
</blocks>
</global>
</config>
应用程序/代码/本地/客户/产品/块/ Customlist.php
文件如下
<?php
class Custom_Products_Block_Customlist extends Mage_Core_Block_Template
{
protected function _construct()
{
parent::_construct();
// We get our collection through our model
$this->_collection = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*') // add all attributes - optional
->addAttributeToFilter('status', 1) // enabled
->addAttributeToFilter('visibility', 4) //visibility in catalog,search
->setOrder('price', 'ASC'); //sets the order by price
// Instantiate a new Pager block
$pager = new Mage_Page_Block_Html_Pager();
// We set our limit (here an integer store in configuration).
// /!\ The limit must be set before the collection
$pager
->setLimit(5)
->setCollection($this->_collection);
// Add our Pager block to our current list block
$this->setChild('pager', $pager);
}
}
?>
应用程序/设计/ YOUR_PACKAGE / YOUR_THEME /模板/目录/产品/ customlist.phtml
如下
<?php
$_productCollection=$this->_collection;
...
your products code here
...
?>
<?php
echo $this->getChildHtml('pager');
?>
检查它是否适合您。