Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php magento目录搜索在url中添加结果计数_Php_Magento_Observer Pattern - Fatal编程技术网

Php magento目录搜索在url中添加结果计数

Php magento目录搜索在url中添加结果计数,php,magento,observer-pattern,Php,Magento,Observer Pattern,我想在搜索url中添加结果计数。默认url类似于domain.com/catalogsearch/result/?q=querys 但我想在url中添加结果计数 `domain.com/catalogsearch/result/?q=queries&count=50` 我试过使用下面的事件观察者 controller_action_layout_render_before_catalogsearch_result_index 和Observer.php <?php c

我想在搜索url中添加结果计数。默认url类似于
domain.com/catalogsearch/result/?q=querys
但我想在url中添加结果计数

`domain.com/catalogsearch/result/?q=queries&count=50`
我试过使用下面的事件观察者

controller_action_layout_render_before_catalogsearch_result_index
Observer.php

 <?php
    class PackgeName_ModuleName_Model_Observer {
        // the product list block name in layout
        const RESULT_BLOCK_NAME = 'search_result_list';
        public function loadResult(Varien_Event_Observer $observer) {
            $currentUrl = Mage::helper ( 'core/url' )->getCurrentUrl ();

            $block = Mage::app ()->getLayout ()->getBlock ( self::RESULT_BLOCK_NAME );
            if ($block) {

                $collection = $block->getLoadedProductCollection ();

                /**
                 * @var Mage_Catalog_Model_Product $product
                 */
                $count = $collection->getSize ();

                $resultUrl = $currentUrl . '&count=' . $count;

                if ($resultUrl) {

                    Mage::app ()->getResponse ()->setRedirect ( $resultUrl );
                    exit (); // stop everything else
                }
            }
        }
    }

只需添加一个检查,确保计数不在请求uri中:

    public function loadResult(Varien_Event_Observer $observer) {

       $count = Mage::app()->getRequest()->getParam('count');

       if (!$count){

           $currentUrl = Mage::helper ( 'core/url' )->getCurrentUrl ();

           $block = Mage::app ()->getLayout ()->getBlock ( self::RESULT_BLOCK_NAME );

我不知道这是否是正确的答案,因为我对Magento也是新手。。 但我在form.mini.phtml中添加了textfield,并将其放在“q”textfield下面,如下所示

<input type="text" id="abc" name="abc" value="" >

这将导致:
domain.com/catalogsearch/result/?q=querys&abc=

它将再次命中结果页面,并再次触发相同的观察者。所以这就变成了无止境的循环。。