「さらに追加」ボタンをmagento構成に動的に追加


7

管理パネルの設定から動的にメニュー項目を追加できるモジュールを作成しました。このため、「さらに追加」ボタンを使用して動的フィールドを追加しました。
完璧に動作し、私が作成したメニューがトップメニューに表示されています。次に、そのメニュー項目にサブメニューを追加します。

ここに画像の説明を入力してください
画像で確認できます。
私のフォームフィールドブロックにこのコードがあります

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

ボタンをフォームに追加しようとしましたが、成功しませんでした。どこから、どのように始めればいいのか分かりません。助けてください。


1
カスタムオプションが機能するのと同じ方法で使用しようとしていますか?
TBI Infotech 2014年

回答:



1

ジャイミン・スタリヤ、設定の下でメニューを作成する代わりに、機能を追加、更新、削除してグリッドを作成することにより、簡単に動的にそれを構築できます。


1

使用しているフォームには、「追加」ボタンを追加するオプションがあり、フォームのPHPブロッククラスに設定する必要があります。

$this->_addAfter = false;

これは、この項目がサブメニューであることをシステムに認識させないため、親ページを選択するための選択/ドロップダウンオプションを作成し、この方法で構造を構築できます。

ドロップダウン/選択はこのフォーム配列のデフォルトオプションではありません。これをフォームに追加するために必要な変更については、私のプルリクエストを参照してください。

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

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