El bloque de mensajes no usa la plantilla de tema

12

Estoy tratando de cambiar el archivo phtml para el bloque de mensajes. Encontré el tema base template/core/messages.phtmly lo copié en mi tema e hice los cambios. Mis cambios no se muestran, así que intenté modificar la fuente en el archivo base y los cambios aún no se aplicaron.

¿Dónde se encuentra este archivo de plantilla o cómo puedo sobrescribirlo?

kel
fuente
Hey kel, ¿te diste cuenta de esto al final?
jharrison.au

Respuestas:

11

Lamentablemente, el core/messages.phtmlarchivo no se utiliza para los mensajes de los que está hablando. Todo el HTML se genera en el nivel de bloque en Mage_Core_Block_Messages.

La buena noticia es que puede controlar las etiquetas utilizadas en los mensajes llamando a estas funciones:

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

Un ejemplo de implementar esto sería modificar su layout/page.xmlarchivo encontrando las líneas que leen:

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

Y cambiarlos a 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>

Y si necesita aún más control, puede anular el bloque en su propio módulo y personalizar los métodos getHtml()y getGroupedHtml().

¡Feliz estilo!

jharrison.au
fuente
Estoy constantemente asombrado de lo que se puede lograr a través de acciones de diseño xml
philwinkle
Sí, son geniales: puede llamar a cualquier método de bloque a través del diseño XML de la misma manera que lo haría en un *.phtmlarchivo con $this->doSomething()o $this->setSomeData('foobar').
jharrison.au
¿Cómo se agregan las clases CSS? Me gustaría aplicar estilos de arranque de Twitter
Sven