Bloco de mensagens que não usa modelo de tema

12

Estou tentando alterar o arquivo phtml para o bloco de mensagens. Encontrei no tema base template/core/messages.phtmle copiei para o meu tema e fiz as alterações. Minhas alterações não foram exibidas, então tentei modificar a fonte no arquivo base e as alterações ainda não foram aplicadas.

Onde está localizado esse arquivo de modelo ou como posso substituí-lo?

kel
fonte
Hey kel, você descobriu esse no final?
jharrison.au

Respostas:

11

Infelizmente, o core/messages.phtmlarquivo não é usado para as mensagens das quais você está falando. Todo o HTML é gerado no nível do bloco em Mage_Core_Block_Messages.

A boa notícia é que você pode controlar as tags usadas nas mensagens chamando estas funções:

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

Um exemplo de implementação disso seria modificar seu layout/page.xmlarquivo localizando as linhas que lêem:

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

E alterá-los para algo como:

        <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>

E se você precisar de ainda mais controle, poderá substituir o bloco em seu próprio módulo e personalizar os métodos getHtml()e getGroupedHtml().

Estilo feliz!

jharrison.au
fonte
Estou constantemente espantado com o que pode ser realizado através de acções layout XML
philwinkle
Sim, eles são ótimos - você pode chamar qualquer método de bloco através do XML de layout da mesma maneira que faria em um *.phtmlarquivo com $this->doSomething()or $this->setSomeData('foobar').
jharrison.au
Como você adiciona classes css? Eu gostaria de aplicar estilos Twitter Bootstrap
Sven