में ओवरराइड फ़ंक्शन मैं इसे कॉपी करने और नया निर्माण किए बिना मौजूदा Prestashop मॉड्यूल को बदलना चाहता हूं। मुझे पता है कि Prestashop में .tpl फ़ाइलों को ओवरराइड करना संभव है, लेकिन क्या php कक्षाओं के साथ एक ही काम करना संभव है? उदाहरण के लिए मैं ब्लॉककार्ट को बदलना चाहता हूं ताकि इसे शीर्ष पर लगाया जा सके। चूंकि मूल संस्करण में उस हुक नहीं है, इसलिए मुझे इंस्टॉल() फ़ंक्शन को बदलने की आवश्यकता है! मैं मूल स्रोत नहीं बदल सकता (यह बुरा विचार होगा यह नहीं है ...) फ़ाइल मुझे ब्लॉककार्ट मॉड्यूल को विरासत में इंस्टॉल() फ़ंक्शन को ओवरराइड करने की आवश्यकता है। क्या ऐसा करना संभव है और जहां मुझे उदाहरण मिल सकता है?प्रेस्टैशॉप - मौजूदा prestashop मॉड्यूल
उत्तर
मैं अपने स्वयं के ओवरराइड का उपयोग फ्रंटकंट्रोलर क्लास में करता हूं ताकि मॉड्यूल आउटपुट को टीपीएल फाइलों में मनमानी बिंदुओं पर प्रदर्शित किया जा सके - इसका मतलब है कि मॉड्यूल को किसी विशेष हुक का समर्थन करने की आवश्यकता नहीं है। यह एक चतुर प्लगइन के माध्यम से कार्यान्वित किया जाता है, तो आप कर सकते हैं उदाहरण के उपयोग के लिए:
{plugin module='blockcart' hook='rightColumn'}
ऊपर उत्पादन यह क्या करता है, तो अधिकार स्तम्भ जहां ऊपर टैग डाला जाता है करने के लिए झुका प्रदर्शित होता मॉड्यूल के लिए बाध्य करेगा (हो सकता है जो किसी भी टीपीएल फ़ाइल में कहीं भी)। आप मॉड्यूल को दाएं कॉलम से "अनहूक" कर सकते हैं ताकि यह केवल उस तकनीक को प्रदर्शित करने के लिए कहां प्रदर्शित हो सके। मैंने इसे बड़ी सफलता के साथ एक उत्पादन स्थल पर इस्तेमाल किया है।
वहाँ कम से यह कैसे (आवश्यक कोड के साथ) काम करता है का वर्णन उपलब्ध लेखों की एक श्रृंखला है:
प्रेस्टैशॉप 1.4 में आप कोर क्लासेस और मॉड्यूल टेम्पलेट्स को ओवरराइड कर सकते हैं आज मॉड्यूल php फ़ाइल को ओवरराइड करना संभव नहीं है लेकिन हम इस पर काम कर रहे हैं।
PrestaShop के संस्करण 1.6.0.11 के बाद से, वहाँ एक नई सुविधा कि डेवलपर्स एक ओवरराइड करने देता है मॉड्यूल के उदाहरण वर्ग।
यह का विस्तार एक मॉड्यूल का उदाहरण वर्ग को ओवरराइड करने के द्वारा एक मॉड्यूल का उदाहरण वर्ग ओवरराइड, आप इसे विस्तार करने के लिए है, विस्तारित वर्ग में एक ही नाम प्रत्यय देने और जोड़ने अवहेलना:
<?php
if (!defined('_PS_VERSION_'))
exit;
class BlockUserInfoOverride extends BlockUserInfo
{
public function hookDisplayNav($params)
{
return '<div class="header_user_info"><a>Test</a></div>';
// return $this->display(__FILE__, 'nav.tpl');
}
}
स्रोत: http://build.prestashop.com/howtos/module/how-to-override-modules/
- 1. Magento या Prestashop, जो बेहतर है?
- 2. prestashop में एक मॉड्यूल से उत्पाद बनाएं
- 3. प्रेस्टैशॉप: नए कार्ट में उत्पाद जोड़ें
- 4. प्रेस्टैशॉप - टोकरी कुल मूल्य
- 5. प्रेस्टैशॉप कोई त्रुटि/खाली पृष्ठ
- 6. PrestaShop ईमेल स्थानीयकरण
- 7. व्यवस्थापक में Prestashop cant लॉगिन
- 8. "हमेशा मौजूदा मॉड्यूल से संबंधित" फ़ाइल पथ बनाते हैं?
- 9. मैं गैर-मौजूदा मॉड्यूल के पदानुक्रम का नकल कैसे करूं?
- 10. बेसिक मेटाप्रोग्रामिंग: मॉड्यूल का उपयोग कर मौजूदा कक्षा का विस्तार?
- 11. मौजूदा बूस्ट पायथन मॉड्यूल से लिंक कैसे करें
- 12. एक मौजूदा जावास्क्रिप्ट सिस्टम
- 13. मैं मौजूदा गिट रिपॉजिटरी
- 14. सीएमके मॉड्यूल?
- 15. मॉड्यूल xml
- 16. सी # मौजूदा कक्षा
- 17. मौजूदा क्लाइंट को छोड़कर मौजूदा क्लाइंट
- 18. मॉड्यूल
- 19. मॉड्यूल
- 20. मॉड्यूल
- 21. मॉड्यूल
- 22. मॉड्यूल
- 23. मॉड्यूल
- 24. मॉड्यूल
- 25. मौजूदा प्रोजेक्ट
- 26. मौजूदा XDocument
- 27. मौजूदा प्लेयर
- 28. मौजूदा XDocument
- 29. मौजूदा सेग्यू
- 30. मौजूदा एसवीएन
वाह महान समाधान पॉल! –
मैंने हमेशा महसूस किया है कि मॉड्यूल और हुक सिस्टम कई मामलों में काम करता है, कुछ समय हैं जहां यह बहुत ही लचीला है। खुशी हुई कि यह आपको उपयोगी लगा। –
उत्कृष्ट पॉल! वैसे मैं मॉड्यूल के हुक में कुछ पैरामीटर पास कर सकता हूं? धन्यवाद! –