2

Magento でメッセージング ブロックをオーバーライドしようとしていますが、機能しません。

必要なファイルを作成しました:

\app\etc\modules\Dss_Core.xml
\app\code\local\Dss\Core\Block\Messages.php
\app\code\local\Dss\Core\etc\config.xml

カスタム admin login.phtml も作成しましたが、正しく表示されています。しかし、login.phtml で "getMessagesBlock()->getGroupedHtml() ?>" を呼び出すと、Dss_Core_Block_Messages からのメッセージが表示されません。

すべて(ファイルの変更/マジェントキャッシュのクリア)を試しましたが、機能しません。

誰か助けてくれませんか???

\app\etc\modules\Dss_Core.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Dss_Core>
            <active>true</active>
            <codePool>local</codePool>
        </Dss_Core>
    </modules>
</config>

\app\code\local\Dss\Core\etc\config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Dss_Core>
            <version>0.1.0</version>
        </Dss_Core>
    </modules>
    <global>
        <blocks>
           <core>
              <rewrite>
                  <messages>
                      Dss_Core_Block_Messages
                  </messages>
              </rewrite>
           </core>
        </blocks>
    </global>
</config>

\app\code\local\Dss\Core\Block\Messages.php

<?php
class DSS_Core_Block_Messages extends Mage_Core_Block_Messages
{
    public function getGroupedHtml()
    {
        return '<div class="alert alert-block" style="color: white;">custom dss errors</div>';
    }
}

\app\design\adminhtml\default\dss\template\login.phtml

<body id="page-login" onload="document.forms.loginForm.username.focus();">
    <div class="container login-container">
    <div id="messages"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div>
        <div class="login-box rounded">
            <form method="post" action="" id="loginForm">
                <div class="login-form">
                ...
                </div>
            </form>
        </div>
    </div>
</body>
</html>

みんなありがとう。

4

2 に答える 2

2

あなたの問題は、代わりDSS_Core_Block_Messagesにあるべきクラス名のタイプミスです。Dss_Core_Block_Messagesまた、書き換えエントリを1行に入れる必要があります<messages>Dss_Core_Block_Messages</messages>

于 2013-03-23T23:31:49.207 に答える