【问题标题】:Change theme based on param url根据参数 url 更改主题
【发布时间】:2015-08-09 19:20:06
【问题描述】:

我想知道我是否可以根据 url 参数更改主题(或者是否为时已晚)以及是否可以观察哪个事件是正确的
我只找到了一个正在谈论观察controller_action_predispatch 的人,但是通过这个事件我仍然无法访问参数url(基于这个答案https://stackoverflow.com/a/19214765/1139052

【问题讨论】:

    标签: magento events observers


    【解决方案1】:

    是的,您可以通过多种不同的方式做到这一点。该答案并不是说在controller_action_predispatch 事件中无法访问 URL 参数,但是您可能希望在controller_action_layout_load_before 之类的事件中执行此操作而不是and create custom layout handles from your param value。您可以像这样在观察者中获取它们:

    public function getExampleParam(Varien_Event_Observer $observer)
    {
        $request = $observer->getControllerAction()->getRequest();
        $param = $request->getParam('example');
        return $this;
    }
    

    【讨论】:

    • 好的,我可以换主题了,问题是$request = $observer->getControllerAction()->getRequest();返回这个错误:Call to a member function getRequest() on a non-object
    • @Razorphyn - 你最终使用的是预调度还是其他事件?
    • 我尝试了你的活动,如果我明确声明它,我可以更改主题,因为我无法检索 URL 参数......所以现在我正在尝试使用控制器操作,但我我无法呈现产品(我已经打开了另一个问题)
    • @Razorphyn - 我必须看看传递给该事件的内容,但是对Mage::app()->getRequest() 的快速而肮脏的全局调用可能会起作用。
    • Mage::app()->getRequest() 工作,非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2018-10-30
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多