【问题标题】:Remove fields from customer adminhtml tab从客户 adminhtml 选项卡中删除字段
【发布时间】:2014-12-02 16:33:45
【问题描述】:

我试图从 Magento adminhtml > 客户 > 管理客户 > 客户信息 > 帐户信息选项卡中删除两个字段,但似乎无法让 Magento 识别我所做的事情。 (至少,我看不到。)

在我想要包含覆盖的自定义模块中,我有:

文件:app/code/community/MyCompany/Profile/Block/Adminhtml/Customer/Edit/Tab/Account.php

class MyCompany_Profile_Block_Adminhtml_Customer_Edit_Tab_Account
    extends Mage_Adminhtml_Block_Customer_Edit_Tab_Account
{
    public function initForm()
    {
        die('My module adminhtml block loaded!');
    }
 }

一旦我可以确认上面的 initForm() 方法被调用,我将修改它以删除字段。但是,此时此刻,由于它甚至似乎都没有被调用,所以我首先关注的是我所拥有的基本设置。

文件:app/code/community/MyCompany/Profile/etc/config.xml

...
    <blocks>
        <profile>
            <class>MyCompany_Profile_Block</class>
        </profile>
        <adminhtml>
            <rewrite>
                <customer_edit_tab_account>MyCompany_Profile_Block_Adminhtml_Customer_Edit_Tab_Account</customer_edit_tab_account>
            </rewrite>
        </adminhtml>
    </blocks>

我没有收到 die() 或任何错误。我假设有一些小而重要的项目我没有设置/调用。

附:我不想从 Magento 中删除客户属性,这就是为什么我试图从它们出现的 adminhtml 选项卡中抑制/删除它们。

P.P.S.缓存已完全禁用,因此不是配置缓存问题。

【问题讨论】:

  • 已将您的模块 xml 添加到 app/etc/modules/ 文件夹中?
  • Magento 缓存在开发环境中被禁用。我还刷新了我的 redis 缓存并重新启动了 nginx。这被添加到现有的功能模块中,因此 MyCompany_Profile.xml 文件已存在于 app/etc/modules 中。

标签: magento adminhtml


【解决方案1】:

我只是在浏览一些 Magento 的东西,我偶然发现了这个。

以防万一有人被类似方法卡住,这可能会有所帮助。

首先创建modules xml文件; 文件: /app/etc/modules/MyCompany_Profile.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>
    <modules>
        <MyCompany_Profile>
            <active>true</active>
            <codePool>community</codePool>
            <version>1.0.0</version>
        </MyCompany_Profile>
    </modules>
</config>

重要提示:因为codePoolcommunity,如果codePoollocal,我们会将我们的插件相应地放在/app/code/community/ 下,而不是将我们的插件放在@987654327 下@

现在让我们创建我们的 config.xml 文件: /app/code/community/MyCompany/Profile/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>
    <modules>
        <MyCompany_Profile>
            <version>1.0.0</version>
        </MyCompany_Profile>
    </modules>

    <global>
        <blocks>
            <adminhtml>
                <rewrite>
                    <customer_edit_tab_account>
                        MyCompany_Profile_Block_Customer_Edit_Tab_Account
                    </customer_edit_tab_account>
                </rewrite>
            </adminhtml>
        </blocks>
    </global>
</config>

现在我们可以创建我们的类了;

文件: /app/code/community/MyCompany/Profile/Block/Customer/Edit/Tab/Account.php

class MyCompany_Profile_Block_Customer_Edit_Tab_Account extends Mage_Adminhtml_Block_Customer_Edit_Tab_Account
{

    /**
     * Form initiation modification
     */
    public function initForm()
    {
        die('hello world!');
    }
}

现在,如果您使用缓存,则需要清除它,因为 Magento 不会看到新生成的 XML 文件,因此无法读取和识别我们的模块和我们模块的 config.xml

完成后,继续访问个人资料,您将看到Hello World 打印在屏幕上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2011-03-19
    • 2021-01-24
    • 2023-03-24
    相关资源
    最近更新 更多