覆盖\ app \ code \ core \ Mage \ Core \ Block \ Messages.php

时间:2013-03-23 20:16:24

标签: magento block magento-1.7 core extend

我试图在magento中覆盖消息块,但无法使其正常工作。

我创建了所需的文件:

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

我还创建了自定义管理员login.phtml,但其中一个正确显示。 但是当调用“getMessagesBlock() - > getGroupedHtml()?>”时在login.phtml中我没有看到来自我的Dss_Core_Block_Messages的消息。

我尝试了一切(更改文件/清除magento缓存)但无法使其正常工作。

有人可以帮忙???

\应用\等\模块\ Dss_Core.xml

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

\应用\代码\本地\决策支持系统\核心\等\ 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>

\应用\代码\本地\决策支持系统\核心\块\ 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>';
    }
}

\应用\设计\ adminhtml \默认\ DSS \模板\ 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>

非常感谢你们。

2 个答案:

答案 0 :(得分:2)

您的问题是类名DSS_Core_Block_Messages中的拼写错误,而应该是Dss_Core_Block_Messages。您还应该将重写条目放在一行<messages>Dss_Core_Block_Messages</messages>

答案 1 :(得分:1)

在我的情况下,扩展Mage_Core_Block_Messages的问题是magento的编译:System-&gt; Tools-&gt; Compilation 系统简单没有加载php文件,并且正在给白屏死机