Глобальные сообщения на странице Magento CMS - PullRequest
3 голосов
/ 04 марта 2011

Я добавил логин mxpert на CMS-страницу домашней страницы моего сайта Magento.Я хотел бы загрузить Глобальные сообщения в этот логин, чтобы показать клиентам, если у них возникла ошибка при входе в систему.

Спасибо

Ответы [ 2 ]

7 голосов
/ 20 июля 2011

Используя это:

<?php echo
    Mage::app()->getLayout()->getMessagesBlock()->
        setMessages(Mage::getSingleton('customer/session')->getMessages(true))->getGroupedHtml() 
?>
1 голос
/ 04 марта 2011

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

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

Надеюсь, это поможет.


EDIT: -
По умолчанию Magento сохраняет все сообщения (успехи / ошибки / предупреждения) в определенном массиве сеансов. Он вызывается на каждой & каждой странице внешнего интерфейса, используя следующую строку кода: <?php echo $this->getChildHtml('global_messages') ?>.
Вы можете найти указанную выше строку почти во всех макетах страниц (например, «1column.phtml», «2columns-left.phtml» и т. Д.), Определенных в папке «app/design/frontend/base/default/template/page/». Кроме того, приведенная выше строка кода подразумевает, что в одном из XML-файлов Layout должен быть блок с именем "global_messages", если только он не был ошибочно подделан.

Теперь приведенный выше брифинг был необходим для понимания того, как система Magento показывает какие-либо сообщения. Таким образом, всякий раз, когда любое из этих сообщений (если оно существует) отображается на интерфейсной странице, соответствующий массив сеансов удаляет / удаляет эти элементы сообщения из своего массива.
Но главное, чтобы сообщения отображались на соответствующей странице, где они и должны быть. Если нет, то всякий раз, когда Magento находит подходящее место для показа сообщений, оно будет отображаться (на какой-то неподходящей странице). И я полагаю, это то же самое, что с вами происходит.

Так что будет лучше, если вы сможете проверить соответствующий файл шаблона и, соответственно, соответствующую страницу макета (среди страниц, перечисленных в папке "app/design/frontend/base/default/template/page/", таких как "1column.phtml", "2columns-left.phtml" & и т. д.) для следующего кода: -
<?php echo $this->getChildHtml('global_messages') ?>.

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