如何覆盖在Magento product.js文件(How to override product.

2019-08-02 17:32发布

我想重写product.js文件添加一些functions.I一些额外的值必须从JS /法师/ adminhtml / product.js将文件复制到我的文件夹一样的js / MyFolder中/ myproduct.js.How我可以使用该文件的功能,因为我尝试它不适合我的工作。当我改变对象名称比它会显示没有错误,但没有happend (Products.Gallery = Class.create()原单是Product.Gallery = Class.create() )。 谁能告诉我如何使用myProduct的所有功能,而没有原始funcitons的冲突。

谢谢

Answer 1:

比方说,你要重写function loadImagejs/mage/adminhtml/product.js产品编辑页面。

创建自定义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

然后在你的布局文件添加自定义的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:确保js/myfolder/myproduct.js之后包括js/mage/adminhtml/product.js (虽然它是像在默认情况下,因为js/mage/adminhtml/product.js列入<default>标签)



文章来源: How to override product.js file in magento
标签: magento