Как получить глобальные сообщения на странице сравнения продуктов, блок getmessagesблок пуст


Я пытаюсь получить глобальные сообщения на странице сравнения продуктов , но ни одно из сообщений не отображается, вместо этого все они появляются на любой последующей странице, которую я собираюсь, после создания сообщений, например, с удалением продукта из сравнения. Я понимаю, что это нормальное поведение для Magento, потому что обычно страница сравнения имеет шаблон всплывающего окна, но я setTemplate к 1column.phtml в моем local.xml. Теперь мне нужно, чтобы там тоже появлялись глобальные сообщения. Я включил:

<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>

До catalog/product/compare/list.phtml, но сообщения отображаются только на любой последующей странице, а не на странице списка сравнения. Как я узнал отсюда, вы можете добавлять пользовательские сообщения. Так я и сделал

$this->getMessagesBlock()->addError('Test Error!');
echo $this->getMessagesBlock()->getGroupedHtml();

Теперь эта пользовательская ошибка отображается так, как должна, но ни одно из других сообщений не отображается. Как я могу заставить все сообщения сеанса отображаться на странице сравнения?

Author: Community, 2013-05-01

1 answers

Для появления сообщений вам необходимо вызвать это в контроллере перед вызовом renderLayout()

$this->initLayoutMessages('catalog/session');

Это подскажет Magento отображать сообщения, установленные для определенного типа сеанса. В приведенном выше примере Magento указывает отображать сообщения, установленные для сеанса каталога.
Другими вариантами являются customer/session, core/session, checkout/session, tag/session и adminhtml/session и admin/session (для серверной части).
Вы можете вызвать этот метод с массивом параметров

$this->initLayoutMessages(array('catalog/session', 'customer/session'));

В заключение, если вы хотите, чтобы отображались сообщения в списке сравнения вы должны переопределить контроллер сравнения продуктов или использовать событие controller_action_layout_render_before_catalog_product_compare_index и ввести необходимые сообщения сеанса.

 9
Author: Marius, 2013-08-12 15:17:14