Получение текущей категории с включенным FPC - PullRequest
1 голос
/ 26 сентября 2011

Можно ли получить текущую категорию при включенном Full Page Cache? Контроллер каталога в этом случае не выполняется, поэтому реестр (ключ current_category) пуст. Все, что я могу получить, это корневая категория

Спасибо

Ответы [ 3 ]

3 голосов
/ 27 сентября 2011

Одним из возможных решений является получение идентификатора категории по заданному URL.У вас есть таблица переписываний 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();
        }
    }

Возможно, это не красивое решение, но у меня оно сработало.

1 голос
/ 27 сентября 2011

Вам нужно получить его через слой:

$layer = Mage::getSingleton('catalog/layer');
$_category = $layer->getCurrentCategory();
$currentCategoryId= $_category->getId();

С уважением, Кенни

0 голосов
/ 20 октября 2014

Вы пробиваете свой блок, как указано здесь:

Я пишу модуль со списком случайных товаров, это не зависит от FPC путем реализации перфорации

Это означает, что ваш блок является урезанной версией Magento (см. Метод applyWithoutApp ()), поэтому для доступа к current_category из реестра вам необходимо зарегистрировать его в вашем контейнере в модуле дырокола.

...