編集フォームから保存およびリセットボタンを削除する方法


7

カスタムモジュールにはグリッドが1つあります。そのグリッドでは、管理パネルからデータを編集したくありません。そのデータを表示したいので、保存ボタンとリセットボタンを削除します。

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/');
        }
    ";
    */
}   

保存ボタンとsaveAndContinueEditボタンのコメントコードですが、保存ボタンが表示されています。

すべてのaddfieldでdisableをtrueに設定してデータを保存できない別の方法を知っていますが、可能であれば追加ボタンとリセットボタンを削除し、カスタムモジュールを使用してこのボタンを削除します。

回答:


13

これをあなたが言及した方法に追加してください

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

4

Magentoは__constructメソッドのオーバーライドを望まないことに注意してください。_construct代わりにメソッドをオーバーライドする必要があります。1つの問題は、_constructメソッドでボタンを削除できないことです。ただし_prepareLayout、そのためにメソッドをオーバーライドするだけです。

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

    return parent::_prepareLayout();
}

1
それは事実ですが、__constructメソッドをオーバーライドするコアクラスがたくさんあります。
マリウス

1
@Marius Coreクラスは、良いコードスタイルのリファレンスとしてはよくありません:D
Simon

3

MAGENTO 2管理フォームのボタンを削除するには:

$this->buttonList->remove('delete');
$this->buttonList->remove('save');
$this->buttonList->remove('reset');
$this->buttonList->remove('back');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.