Блок сообщений не использует шаблон темы


12

Я пытаюсь изменить файл phtml для блока сообщений. Я нашел в базовой теме, template/core/messages.phtmlскопировал ее в мою тему и внес изменения. Мои изменения не отображались, поэтому я попытался изменить исходный код в базовом файле, но изменения все еще не были применены.

Где находится этот файл шаблона или как его перезаписать?


Эй, Кел, ты понял это в конце?
jharrison.au

Ответы:


11

К сожалению, core/messages.phtmlфайл не используется для сообщений, о которых вы говорите. Весь HTML генерируется на уровне блоков в Mage_Core_Block_Messages.

Хорошей новостью является то, что вы можете контролировать теги, используемые в сообщениях, вызывая эти функции:

  1. Mage_Core_Block_Messages::setMessagesFirstLevelTagName($tagName)
  2. Mage_Core_Block_Messages::setMessagesSecondLevelTagName($tagName)

Примером реализации этого может быть изменение вашего layout/page.xmlфайла путем нахождения строк, которые читают:

<block type="core/messages" name="global_messages" as="global_messages"/>
<block type="core/messages" name="messages" as="messages"/>

И изменив их на что-то вроде:

        <block type="core/messages" name="global_messages" as="global_messages">
            <action method="setMessagesFirstLevelTagName"><tagName>div</tagName></action>
            <action method="setMessagesSecondLevelTagName"><tagName>span</tagName></action>
        </block>
        <block type="core/messages" name="messages" as="messages">
            <action method="setMessagesFirstLevelTagName"><tagName>div</tagName></action>
            <action method="setMessagesSecondLevelTagName"><tagName>span</tagName></action>
        </block>

А если вам нужно еще больше контроля , то вы можете переопределить блок в своем собственном модуле и настроить getHtml()и getGroupedHtml()методы.

Удачного стиля!


Я постоянно удивляюсь тому, что можно сделать с помощью действий с макетом XML
philwinkle

Да, они великолепны - вы можете вызывать любой блочный метод через макет XML точно так же, как в *.phtmlфайле с помощью $this->doSomething()или $this->setSomeData('foobar').
jharrison.au

Как вы добавляете классы CSS? Я хотел бы применить стили начальной загрузки Twitter
Sven
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.