Как использовать отдельные кэши блоков для безопасного и незащищенного доступа к магазину в Magento? - PullRequest
6 голосов
/ 07 мая 2010

Я использую кеш Magento для верхнего блока навигации. Проблема в том, что блок должен генерировать некоторые URL-адреса для файлов в каталоге скинов, которые не могут быть помещены в CSS-файлы, так как имена файлов зависят от данных модели категории.

Теперь, когда я открываю magento, используя безопасное соединение (https://), блок навигации выбирается из кэша и отправляется в браузер, но с URL-адресами http: //, что приводит к предупреждению в большинстве браузеров о незащищенных элементах на стр.

Я бы хотел иметь отдельные кэши для безопасных и незащищенных соединений. Блок навигации расширяет класс Mage_Catalog_Block_Navigation и поэтому имеет следующую конфигурацию кэша:

    $this->addData(array(
        'cache_lifetime'    => false,
        'cache_tags'        => array(Mage_Catalog_Model_Category::CACHE_TAG, Mage_Core_Model_Store_Group::CACHE_TAG),
    ));

1 Ответ

4 голосов
/ 07 мая 2010

Хм, проще, чем я думал ...

Я попытался переопределить метод getCacheKey(), добавив флаг с текущим состоянием безопасности, но сначала это не увенчалось успехом, но после нескольких очисток кеша это, похоже, работаетсейчас:

public function getCacheKey()
{
    $key = parent::getCacheKey();
    $key .= Mage::app()->getStore()->isCurrentlySecure() ? '_S' : '_U';

    return $key;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...