Wie fügen Sie mehrere Registerkarten bei der Adminssektion eines benutzerdefinierten Moduls in Magento hinzu

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

  •  16-10-2019
  •  | 
  •  

Frage

Ich versuche ein benutzerdefiniertes Modul zu erstellen und es hat mehrere Registerkarten im Admin -Abschnitt wie Produktmodul.

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

enter image description here

enter image description hereHier ist ein Code

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();
    }
}

und Code von Form.PHP (Amit> CellPeople> Block> adminHtml> Liste> Registerkarte "Bearbeiten>).

<?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 -Formatdatei StoredEsails.php Code sind

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',

    )); 
}
}

Bitte helfen Sie ....Nach Marius -Hilfe habe ich den Code der zweiten Formulardaten in StoredEsails.php geändert

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();

}

Die Daten sind jedoch in Feldern der zweiten Registerkarte leer.enter image description here.**Issue is that registry have data but in not showing fields**

War es hilfreich?

Lösung

Stellen Sie sicher, dass der Block von der zweiten Registerkarte etwas zurückgibt.
Sie vermissen diesen Code am Ende von _prepareForm() Methode:

$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.  

Und ein anderes Tipp, aus dem Thema.
Erklären Sie nicht die Namen der Felder wie diesen. Sie könnten in Schwierigkeiten geraten.

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

Sie können dies oben hinzufügen _prepareForm nach $form = new Varien_Data_Form();

$form->setFieldNameSuffix('vendor_h');

Dadurch werden die Namen der Felder aus verändert field_name zu vendor_h[field_name].
In ähnlicher Weise können Sie mit dieser Zeile ein Präfix für die IDs des Feldes hinzufügen

$form->setHtmlIdPrefix('some_prefix_');

Dadurch wird die ID der Felder aus verändert field_id zu some_prefix_field_id.

Andere Tipps

In Ihrer zweiten Registerkarte rufen Sie nicht an

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

Und wie Marius sagte, erklären Sie die Feldnamen nicht auf diese Weise.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top