2012-11-14 17 views
9

में product.js फ़ाइल को ओवरराइड करने के लिए कैसे करें मैं कुछ कार्यों में कुछ अतिरिक्त मान जोड़ने के लिए product.js फ़ाइल को ओवरराइड करना चाहता हूं। मैंने फ़ाइल को js/mage/adminhtml/product.js से अपने फ़ोल्डर में कॉपी किया है जैसे जेएस /myfolder/myproduct.js. मैं फ़ाइल के कार्यों का उपयोग कैसे कर सकता हूं क्योंकि मैं कोशिश करता हूं और यह मेरे लिए काम नहीं कर रहा है। जब मैं ऑब्जेक्ट नाम बदलता हूं तो इससे कोई त्रुटि नहीं दिखाई देगी लेकिन कुछ भी खुश नहीं है (Products.Gallery = Class.create() मूल उत्पाद है। गैलरी = कक्षा। सर्जन करना();)। क्या कोई मुझे बता सकता है कि मूल funcitons के विवाद के बिना मेरे उत्पाद के सभी कार्यों का उपयोग कैसे करें।Magento

धन्यवाद

उत्तर

20

मान लीजिए कि आप उत्पाद संपादित करें पृष्ठ में 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

फिर अपने लेआउट एक्सएमएल में जोड़ने के अपने कस्टम 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 शामिल करते हैं।

पुनश्च: आपके उत्तर के लिए

+0

हाय ivantedja धन्यवाद (हालांकि यह है कि js/mage/adminhtml/product.js के बाद से डिफ़ॉल्ट <default> टैग में शामिल द्वारा की तरह है) सुनिश्चित करें कि js/myfolder/myproduct.jsjs/mage/adminhtml/product.js के बाद शामिल किया गया है। मैंने उपर्युक्त फ़ंक्शन के लिए आपके निर्देश और उसके कार्य के अनुसार किया था, लेकिन जब मैं अपडेट इमेज: फ़ंक्शन (फ़ाइल) {} पर यह कुछ अन्य फ़ंक्शन ओवरराइड करने का प्रयास करता हूं तो यह मुझे दिखाता है .getFileElement (फ़ाइल, "सेल-लेबल इनपुट") है उपरोक्त कोड undefined.in मैंने नाम लिंक और target_window के साथ दो अतिरिक्त फ़ील्ड जोड़े और यह कोड मूल फ़ाइल में काम करता है लेकिन मेरे कस्टम जेएस में नहीं ?? –

+0

नमस्ते मैंने केवल नामकरण करके और जेएस फ़ाइल को अपने PHP में सीधे और यह काम करता है। –

+1

आप किस पेज में इसे फिर से लिखते हैं? और कौन सा काम करता है? अद्यतन छवि या अद्यतन छवियों? – ivantedja

 संबंधित मुद्दे