我一直在尝试在Magento CE 1.6的客户信息页面中添加一个选项卡。
我试过下面的例子:
- 如何在mydons.com上添加自定义选项卡到magento客户编辑页面
- 如何在nextbits.eu的magento管理中添加客户信息选项卡
- 如何在ankursphp.blogspot.com的客户信息中添加标签
最后一个似乎是唯一接近的。然而,它有两个问题。一是它编辑核心文件,二是当我点击标签时,它旋转和染色。Chrome DevTools显示服务器报告404.
谁能给我提供一些体面的文档或代码与Magento 1.6兼容?
Edit添加最后一个链接的文本,因为这似乎是唯一一个远程工作的。
-
覆盖文件
<>之前$ this -> addTab("自定义",阵列('标签' =>法师:辅助("客户")-> __("自定义"),'class' => 'ajax';的网址 ' => $ ——> getUrl(*/*/定制,数组("_current"=> true)),));/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tabs.php
,Inside_beforeToHtml()
方法,添加以下代码: -
覆盖
<>之前公共函数customAction(){$ this -> _initCustomer ();$ this -> getResponse()——> setBody (法师::应用()-> getLayout()——> createBlock("核心/模板")-> setTemplate(自定义/客户/标签/custom.phtml) -> setCustomerId(法师:注册表(current_customer) -> getId ())-> setUseAjax(真正的)-> toHtml ());}/app/code/core/Mage/Adminhtml/controllers/CustomerController.php
文件,添加以下代码: -
创建文件
<>之前& lt; ?php类Custom_Custom_Block_Adminhtml_Customer_Edit_Tab_Custom扩展Mage_Adminhtml_Block_Widget_Form{公共函数__construct(){父:__construct ();$ this -> setTemplate("自定义/客户/标签/custom.phtml");}}比;/app/code/core/Namespace/ModuleName/Block/Adminhtml/Customer/Edit/Tab/
并创建Custom.php
,将以下源代码添加到文件中: -
现在,需要创建一个模板文件。点击
/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>
-
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>
-
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>
-
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; } }
-
应用程序/设计/adminhtml/违约/违约/模板/命名空间/模块。phtml:标签内容:
enter html code here