消息块未使用主题模板


12

我正在尝试更改message块的phtml文件。我发现基本主题template/core/messages.phtml并将其复制到我的主题中并进行了更改。我的更改未显示,因此我尝试修改基本文件中的源,但更改仍未应用。

该模板文件在哪里或如何覆盖?


嘿,凯尔,你到底想出这个吗?
jharrison.au 2013年

Answers:


11

不幸的是,该core/messages.phtml文件未用于您所说的消息。所有HTML均在中的“块”级别生成Mage_Core_Block_Messages

好消息是您可以通过调用以下函数来控制消息中使用的标签:

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

实现此目的的一个示例是layout/page.xml通过查找以下行来修改文件:

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

并将它们更改为:

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

而且,如果您需要更多控制权,则可以在自己的模块中覆盖该块并自定义getHtml()getGroupedHtml()方法。

造型愉快!


我在什么可以通过布局XML行动来实现不断惊讶
philwinkle

是的,它们很棒-您可以通过布局XML调用任何块方法,就像*.phtml使用$this->doSomething()或在文件中一样$this->setSomeData('foobar')
jharrison.au 2013年

如何添加CSS类?我想应用Twitter引导程序样式
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.