就像客户后端的展望一样,在magento中的自定义模块的后端添加多个选项卡和表单

时间:2014-02-01 06:44:12

标签: magento module tabs magento-1.7 admin

我创建了一个自定义扩展程序,就像客户模块一样,我就像客户一样想要后端。

我的扩展程序有两个表和两个模型。 我的模块是:

Mage::getModel('custommod/reg') - 就像Mage::getModel('customer/customer')一样,reg保存了注册数据

Mage::getModel('custommod/personal') - 就像Mage::getModel('customer/address')一样,//注册记录的个人数据。 请查看下图: enter image description here 现在我面临显示数据和编辑的问题。 在Magento客户管理部分,客户编辑位置有多个选项卡:帐户信息,地址等。

此处,“帐户信息”选项卡将数据保存在客户/客户中 和地址信息选项卡将数据保存在客户/地址中。

我喜欢这种类型的部分。

1 个答案:

答案 0 :(得分:7)

经过很长一段时间的工作,我已经完成了,这里的解决方案 tabs.php显示左侧面板

<?php

class Amit_Vendor_Block_Adminhtml_List_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
{
    public function __construct()
    {
        parent::__construct();
        $this->setId('vendor_tabs');
        $this->setDestElementId('edit_form');
        $this->setTitle(Mage::helper('vendor')->__('Manage Vendor'));
    }

    protected function _beforeToHtml()
    {
        $this->addTab('form_section', array(
            'label' => Mage::helper('vendor')->__('General Information'),
            'title' => Mage::helper('vendor')->__('General Information'),
            'content' => $this->getLayout()->createBlock('vendor/adminhtml_list_edit_tab_form')->toHtml(),
        ));



    $this->addTab('vendor_details',array(
                'label'=>Mage::helper('vendor')->__('Vendor Store  Details'),
                'title'=>Mage::helper('vendor')->__('Vendor Store  Details'),
                'content'=>$this->getLayout()->createBlock('vendor/adminhtml_list_edit_tab_storedetails')->toHtml(),

    ));
        return parent::_beforeToHtml();
    }
}

在form.php之后

<?php

class Amit_Vendor_Block_Adminhtml_List_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
    protected function _prepareForm()
    {
        $vendor = Mage::registry('vendor_data');
        $form = new Varien_Data_Form(); 
        $fieldset = $form->addFieldset('vendor_form', array(
            'legend' => Mage::helper('vendor')->__('Vendor Registration')
        ));

        $fieldset->addField('name', 'text', array(
            'name' => 'name',
            'label' => Mage::helper('vendor')->__('Name'),
            'required' => true,
        ));


        $fieldset->addField('email', 'text', array(
            'name'    => 'email',
            'label'   => Mage::helper('vendor')->__('Email'),
            'required' => true,

        ));
         $fieldset->addField('user_name', 'text', array(
            'name'    => 'user_name',
            'label'   => Mage::helper('vendor')->__('User name'),
            'required' => true,

        ));




        $fieldset->addField('password', 'password', array(
            'name'     => 'password',
            'class' => 'required-entry',
            'label'    => Mage::helper('vendor')->__('Password'),
            'required' => true,
        ));

        $this->setForm($form);
        $form->setValues($vendor->getData());

        return parent::_prepareForm();
    }

    public function filter($value)
    {
        return number_format($value, 2);
    }
}

第二种形式Storedetails.php

<?php
class Amit_Vendor_Block_Adminhtml_List_Edit_Tab_Storedetails extends Mage_Adminhtml_Block_Widget_Form{
     protected function _prepareForm(){ 

        $vendorStore = Mage::registry('vendor_store_details');// new registry for different module
        $form = new Varien_Data_Form(); 
        //$form->setFieldNameSuffix('vendor_store');

        $fieldset = $form->addFieldset('vendor_form', array(
        'legend' => Mage::helper('vendor')->__('Vendor deatsilsn')
        ));

        $fieldset->addField('alternative_email','text',array(
            'name' =>'alternative_email',
            'label' => Mage::helper('vendor')->__('Alternative Email'),
            'required'=> false
        ));
        $fieldset->addField('shopname','text',array(
            'name' =>'shopname',
            'label' => Mage::helper('vendor')->__('Shop Name'),
            'required'=> true,
            'class'     => 'required-entry',
        ));
        $fieldset->addField('company', 'text', array(
        'name' => 'company',
        'label' => Mage::helper('vendor')->__('Company'),
        'required' => true,
         'class'     => 'required-entry',
        ));
        $fieldset->addField('street','text',array(
            'name' =>'vendor_details[street]',
            'label' => Mage::helper('vendor')->__('Street Address'),
            'required'=> false
        ));


        $this->setForm($form);
        $form->addValues($vendorStore->getData());
        return parent::_prepareForm();

        }


}