Magento:如何覆盖 Mage_Core_Controller_Front_Action

标签 magento controller

我想重写 Mage_Core_Controller_Front_Action 以向所有前端 Controller 操作添加 ACL 检查,类似于使用 Mage_Adminhtml_Controller_Action::preDispatch() 中完成的方式Mage_Adminhtml_Controller_Action::_isAllowed()

我已经能够创建一个PackageName_ModuleName_Controller_Front_Action,它成功地扩展了Mage_Core_Controller_Front_Action,包含并从任何 Controller 使用它,但是,此方法需要我现在扩展每个我想要添加 ACL 的 Magento 前端 Controller ,以便让它们使用我的新 Front_Action。如果我想要“拒绝”、“允许”优先策略设置,则需要进行大量重写。

如果有人知道如何以更有效的方式正确扩展此类,它肯定会派上用场,否则我想我可以处理“允许”、“拒绝”优先级,但这对于我的使用来说仍然是很多压倒性的事情案例。

最佳答案

而不是覆盖 Mage_Core_Controller_Front_Action (正如您所提到的,如果不重写基于此类的每个前端 Controller ,这几乎是不可能的),您可以将观察者放在 controller_action_predispatch 上。事件,并使用controller_action随其发送的值(实际上应该位于 Mage_Core_Controller_Front_Action 的当前实例的前端)。

关于Magento:如何覆盖 Mage_Core_Controller_Front_Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680604/

相关文章:

magento - 安装程序脚本给我 'Wrong Entity ID' Magento 错误

Magento xml 布局 - 在 ="-"之前无法在 1.4.2 中工作

magento - Magento 中不同的 *get helper* 方法有什么区别?

asp.net-mvc - 有没有可能是MVC应用中controller参数需要,路由不匹配空参数?

model-view-controller - Codeigniter Controller 间通信

ruby-on-rails - RSpec - @controller 为零

java - ResultSet 关闭后不允许执行 SQLException 操作

Magento 更新 csv 并取消设置特价

api - Magento API 示例

asp.net-mvc - 从业务层使用邮政库