はあなたが製品の編集ページにjs/mage/adminhtml/product.js
からfunction loadImage
を上書きするつもりだとしましょう。
カスタムJSを作成します。 js/myfolder/myproduct.js
:
Product.Gallery.addMethods({
loadImage : function(file) {
alert('hi there');
var image = this.getImageByFile(file);
this.getFileElement(file, 'cell-image img').src = image.url;
this.getFileElement(file, 'cell-image img').show();
this.getFileElement(file, 'cell-image .place-holder').hide();
}
});
参考:http://prototypejs.org/learn/class-inheritance.html
は、その後、あなたのレイアウトXMLでカスタムJSを追加します。
<adminhtml_catalog_product_edit>
<reference name="head">
<action method="addJs"><script>myfolder/myproduct.js</script></action>
</reference>
</adminhtml_catalog_product_edit>
この方法を使用し、function loadImage
になりますjs/myfolder/myproduct.js
を含める場合にのみオーバーライドされます。
PS: あなたの答えに感謝ivantedjaこんにちは
(それは
<default>
タグに含まjs/mage/adminhtml/product.js
ので、デフォルトではそのようなものですが)js/myfolder/myproduct.js
がjs/mage/adminhtml/product.js
の後に含まれていることを確認します。私はあなたの指示と上記の関数の作業に従っていましたが、私は updateImagesのような他の関数をオーバーライドしようとしました:function(file){} これは私にthis.getFileElement(ファイル、 "セルラベル入力")が表示されますundefined.in上記のコードでは、私は名前のリンクとtarget_windowの2つの余分なフィールドを追加し、このコードはコアファイルで動作しますが、私のカスタムjsでは動作しません?? –こんにちは私は単に名前を変更してjsファイルを直接私のphtmlに それが動作します。 –
どのページで書き直しますか?どの機能? updateImageまたはupdateImages? – ivantedja