Fügen Sie der Magento-Konfiguration dynamisch die Schaltfläche "Mehr hinzufügen" hinzu

7

Ich habe ein Modul erstellt, mit dem Menüelemente dynamisch aus der Konfiguration des Admin-Panels hinzugefügt werden können. Dazu habe ich ein dynamisches Feld mit der Schaltfläche "Mehr hinzufügen" hinzugefügt.
Es funktioniert perfekt und das von mir erstellte Menü wird im oberen Menü angezeigt. Jetzt möchte ich diesem Menüpunkt ein Untermenü hinzufügen.

Geben Sie hier die Bildbeschreibung ein
Sie können es im Bild sehen.
Ich habe diesen Code in meinem Formularfeldblock

public function __construct()
    {
        $this->addColumn('menutitle', array(
            'label' => Mage::helper('adminhtml')->__('Menu Title'),
            'style' => 'width:120px',
            'class' => 'input-text required-entry'
        ));
        $this->addColumn('link', array(
            'label' => Mage::helper('adminhtml')->__('Link'),
            'style' => 'width:220px',
            'class' => 'input-text required-entry'
        ));

        $this->addColumn('order', array(
            'label' => Mage::helper('adminhtml')->__('Order'),
            'style' => 'width:40px',
            'class' => 'required-entry input-text validate-number'
        ));

        $this->_addAfter = false;
        $this->_addButtonLabel = Mage::helper('adminhtml')->__('Add Menu Item');
        Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract::__construct();
    }
    protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
    {
        $this->setElement($element);
        $html = $this->_toHtml();
        $this->_arrayRowsCache = null; // doh, the object is used as singleton!
        $html ='<div id="myeditableitem">'.$html.'</div>';
    return $html;
    }

Ich habe versucht, eine Schaltfläche in Form hinzuzufügen, aber ohne Erfolg. Ich habe keine Ahnung, wo oder wie ich anfangen soll. Bitte helfen Sie.

Jaimin Sutariya
quelle
1
Versuchen Sie, es genauso zu verwenden, wie benutzerdefinierte Optionen funktionieren?
TBI Infotech

Antworten:

2

Alles ist dynamisch, deshalb müssen Sie die Schaltflächen über JS hinzufügen.

Fabian Blechschmidt
quelle
1

Jaimin Sutariya, Anstatt ein Menü unter Konfiguration zu erstellen, können Sie es einfach dynamisch erstellen, indem Sie ein Raster mit Funktionen zum Hinzufügen, Aktualisieren und Löschen erstellen.

Keyur Patel
quelle
1

Das Formular, das Sie verwenden, hat die Option, eine Schaltfläche "Hinzufügen nach" hinzuzufügen. In Ihrer Formular-PHP-Blockklasse müssen Sie Folgendes festlegen:

$this->_addAfter = false;

Dadurch wird dem System nicht mitgeteilt, dass dieses Element ein Untermenü sein sollte. Daher können Sie eine Auswahl- / Dropdown-Option erstellen, um die übergeordnete Seite auszuwählen und die Struktur auf diese Weise zu erstellen.

Das Dropdown / Auswählen ist keine Standardoption für dieses Formulararray. In meiner Pull-Anfrage finden Sie die Änderungen, die erforderlich sind, um dies Ihrem Formular hinzuzufügen:

https://github.com/vkerkhoff/hackathon_january_2014/commit/2c4338038477a993c44112dd072849ff9b8cd2f9

Vladimir Kerkhoff
quelle