是否有可能在启用全页缓存时获得当前类别?在这种情况下,没有执行目录控制器,因此注册表(current_category
键)为空。我只能得到根目录
谢谢
一种可能的解决方案是通过给定的url获取类别ID。你有url重写表,你有请求字符串。
// Try to get category id directly from request
if (Mage::app()->getRequest()->getParam('id')) {
return Mage::app()->getRequest()->getParam('id');
}
// Try to get category id from request by rewrite request path
$aliases = Mage::app()->getRequest()->getAliases();
if ($aliases && is_array($aliases) && !empty($aliases) && $aliases['rewrite_request_path']) {
$urlRewrite = Mage::getModel('core/url_rewrite')->loadByRequestPath($aliases['rewrite_request_path']);
if ($urlRewrite && $urlRewrite->getId()) {
return $urlRewrite->getCategoryId();
}
}
也许这不是一个漂亮的解决方案,但它对我来说很有效。
你需要通过图层:
$layer = Mage::getSingleton('catalog/layer');
$_category = $layer->getCurrentCategory();
$currentCategoryId= $_category->getId();
问候,肯尼
您正在打孔您的块,如下所示:
我正在写一个随机产品列表块模块,它不是冲孔对FPC的影响
这意味着你的块是Magento的剥离版本(参见applyWithoutApp()方法),所以要从注册表中访问current_category,你需要在你的穿孔模块的Container中注册它。