magento FRONTEND的事件观察员

时间:2013-02-27 07:33:18

标签: magento

我正在尝试捕获仅在前端范围内工作的事件,但我正在为此目的观察事件

  

“controller_front_init_routers”

仅适用于全球范围而非前端。 我试图通过在页面加载时打印(在Mage.php dispatchEvent方法内)每个调度的事件名称来找到一个,但这些事件都没有在前端范围内工作。  我需要一个在前端页面加载时激活的事件。 请指教。

感谢,

1 个答案:

答案 0 :(得分:2)

为了使您的任务更具可调性和更高效,我建议您使用此事件:

controller_action_layout_generate_blocks_after

在您的功能中,您可以通过以下方式做更精确的事情:

public function yourEvent($event) {
$controller = $event->getAction();
$action = $event->getFullActionName();
if ($action == 'catalog_product_view') //DO SOMETHING SPECIFIC TO PRODUCT PAGE
elseif ($action == 'catalog_category_view') //DO SOMETHING SPECIFIC TO CATEGORY
...

此致