Khối tin nhắn không sử dụng mẫu chủ đề


12

Tôi đang cố gắng thay đổi tệp phtml cho khối tin nhắn. Tôi tìm thấy trong chủ đề cơ bản template/core/messages.phtmlvà sao chép nó vào chủ đề của tôi và thực hiện các thay đổi. Các thay đổi của tôi không hiển thị nên tôi đã thử sửa đổi nguồn trong tệp cơ sở và các thay đổi vẫn không được áp dụng.

Tệp mẫu này nằm ở đâu hoặc làm thế nào tôi có thể ghi đè lên nó?


Hey kel bạn đã tìm ra cái này cuối cùng?
jharrison.au

Câu trả lời:


11

Thật không may, core/messages.phtmltập tin không được sử dụng cho các tin nhắn bạn đang nói đến. Tất cả HTML được tạo ở cấp độ Khối trong Mage_Core_Block_Messages.

Tin vui là bạn có thể kiểm soát các thẻ được sử dụng trong tin nhắn bằng cách gọi các chức năng này:

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

Một ví dụ về việc thực hiện điều này sẽ là sửa đổi layout/page.xmltệp của bạn bằng cách tìm các dòng đọc:

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

Và thay đổi chúng thành một cái gì đó như:

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

Và nếu bạn cần kiểm soát nhiều hơn nữa thì bạn có thể ghi đè lên khối trong mô-đun của riêng bạn và tùy chỉnh các phương thức getHtml()getGroupedHtml().

Chúc mừng phong cách!


Tôi liên tục ngạc nhiên về những gì có thể được thực hiện thông qua các hành động xml bố trí
philwinkle

Vâng, chúng thật tuyệt - bạn có thể gọi bất kỳ phương thức chặn nào thông qua bố cục XML giống như bạn làm trong một *.phtmltệp có $this->doSomething()hoặc $this->setSomeData('foobar').
jharrison.au

Làm thế nào để bạn thêm các lớp css? Tôi muốn áp dụng các kiểu bootstrap twitter
Sven
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.