2012-11-14 9 views
9

Chcę zastąpić plik product.js, aby dodać pewne dodatkowe wartości w niektórych funkcjach. Mam skopiować plik z js/mage/adminhtml/product.js do mojego folderu jak js /myfolder/myproduct.js.Jak mogę używać funkcji pliku, ponieważ próbuję i nie działa dla mnie. Kiedy zmieniam nazwę obiektu, nie będzie pokazywał błędu, ale nic się nie stało (Products.Gallery = Class.create() orginal to Product.Gallery = Class. Stwórz();). Czy ktoś może mi powiedzieć, jak używać wszystkich funkcji myproduct bez konfliktu oryginalnych funcitonów.Jak zastąpić plik product.js w magento

Dzięki

Odpowiedz

20

Powiedzmy masz zamiar zastąpić function loadImage z js/mage/adminhtml/product.js produkt w edycji strony.

Tworzenie niestandardowych 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(); 
    } 
}); 

odniesienie: http://prototypejs.org/learn/class-inheritance.html

Następnie w xml układ dodać niestandardowe JS:

<adminhtml_catalog_product_edit> 
    <reference name="head"> 
     <action method="addJs"><script>myfolder/myproduct.js</script></action> 
    </reference> 
</adminhtml_catalog_product_edit> 

Stosując tę ​​metodę, function loadImage będzie Zastąpiona, tylko jeśli podasz swoją js/myfolder/myproduct.js.

PS: Upewnij js/myfolder/myproduct.js wliczone jest po js/mage/adminhtml/product.js (choć tak jest domyślnie od js/mage/adminhtml/product.js zawartych w <default> tag)

+0

Hi ivantedja dzięki za odpowiedź. Zrobiłem to zgodnie z twoją instrukcją i działaniem dla powyższej funkcji, ale gdy próbuję zastąpić inną funkcję, taką jak updateImages: function (file) {} To pokazuje mi this.getFileElement (plik, "wejście etykiety na kartę") jest undefined.in powyższy kod dodałem dwa dodatkowe pola z linkiem nazwy i target_window i ten kod działa w core pliku, ale nie w moim niestandardowym js? –

+0

Witam, zrobiłem tylko zmieniając nazwę i włączając plik js bezpośrednio w mój phtml jak I działa. –

+1

na jakiej stronie ją przepisujesz? i która funkcja? updateImage lub updateImages? – ivantedja