Magento 1.6添加标签,客户编辑后端


Magento 1.6 add tab to customer edit on back end

我一直在尝试在Magento CE 1.6的客户信息页面中添加一个选项卡。

我试过下面的例子:

  • 如何在mydons.com上添加自定义选项卡到magento客户编辑页面
  • 如何在nextbits.eu的magento管理中添加客户信息选项卡
  • 如何在ankursphp.blogspot.com的客户信息中添加标签

最后一个似乎是唯一接近的。然而,它有两个问题。一是它编辑核心文件,二是当我点击标签时,它旋转和染色。Chrome DevTools显示服务器报告404.

谁能给我提供一些体面的文档或代码与Magento 1.6兼容?


Edit添加最后一个链接的文本,因为这似乎是唯一一个远程工作的。

  1. 覆盖文件/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tabs.php,Inside _beforeToHtml()方法,添加以下代码:

    <>之前$ this -> addTab("自定义",阵列('标签' =>法师:辅助("客户")-> __("自定义"),'class' => 'ajax';的网址 ' => $ ——> getUrl(*/*/定制,数组("_current"=> true)),));
  2. 覆盖/app/code/core/Mage/Adminhtml/controllers/CustomerController.php文件,添加以下代码:

    <>之前公共函数customAction(){$ this -> _initCustomer ();$ this -> getResponse()——> setBody (法师::应用()-> getLayout()——> createBlock("核心/模板")-> setTemplate(自定义/客户/标签/custom.phtml) -> setCustomerId(法师:注册表(current_customer) -> getId ())-> setUseAjax(真正的)-> toHtml ());}
  3. 创建文件/app/code/core/Namespace/ModuleName/Block/Adminhtml/Customer/Edit/Tab/并创建Custom.php,将以下源代码添加到文件中:

    <>之前& lt; ?php类Custom_Custom_Block_Adminhtml_Customer_Edit_Tab_Custom扩展Mage_Adminhtml_Block_Widget_Form{公共函数__construct(){父:__construct ();$ this -> setTemplate("自定义/客户/标签/custom.phtml");}}比;
  4. 现在,需要创建一个模板文件。点击/app/design/adminhtml/default/default/template/modulename/customer/tab/,创建custom.phtml

成功地找到了一些不需要任何修改就可以工作的开箱代码:

http://www.engine23.com/magento-how-to-create-custom-customer-tab-and-submit-a-form.html

应用程序/etc/模块/Russellalbin_Customertab.xml

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

应用程序/etc/地方/Russellalbin/Customertab/etc/config . xml

<config>
    <modules>
        <Russellalbin_Customertab>
            <version>0.0.1</version>
        </Russellalbin_Customertab>
    </modules>
    <adminhtml>
        <layout>
            <updates>
                <customertab>
                    <file>customertab.xml</file>
                </customertab>
            </updates>
        </layout>
    </adminhtml>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <russellalbin_customertab before="Mage_Adminhtml">Russellalbin_Customertab_Adminhtml</russellalbin_customertab>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    <global>
        <blocks>
            <customertab>
                <class>Russellalbin_Customertab_Block</class>
            </customertab>
        </blocks>
    </global>
</config>

app/代码/地方/Russellalbin/Customertab/块/Adminhtml/客户/编辑/标签/Action.php

/**
 * Adminhtml customer action tab
 *
 */
class Russellalbin_Customertab_Block_Adminhtml_Customer_Edit_Tab_Action
    extends Mage_Adminhtml_Block_Template
    implements Mage_Adminhtml_Block_Widget_Tab_Interface
{
    public function __construct()
    {
        $this->setTemplate('customertab/action.phtml');
    }
    public function getCustomtabInfo()
    {
        $customer = Mage::registry('current_customer');
        $customtab = 'Mail Order Comics Pull List';
        return $customtab;
    }
    /**
     * Return Tab label
     *
     * @return string
     */
    public function getTabLabel()
    {
        return $this->__('Customer Pull List');
    }
    /**
     * Return Tab title
     *
     * @return string
     */
    public function getTabTitle()
    {
        return $this->__('Pull List Tab');
    }
    /**
     * Can show tab in tabs
     *
     * @return boolean
     */
    public function canShowTab()
    {
        $customer = Mage::registry('current_customer');
        return (bool)$customer->getId();
    }
    /**
     * Tab is hidden
     *
     * @return boolean
     */
    public function isHidden()
    {
        return false;
    }
    /**
     * Defines after which tab, this tab should be rendered
     *
     * @return string
     */
    public function getAfter()
    {
        return 'tags';
    }
}

app/代码/地方/Russellalbin/Customertab/控制器/Adminhtml/CustomertabController.php

class Russellalbin_Customertab_Adminhtml_CustomertabController extends Mage_Adminhtml_Controller_Action
{
    function resetAction()
    {
        $params = array();
        $path = 'customer';
        $customer_id = (int)$this->getRequest()->getParam('customer_id');
        if($customer_id)
        {
            // Do your stuff here

            $params['id'] = $customer_id;
            $params['back'] = 'edit';
            $params['tab'] = 'customer_edit_tab_action';
            $path = 'adminhtml/customer/edit/';
        }
        $params['_store'] = Mage::getModel('core/store')->load(0);
        $url = Mage::getModel('adminhtml/url')->getUrl($path, $params);
        Mage::app()
            ->getResponse()
            ->setRedirect($url);
        Mage::app()
            ->getResponse()
            ->sendResponse();
        exit;
    }
}

app/设计/adminhtml/违约/违约/布局/customertab.xml

<?xml version="1.0"?>
<layout version="0.1.0">
<adminhtml_customer_edit>
    <reference name="customer_edit_tabs">
        <action method="addTab">
            <name>customer_edit_tab_action</name>
            <block>customertab/adminhtml_customer_edit_tab_action</block>
        </action>
    </reference>
</adminhtml_customer_edit>
</layout>

应用程序/设计/adminhtml/违约/违约/模板/customertab/action.phtml

<div id="customer_info_tabs_customer_edit_tab_action_content">
    <div class="entry-edit">
        <div class="entry-edit-head">
            <h4 class="icon-head head-edit-form fieldset-legend">Pull List</h4>
        </div>
        <div id="group_fields4" class="fieldset fieldset-wide">
            <div class="hor-scroll">
                <h2>This is my form and content that I can submit and return back to this page and tab</h2>
                <div><form action="<?php echo $this->getUrl('adminhtml/customertab/reset/', array('customer_id'=> $customer_id)); ?>" method="get"><input type="submit" value="Post This Form" /></form></div>
            </div>
        </div>
    </div>
</div>
  1. app/code/local/Namespace/Module/etc/config.xml:确保声明你的块别名和你的adminhtml布局文件:

    <config>
        ...
        <global>
            ...
            <blocks>
                <namespace_module>
                    <class>Namespace_Module_Block</class>
                </namespace_module>
            </blocks>
            ...
        </global>
        ...
        <adminhtml>
            ...
            <layout>
                <updates>
                    <namespace_module>
                        <file>namespace/module.xml</file>
                    </namespace_module>
                </updates>
            </layout>
            ...
        </adminhtml>
        ...
    </config>
    
  2. app/design/adminhtml/default/default/layout/namespace/module.xml: declare your new tab

    <layout version="0.1.0">
        ...
        <adminhtml_customer_edit>
            <reference name="customer_edit_tabs">
                <action method="addTabAfter">
                    <name>custom_tab</name><!--can be anything you want-->
                    <block>namespace_module/adminhtml_customer_edit_tab_custom</block>
                    <after>account</after><!-- after which tab do you want it -->
                </action>
            </reference>
        </adminhtml_customer_edit>
        ...
    </layout>
    
  3. app/code/local/Namespace/Module/Block/Adminhtml/Customer/Edit/Tab/Custom.php:这是你的Block类

    <?php
    class Namespace_Module_Block_Adminhtml_Customer_Edit_Tab_Custom
        extends Mage_Adminhtml_Block_Widget_Form
        implements Mage_Adminhtml_Block_Widget_Tab_Interface
    {
        public function __construct()
        {
            parent::__construct();
            $this->setTemplate('namespace/module.phtml');
        }
        public function getTabLabel()
        {
            return Mage::helper('namespace_module')->__('Tab Label');
        }
        public function getTabTitle()
        {
            return Mage::helper('namespace_module')->__('Tab Title');
        }
        public function canShowTab()
        {
            return true;
        }
        public function isHidden()
        {
            return false;
        }
    }
    
  4. 应用程序/设计/adminhtml/违约/违约/模板/命名空间/模块。phtml:标签内容:

    enter html code here