2

管理ブロックに追加のjsファイルを追加しようとしていますが、phpコードで追加したいと思います。

シナリオ
私のブロックは管理者編集フォームのタブブロックであるため、拡張Mage_Adminhtml_Block_Widget_Formして実装しますMage_Adminhtml_Block_Widget_Tab_Interface

私のアプローチ
タブブロッククラスの__prepareLayout()メソッドに、次の行を追加しました。

 $this->getLayout()->getBlock('head')->addJs('folder/gallery.js');

これは問題ないはずですが、実際にはjsをインポートしていません。

4

2 に答える 2

4

レイアウトXMLを使用してこれを行わないのはなぜですか?モジュールのadminhtmlレイアウト更新ファイルを指定するのが理想的ですが、local.xmlファイルをadminhtml/default/default/layoutフォルダーに追加して、そこで通常の<reference name="head"><action method="addJs">...</reference>呼び出しを行うことができます。

于 2012-08-16T12:48:08.750 に答える
0

@benmarksが示唆しているように、これは特定の状況ですが、MagentoでプログラムでJSを追加する方法を説明したものと似ていますか?

問題は、同じ「ヘッド」ブロックがすでにレンダリングされていることです。

この特定のケースの解決策を見つけました(バックエンドの編集タブフォームブロックにjsを追加します):

これを解決するために_prepareLayout()、拡張するブロックのメソッドに上記の行を追加しましたMage_Adminhtml_Block_Widget_Form

于 2012-08-16T12:35:15.387 に答える