1

我已经到了在我的模块中本地扩展 Mage_Core_Controller_Varien_Router_Standard 以访问它的 match() 方法的地步,但当然,从 Magento 管理员来看,它的处理方式与前置存储不同。

在我浪费时间研究这个之前,有没有一种简单的方法来正确填充 Mage_Core_Controller_Request_Http/Zend_Controller_Request_Http 的实例,其信息与在正常前端(阅读:非管理员)页面加载(即类别页面、搜索页面、 cms 页面),但从基于路径的管理区域(假设给定商店)?

理想情况下,它看起来像:

/** @var $request Zend_Controller_Request_Http */
$request = Mage::getModel('namespace_module/foo')->getHttpRequestByPath($uri, $store);

注意:在示例中,store 是可选的,'$uri' 类似于:

  • www.store.com/
  • www.store.com/faq
  • www.store.com/foo/category/mens
  • www.store.com/bar/product/xyz

不寻找黑客,但不介意朝正确的方向推进。我正在使用 Magento EE 1.11。

4

1 回答 1

1

Mage::app()->getRequest()将返回Mage_Core_Controller_Request_Http。从那里您可以调用如下方法:

->getControllerName();
->getActionName();

使用管理商店时,我假设 store_id 为Mage_Core_Model_App::ADMIN_STORE_ID.

这是您想要实现的目标,还是您有不同的目标?

于 2012-11-12T20:27:46.340 回答