我正在使用magento Enterprise 1.9版,在自定义主题后,网站正在运行。但问题是当我在IE8中打开网站时,它提供了类似页面不安全的警报,因为页面加载了http / https内容。
在我为magento CE 1.4买到这样的东西之前的某个时候,它已经记住了。
getCacheKey的默认代码
public function getCacheKey()
{
return 'CATALOG_NAVIGATION_' . Mage::app()->getStore()->getId()
. '_' . Mage::getDesign()->getPackageName()
. '_' . Mage::getDesign()->getTheme('template')
. '_' . Mage::getSingleton('customer/session')->getCustomerGroupId()
. '_' . md5($this->getTemplate() . $this->getCurrenCategoryKey());
}
然后将替换为以下代码
public function getCacheKey()
{
return 'CATALOG_NAVIGATION_' . Mage::app()->getStore()->getId()
. '_' . Mage::getDesign()->getPackageName()
. '_' . Mage::getDesign()->getTheme('template')
. '_' . Mage::getSingleton('customer/session')->getCustomerGroupId()
. '_' . md5($this->getTemplate() . $this->getCurrenCategoryKey())
**. '_' . md5($this->getSkinUrl());**
}
就是这样。您现在可以在Internet Explorer上使用和平的https。
通过添加此行,只要加载https页面,皮肤也会进入https,因此我没有得到错误。但在EE 1.9中,我无法找到此功能 在 Mage_Catalog_Block_Navigation 。
我试过命令行,
find -type f -print0 | xargs -0 grep -i "getCacheKey()"
这不会以这种方式返回函数,该函数具有一些其他缓存信息。
有人解决了这个问题。请帮助找到这个功能。
答案 0 :(得分:2)
我在DOCROOT\app\code\core\Mage\Catalog\Block\Navigation.php
中看到以下代码块:
/**
* Get Key pieces for caching block content
*
* @return array
*/
public function getCacheKeyInfo()
{
$shortCacheId = array(
'CATALOG_NAVIGATION',
Mage::app()->getStore()->getId(),
Mage::getDesign()->getPackageName(),
Mage::getDesign()->getTheme('template'),
Mage::getSingleton('customer/session')->getCustomerGroupId(),
'template' => $this->getTemplate(),
'name' => $this->getNameInLayout()
);
$cacheId = $shortCacheId;
$shortCacheId = array_values($shortCacheId);
$shortCacheId = implode('|', $shortCacheId);
$shortCacheId = md5($shortCacheId);
$cacheId['category_path'] = $this->getCurrenCategoryKey();
$cacheId['short_cache_id'] = $shortCacheId;
return $cacheId;
}
您应该能够覆盖和更新返回的密钥以满足您的目的。
干杯, JD