Переписать последний URL сеанса Magento

Как я могу получить URL-адрес перезаписи $_SESSION['core']['last_url']? Причина $_SESSION['core']['last_url'] возвращается вот так

каталог/продукт/вид/id/166/категория/8

и что мне нужно это

электроника/сотовые телефоны/htc-touch-diamond.html

Помогите, пожалуйста...


person eurica    schedule 16.04.2013    source источник


Ответы (1)


Последний посещенный URL устанавливается в методе Mage_Core_Controller_Front_Action::postDispatch(). Вы можете найти там эту строку

Mage::getSingleton('core/session')->setLastUrl(Mage::getUrl('*/*/*', array('_current'=>true)));

Mage::getUrl() отвечает за создание URL-адреса, поэтому здесь нет перезаписи. Вы можете переопределить этот метод и проверить, является ли это категорией или страницей продукта, и на основе этого назначить другой URL-адрес, например:


$url = Mage::getUrl('*/*/*', array('_current'=>true));
if (Mage::registry('current_product') || Mage::registry('current_category')) {
    $url = Mage::getBaseUrl() . substr($this->getRequest()->getOriginalPathInfo(), 1);
}
Mage::getSingleton('core/session')->setLastUrl($url);
person Ventus    schedule 16.04.2013