Php 当FPC在magento上时如何获取产品详细信息
看起来,当启用完整页面缓存(FPC)时,不会为每个产品页面视图调度目录\控制器\产品\视图事件Php 当FPC在magento上时如何获取产品详细信息,php,magento,magento-1.7,magento-1.9,magento-1.8,Php,Magento,Magento 1.7,Magento 1.9,Magento 1.8,看起来,当启用完整页面缓存(FPC)时,不会为每个产品页面视图调度目录\控制器\产品\视图事件 有一个事件控制器\u front\u send\u response\u,在此之前将为操作触发。但我无法在该观察者中获取产品信息。任何线索都将不胜感激 您提到的Magento版本没有内置FPC,因此我猜您使用的是第三方模块,其版本可能会影响此答案 对于Magento Enterprise FPC和(我相信)Lesti FPC,您可以参与此次活动 controller_action_predispatc
有一个事件控制器\u front\u send\u response\u,在此之前将为操作触发。但我无法在该观察者中获取产品信息。任何线索都将不胜感激 您提到的Magento版本没有内置FPC,因此我猜您使用的是第三方模块,其版本可能会影响此答案 对于Magento Enterprise FPC和(我相信)Lesti FPC,您可以参与此次活动
controller_action_predispatch
这是我们发现的唯一一个在启用EE FPC的情况下100%触发的事件
使用此选项,您可以在运行任何自定义脚本(例如,在模块配置中)之前检查前端控制器操作
....
<frontend>
<events>
<controller_action_predispatch>
<observers>
<mynamespace_mymodule>
<class>mynamespace_mymodule/observer</class>
<method>firewithfpc</method>
</mynamespace_mymodule>
</observers>
</controller_action_predispatch>
</events>
</frontend>
嗨,谢谢你的回复。考虑到它可能会给服务器增加负载,在后端这样做可以吗?或者,当用户查看某些产品时,最好将其添加到前端。如果您试图在前端查看某个产品时启动一些脚本,那么这是一种方法。服务器开销几乎为零。我们将此方法用于我们构建的自定义geoiP定位模块,性能影响无法检测。您好,如果这对您有效,您可以接受它作为答案。谢谢这对我不起作用。我尝试了if(Mage::registry('current_product'))[}me@HariKrishnan,请将您的答案添加到问题中作为答案
public function firewithfpc($event) {
$action = $event->getEvent()->getControllerAction();
if($action instanceof Mage_Catalog_ProductController) {
// DO SOMETHING HERE FOR PRODUCT VIEW
}
}