Bloc de messages n'utilisant pas de modèle de thème


12

J'essaye de changer le fichier phtml pour le bloc de messages. J'ai trouvé dans le thème de base template/core/messages.phtmlet l' ai copié sur mon thème et j'ai apporté les modifications. Mes modifications ne sont pas affichées, j'ai donc essayé de modifier la source dans le fichier de base et les modifications n'ont toujours pas été appliquées.

Où se trouve ce fichier modèle ou comment puis-je le remplacer?


Hé kel, tu as fini par comprendre celui-là?
jharrison.au

Réponses:


11

Malheureusement, le core/messages.phtmlfichier n'est pas utilisé pour les messages dont vous parlez. Tout le code HTML est généré au niveau du bloc dans Mage_Core_Block_Messages.

La bonne nouvelle est que vous pouvez contrôler les balises utilisées dans les messages en appelant ces fonctions:

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

Un exemple d'implémentation serait de modifier votre layout/page.xmlfichier en trouvant les lignes qui se lisent:

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

Et les changer en quelque chose comme:

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

Et si vous avez besoin de plus de contrôle, vous pouvez remplacer le bloc dans votre propre module et personnaliser les méthodes getHtml()et getGroupedHtml().

Style heureux!


Je suis constamment étonné de ce qui peut être accompli via des actions de mise en page xml
philwinkle

Oui, ils sont géniaux - vous pouvez appeler n'importe quelle méthode de bloc via XML de mise en page exactement comme vous le feriez dans un *.phtmlfichier avec $this->doSomething()ou $this->setSomeData('foobar').
jharrison.au

Comment ajoutez-vous des classes CSS? Je voudrais appliquer des styles de bootstrap twitter
Sven
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.