Wie entferne ich die Schaltfläche zum Speichern und Zurücksetzen aus dem Bearbeitungsformular?

7

Im benutzerdefinierten Modul habe ich ein Raster. In diesem Raster möchte ich keine Daten aus dem Admin-Bereich bearbeiten. Ich möchte nur diese Daten anzeigen, also möchte ich die Schaltfläche Speichern und Zurücksetzen entfernen.

In Edit.php

public function __construct()
{
    parent::__construct();
    $this->_objectId = "example_id";
    $this->_blockGroup = "example";
    $this->_controller = "adminhtml_example";
    // $this->_updateButton("save", "label", Mage::helper("example")->__("Save Tutor"));
    $this->_updateButton("delete", "label", Mage::helper("example")->__("Delete Tutor"));

    /**
    $this->_addButton("saveandcontinue", array(
        "label"     => Mage::helper("example")->__("Save And Continue Edit"),
        "onclick"   => "saveAndContinueEdit()",
        "class"     => "save",
    ), -100);

    $this->_formScripts[] = "
        function saveAndContinueEdit() {
            editForm.submit($('edit_form').action+'back/edit/');
        }
    ";
    */
}   

Ich bin Kommentar-Code der Schaltfläche Speichern und SpeichernAndContinueEdit, aber die Schaltfläche Speichern wird angezeigt.

Ich weiß, dass ein anderer Weg zum Administrator keine Daten speichern kann, indem disable in allen Addfeldern auf true gesetzt wird, aber ich möchte die Schaltfläche zum Hinzufügen und Zurücksetzen nach Möglichkeit entfernen und diese Schaltfläche mithilfe eines benutzerdefinierten Moduls entfernen.

ND17
quelle

Antworten:

13

Fügen Sie dies in die von Ihnen erwähnte Methode ein

$this->_removeButton('save');
$this->_removeButton('delete');
$this->_removeButton('reset');
Marius
quelle
4

Beachten Sie, dass Magento nicht möchte, dass Sie die __constructMethode überschreiben . Sie sollten _constructstattdessen die Methode überschreiben . Ein Problem ist, dass Sie keine Schaltflächen in der _constructMethode entfernen können . Sie können die _prepareLayoutMethode zu diesem Zweck jedoch einfach überschreiben :

protected function _prepareLayout()
{
    $this->_removeButton('save');
    $this->_removeButton('delete');
    $this->_removeButton('reset');

    return parent::_prepareLayout();
}
Simon
quelle
1
Das stimmt, aber es gibt viele Kernklassen, die die __constructMethode überschreiben .
Marius
1
@Marius Core-Klassen sind oft nicht gut als Referenz für einen guten Codestil, denke ich: D
Simon
3

So entfernen Sie Schaltflächen im MAGENTO 2-Administrationsformular:

$this->buttonList->remove('delete');
$this->buttonList->remove('save');
$this->buttonList->remove('reset');
$this->buttonList->remove('back');
Nathaniel Meyer
quelle