PHP中的页面重定向而不是echo

时间:2015-12-22 14:22:51

标签: php magento

我正在使用Magento网站。如果有人搜索产品且未找到产品,则会显示“未找到匹配项”。

我已粘贴以下脚本:

<div id="partfinder_<?php echo $this->getInstanceSufix(); ?>_not_found" 
     style="display:none"><?php echo $this->__('No matches found.') ?></div>    

我希望将用户重定向到新页面,以便填写查询表单。

2 个答案:

答案 0 :(得分:3)

您可以自己创建一个模块,用于侦听 catalogsearch 模块上的索引操作。结果控制器。

然后通过检查从该模块助手获得的查询模型来检查结果是否为空:

$query = Mage::helper('catalogsearch')->getQuery();
/* @var $query Mage_CatalogSearch_Model_Query */

$query->setStoreId(Mage::app()->getStore()->getId());

如果您想要在任何查询上触发重定向,只需覆盖redirect数据成员并使对象无法保存:

$query->setRedirect('/your/redirect/uri');
$query->setId(null);
$query->isDeleted(true);

然后结果的布局不会渲染,而是控制器操作会为您重定向。您可以在方法Mage_CatalogSearch_ResultController::indexAction()app/code/core/Mage/CatalogSearch/controllers/ResultController.php)中查看。只需通过像xdebug这样的步调试器来查找易于与之交互的地方。此处还记录了对搜索有影响的基础EAV模型:Magento EAV System (Solving Magento)

参见:

答案 1 :(得分:-3)

属于magento ,,,  

你可以从2侧检查它 1-进入核心文件中的目录块产品列表并检查产品大小并重定向..您想要的位置..

2- from frontend /design/yourtheme/default/template/catalog/product/list.phtml 如果没有项目,则按标题重定向('location:url'); die;