Come aggiungere più schede in adminsection di un modulo personalizzato in Magento

magento.stackexchange https://magento.stackexchange.com/questions/14609

  •  16-10-2019
  •  | 
  •  

Domanda

Sto cercando di creare un modulo personalizzato e avere più schede in sezione admin come modulo di prodotto.

Problema i did not showing any tabs content from second tab ,like second tab content data is shows blank.

entrare descrizione dell'immagine qui

entrare descrizione dell'immagine qui Ecco alcuni codice è

class Amit_Cellpeople_Block_Adminhtml_List_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
{
    public function __construct()
    {
        parent::__construct();
        $this->setId('cellpeople_tabs');
        $this->setDestElementId('edit_form');
        $this->setTitle(Mage::helper('cellpeople')->__('Manage cellpeople'));
    }

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

    ));

        return parent::_beforeToHtml();
    }
}

e il codice di form.php (Amit> Cellpeople> Blocco> Adminhtml> List> Modifica> Scheda)

<?php

class Amit_Cellpeople_Block_Adminhtml_List_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
    protected function _prepareForm()
    {
        $cellpeople = Mage::registry('cellpeople_data');
        $form = new Varien_Data_Form(); 
        $fieldset = $form->addFieldset('cellpeople_form', array(
            'legend' => Mage::helper('cellpeople')->__('cellpeople Registration')
        ));

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

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

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

        $fieldset->addField('mobile_no', 'text', array(
            'name' => 'cellpeople[mobile_no]',
            'label' => Mage::helper('cellpeople')->__('Mobile No'),
            'required' => 'true',
        ));

        $fieldset->addField('phone_no', 'text', array(
            'name' => 'cellpeople[phone_no]',
            'label' => Mage::helper('cellpeople')->__('Phone No'),

        ));

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

        return parent::_prepareForm();
    }

}

anthor di file sotto forma di codice Storedetails.php sono

class Amit_Cellpeople_Block_Adminhtml_List_Edit_Tab_Storedetails extends Mage_Adminhtml_Block_Widget_Form
{
   protected function _prepareForm(){ 
$cellvendor = Mage::registry('vendordetails_data');// new registry for different module


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

    $fieldset->addField('name_a', 'text', array(
        'name' => 'vendor_h[name]',
        'label' => Mage::helper('cellpeople')->__('Name'),
        'required' => 'true',
    ));


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

    )); 
}
}

Si prega di aiuto .... Dopo aiuto marius Ho codice di modifica della seconda forma dati in Storedetails.php

protected function _prepareForm(){ 
    $cellvendor = Mage::registry('vendordetails_data');// new registry for different module
echo "<pre>";
    print_r($cellvendor ->getData());
    echo "</pre>";

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

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


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

        ));
    $this->setForm($form);
    $form->setValues($cellvendor>getData());
    return parent::_prepareForm();

}

ma dati è vuoto nei campi di seconde tabs.Plese controllare il nell'immagine entra descrizione dell'immagine qui. **Issue is that registry have data but in not showing fields**

È stato utile?

Soluzione

Assicurati che il blocco a partire dalla seconda rendimenti scheda qualcosa.
Vi manca il codice alla fine del metodo di _prepareForm():

$this->setForm($form); //set the form object to the block
return parent::_prepareForm(); //this is not mandatory but it is nice to keep a consistency.  

E un altro suggerimento, fuori tema.
Non dichiarare i nomi dei campi come questo. Si potrebbe finire nei guai.

'name' => 'vendor_h[name]',

Puoi aggiungere questo nella parte superiore del _prepareForm dopo $form = new Varien_Data_Form();

$form->setFieldNameSuffix('vendor_h');

Questo trasformerà i nomi dei campi da field_name a vendor_h[field_name].
In modo simile è possibile aggiungere un prefisso per gli ID del campo con questa linea

$form->setHtmlIdPrefix('some_prefix_');

Questo trasformerà l'id dei campi da field_id a some_prefix_field_id.

Altri suggerimenti

nella vostra seconda scheda tu non chiamata

$this->setForm($form);
$form->setValues($cellvendor->getData());
return parent::_prepareForm();

e, come ha detto Marius Non dichiarare i nomi dei campi in questo modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top