产品视图中的Magento 1.9 GET参数

时间:2017-06-29 09:16:13

标签: magento magento-1.9

我有一个观察者操作设置,用于检查是否已加载产品页面。如果是这样,它会调用一个处理所有GET参数的自定义帮助。它曾经工作超过4年并且突然停止了(第三方唯一改变的是这些参数的命名)。

以下是观察员行动:

 public function productView($observer) {

        /*@var $block Mage_Core_Block_Abstract*/
        $block = $observer->getEvent()->getBlock();

        if ($block && $this->getProduct()){
            if ($block->getModuleName() == 'Mage_Catalog'){

                $productId = $this->getProduct()->getEntityId();

                //If params exist - save
                if ($this->ParamsHelper()->saveParams($productId)){
                    //code omitted
                }
            }
        }

}

以下是帮助者的行动:

public function saveParams($productId) {
    if (is_numeric($productId)){

        $params = Mage::app()->getRequest()->getParams();
        if (!empty($params['image']) && !empty($params['config'])){

            //never gets here
            return true;

        }
    }
    return false;
}

如果我尝试var_dump $params,我得到以下数组,其中只包含product_id:

array(1) { ["id"]=> string(3) "664" }

预期结果是能够访问产品视图中通过url传递的所有GET参数。

非常感谢任何帮助或指导。

修改

产品网址与产品名称相似,如f.e。:

domain.com/red-jacket

在一个完美的案例中,我希望获得如下传递的参数:

domain.com/red-jacket?param1=aaa&param2=bbb

2 个答案:

答案 0 :(得分:4)

不确定确切的问题是什么......但对于domain.com/red-jacket?param1=aaa&param2=bbb,您可以通过这种方式获取参数:

$params = Mage::app()->getRequest()->getParams();
$param1 = $params['param1']
or
$param1 = Mage::app()->getRequest()->getParam('param1');

答案 1 :(得分:1)

//在视图页面中获取参数的代码。

$arrParams = Mage::app()->getRequest()->getParams();
echo "Get Parameter"; echo '<pre>', print_r($arrParams);