Blok wiadomości nie używa szablonu motywu


12

Próbuję zmienić plik phtml dla bloku komunikatów. Znalazłem motyw podstawowy template/core/messages.phtmli skopiowałem go do mojego motywu i wprowadziłem zmiany. Moje zmiany się nie pokazały, więc próbowałem zmodyfikować źródło w pliku podstawowym, a zmiany nadal nie zostały zastosowane.

Gdzie znajduje się ten plik szablonu lub jak go zastąpić?


Hej Kel, czy wymyśliłeś to w końcu?
jharrison.au

Odpowiedzi:


11

Niestety core/messages.phtmlplik nie jest używany do wiadomości, o których mówisz. Cały HTML jest generowany na poziomie bloku w Mage_Core_Block_Messages.

Dobrą wiadomością jest to, że możesz kontrolować tagi używane w wiadomościach, wywołując te funkcje:

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

Przykładem tego byłoby zmodyfikowanie layout/page.xmlpliku przez znalezienie wierszy, które czytają:

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

I zmieniając je na coś takiego:

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

A jeśli potrzebujesz jeszcze większej kontroli, możesz zastąpić blok we własnym module i dostosować metody getHtml()i getGroupedHtml().

Wesołej stylizacji!


Ciągle zadziwia mnie to, co można osiągnąć za pomocą działań związanych z układem xml
philwinkle

Tak, są świetne - możesz wywołać dowolną metodę blokową za pomocą układu XML tak samo, jak w *.phtmlpliku z $this->doSomething()lub $this->setSomeData('foobar').
jharrison.au

Jak dodajesz klasy css? Chciałbym zastosować style bootowania na Twitterze
Sven
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.