我正在尝试向Magento管理员的“客户编辑”页面添加新标签,并在该标签上有一个表单,该表单使用模型加载和保存数据。
我让标签工作正常(但我很确定这种做法非常糟糕):
萨勒曼/ Tabtest /砌块/ Adminhtml /客户/编辑/标签/ action.php的
public function __construct()
{
$this->setTemplate('tabtest/action.phtml');
}
public function getCustomtabInfo(){
$customer = Mage::registry('current_customer');
$customtab='My test tab';
return $customtab;
}
/**
* Return Tab label
*
* @return string
*/
public function getTabLabel()
{
return $this->__('Sulman Test Tab');
}
/**
* Return Tab title
*
* @return string
*/
public function getTabTitle()
{
return $this->__('Sulman Test Tab Title');
}
/**
* 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';
}
}
然后我的etc / config.xml看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Sulman_Tabtest>
<version>0.0.1</version>
</Sulman_Tabtest>
</modules>
<adminhtml>
<layout>
<updates>
<tabtest>
<file>tabtest.xml</file>
</tabtest>
</updates>
</layout>
</adminhtml>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<sulman_tabtest before="Mage_Adminhtml">Sulman_Tabtest_Adminhtml</sulman_tabtest>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<global>
<blocks>
<tabtest>
<class>Sulman_Tabtest_Block</class>
</tabtest>
</blocks>
</global>
</config>
最后我的tabtest / action.phtml看起来像这样(可怕的......):
<?php
$customer = Mage::registry('current_customer');
$read = Mage::getSingleton('core/resource')->getConnection('core_read');
$sql = "SELECT * FROM mytable WHERE entity_id = '".$customer->getId()."'";
$results = $read->fetchAll($sql);
?>
<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">My title</h4>
</div>
<div id="group_fields4" class="fieldset fieldset-wide">
<div class="hor-scroll">
<h3>My title</h3>
<div>
<form action="<?php echo $this->getUrl('adminhtml/tabtest/update/', array('customer_id' => $customer_id)); ?>;" method="get">
<?php foreach($results as $result):?>
<p>
<strong><?php echo $result['email']?></strong><br/>
Max Order Amount: <input type="text" name="max_order_amount" value="<?php echo $result['max_order_amount']?>"><br/>
</p>
<?php endforeach; ?>
<input type="submit" value="Post This Form"/>
</form>
</div>
</div>
</div>
</div>
</div>
然后我将设置一个updateAction控制器来处理帖子,更新数据库等并重定向......
坦率地说,这一切看起来都是一种非常糟糕的方式...... 我已经在谷歌和这里找到了但却无法真正找到解决方案。我也试图通过Magento Core追踪。我也试图找到一个Magento连接模块,这样做,所以我可以研究它!
我真的需要一个tab_form并以这种方式设置它,但我找不到这样做的方法。
有人指出我正确的方向吗?感谢。
答案 0 :(得分:-1)
您可以尝试应用以下文章中提供的代码。
http://mydons.com/how-to-add-custom-tabs-to-magento-customer-edit-page/