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

标签 magento block magento-1.7 core extend

我正在尝试覆盖 magento 中的消息传递 block ,但无法使其正常工作。

我创建了所需的文件:

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

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

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

有人可以帮忙吗???

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

非常感谢大家。

最佳答案

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

关于magento - 覆盖\app\code\core\Mage\Core\Block\Messages.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591586/

相关文章:

Magento 命名约定

php - 以编程方式创建的可配置项在我手动将其保存在管理面板中之前不会显示选项

magento - 使用 Paypal 在 magento 1.9.2 中自动开具发票

php - 检查 magento url 中的 UTM 标签

magento - Magento 2 中小部件布局更新的自定义目标

objective-c - 我是否应该在对象指针上使用 __block 说明符,即使它在没有它的情况下也能工作?

c# - C#阻止鼠标移动

objective-c - ObjC block 和 openssl C 回调

php - JavaScript 的 magento 转义字符串第 2 部分

magento - 在 Magento 上使用 Google 站点验证元标记