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.

Antworten:


13

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

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

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

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');
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.