1

我对 Magento 很陌生,我正在尝试向 Magento 后端的客户视图添加一个新选项卡。

我为它做了一个新的扩展/模块。以下是我的 etc/config.xml 的一些摘录:

<global>
    <blocks>
        <showidea>
            <class>Whatever_Extendcustomer_Block</class>
        </showidea>
    </blocks>
    <!-- ... -->
</global>
<adminhtml>
    <layout>
        <updates>
            <showidea>
                <file>whatever_extendcustomer.xml</file>
            </showidea>
        </updates>
    </layout>
</adminhtml>

这里是whatever_extendcustomer.xml 文件的内容:

<adminhtml_customer_edit>
    <reference name="customer_edit_tabs">
        <action method="addTab">
            <name>extendcustomer_showidea</name>
            <block>extendcustomer/adminhtml_customer_showidea</block>
        </action>
    </reference>
</adminhtml_customer_edit>

当然这个块是存在的,它扩展了Mage_Adminhtml_Block_Template并实现了Mage_Adminhtml_Block_Widget_Tab_Interface

当我转到客户的详细信息时,我现在收到错误:错误的选项卡配置。在 Magento 的错误日志中:

/var/www/vhosts/whatever/htdocs/app/Mage.php:594 中带有消息“无效块类型:Mage_Extendcustomer_Block_Adminhtml_Customer_Showidea”的异常“Mage_Core_Exception”

我认为这是问题所在,因为 Mage_Extendcustomer 是错误的。它应该是whatever_ ...但我不知道为什么它在前面加上Mage_ 而不是我的whatever_ 命名空间。

我希望有人能给我线索!谢谢。

4

1 回答 1

5

您应该在布局文件中使用showidea,而不是:extendcustomer

<adminhtml_customer_edit>
    <reference name="customer_edit_tabs">
        <action method="addTab">
            <name>extendcustomer_showidea</name>
            <block>showidea/adminhtml_customer_showidea</block>
        </action>
    </reference>
</adminhtml_customer_edit>

因为这是您在 blocks config 中定义的:

<blocks>
    <showidea>
        <class>Whatever_Extendcustomer_Block</class>
    </showidea>
</blocks>
于 2012-07-16T12:03:53.963 回答