Почему я не могу отобразить блок сообщений в Magento на странице категории? - PullRequest
5 голосов
/ 15 марта 2012

Я пытаюсь заставить Magento перенаправить после того, как клиент нажимает кнопку «Добавить в корзину» на страницу категории, что я сделал без проблем (после небольшого поиска, конечно), используя скрытое поле с именем «return_url». Эта часть работает отлично, и товар добавляется в корзину, и пользователь перенаправляется обратно на страницу категории. Оказавшись здесь, независимо от того, что я пробовал, я не могу получить блок сообщений, чтобы показать сообщение об успешном (или об ошибке). Вот моя последняя попытка кода (в view.phtml):

$messages=Mage::getSingleton("checkout/session")->getMessages();
echo $this->getLayout()->createBlock("core/messages")->setMessages($messages)->getGroupedHtml();

Спасибо! * * 1004

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Вы пробовали более простые addSuccess / addError / addNotice функции?

Mage::getSingleton('core/session')->addError(Mage::helper('core')->__('An error'));
Mage::getSingleton('core/session')->addSuccess(Mage::helper('core')->__('A success'));
Mage::getSingleton('core/session')->addNotice(Mage::helper('core')->__('A notice'));
0 голосов
/ 21 февраля 2019

Вы можете добавить сообщение к различным типам моделей сеансов, таким как «каталог», «клиент», «оформление заказа» или простое «ядро».

То же, что и:

Mage::getSingleton('catalog/session')
Mage::getSingleton('customer/session')
Mage::getSingleton('checkout/session')
Mage::getSingleton('core/session')

В вашем случае сообщения сеанса клиента не инициализируются в контроллере категорий. Взгляните на

\Mage_Catalog_CategoryController::viewAction

Конец функции должен выглядеть следующим образом:

$this->_initLayoutMessages('catalog/session');
$this->_initLayoutMessages('checkout/session');
$this->renderLayout();

Чтобы отобразить сообщения от "customer / session", эта область должна выглядеть следующим образом:

$this->_initLayoutMessages('catalog/session');
$this->_initLayoutMessages('customer/session');
$this->_initLayoutMessages('checkout/session');
$this->renderLayout();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...