Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. OpenCart
Code

OpenCart 2.1.x.x में कस्टम प्लगइन बनाएं: भाग एक

by
Difficulty:IntermediateLength:MediumLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

एक डेवलपर के रूप में, किसी भी फ्रेमवर्क में कस्टम स्टफ बनाना हमेशा रोमांचक होता है, और यही बात OpenCart प्लगिन्स के लिए भी सही है।

इस दो-भाग की श्रृंखला में, मैं OpenCart में कस्टम प्लगइन डेवलपमेंट समझाऊंगा। एक नौसिखिया डेवलपर के परिप्रेक्ष्य (perspective) से, हम OpenCart में विस्तार के डेवलपमेंट के डिटेल्स के माध्यम से जाना होगा। हम OpenCart प्लगइन संरचना के हर पहलू को प्रदर्शित करने के लिए एक छोटा कस्टम प्लगइन भी बनायेंगे I

इस पहले भाग में, हम कस्टम प्लगइन का निर्माण करेंगे जो स्टोर के फ्रंट-एन्ड में रीसेंट प्रोडक्ट को प्रदर्शित करता है, और आप बैक-एंड से ही प्रोडक्ट्स की संख्या को कॉन्फ़िगर कर पाएंगे। इस आर्टिकल का उद्देश्य यही है- कॉन्फ़िगरेशन फॉर्म के साथ एक बैक-एंड प्लगइन विकसित करना।

मुझे लगता है कि आपने OpenCart का नवीनतम संस्करण इनस्टॉल किया है, जो कि यह लिखने के समय 2.1.0.2 है। इससे पहले कि हम आगे बढ़ें और वास्तविक प्लगइन विकसित करें, मैं आपको अगले सेक्शन में OpenCart की बुनियादी प्लगइन आर्किटेक्चर के माध्यम से चलूंगा।

संक्षेप में MVCL

OpenCart सबसे लोकप्रिय वेब डेवलपमेंट पैटर्न, एक छोटे बदलाव के साथ MVC पैटर्न, या बल्कि मैं यह कहूंगा की यह एक वृद्धि है। इसके अतिरिक्त एक लैंग्वेज कॉम्पोनेन्ट के रूप में है जो OpenCart की दुनिया में MVCL बनाता है। यह हो सकता है कि आपने इस पैटर्न के बारे में सुना है, लेकिन शुरुआती लोगो के लिए, मैं जल्दी से संक्षेप में बताऊँगा कि पैटर्न क्या है।

MVC में M मॉडल के लिए है, और यही वह जगह है जहां ज्यादातर बिज़नेस लॉजिक रहता है। OpenCart के संदर्भ  में, यह मॉडल है जो स्टोर को चलाने के लिए आवश्यक सभी हैवी लिफ्टिंग उठाने के लिए डेटाबेस एब्स्ट्रक्शन लेयर से संपर्क करता है। यह एक ऐसा क्षेत्र है जहां आप डेवलपर के रूप में अपना अधिकतर समय बिताएंगे।

इसके बाद, V View के लिए खड़ा है, और यह एप्लीकेशन की प्रेजेंटेशन लेयर का प्रतिनिधित्व करता है। जैसा कि नाम से पता चलता है, यह केवल किसी भी पेज के प्रेजेंटेशन लॉजिक के साथ काम करता है, और यह अन्य लेयर्स से इनपुट प्राप्त करता है और अधिकतर समय XHTML आउटपुट को उत्पन्न करता है। किसी एप्लीकेशन के बिज़नेस लॉजिक को इस लेयर से दूर रखना चाहिए; इसमें कैसे करें की बजाय क्या करें की चिंता करनी चाहिए।

यह C है, एक कंट्रोलर, MVC में यह सब कुछ के सामने बैठता है, हर रिक्वेस्ट को संभालने और तदनुसार इलाज करता है। यह एक ऐसा क्षेत्र है जिसमें अधिकांश एप्लीकेशन लॉजिक शामिल होते हैं, जो पेज आउटपुट तैयार करने के लिए उचित मॉडल लोड करने और कंपोनेंट्स को लोड करने के लिए यूज़र्स इनपुट को संभालने और वैलिडेट करने से लेकर आता है।

अंत में, एक अतिरिक्त कॉम्पोनेन्ट है, L, जो लैंग्वेज के लिए खड़ा है। यह मुलतिलंगुअल साइटों की स्थापना एक हवा की तरह बनाता है।

तो यह OpenCart आर्किटेक्चर का क्विक व्यू है, और यह अधिक समझ में आता है क्योंकि हम प्रत्येक कॉम्पोनेन्ट के गहन एक्सप्लनेशन पर आगे बढ़ते हैं।

किसी भी OpenCart प्लगइन का स्केलेटन

चलो फाइलों की लिस्ट पर एक क्विक नज़र डालें, जिन्हें हमें कस्टम बैक-एंड प्लगइन के लिए इम्प्लीमेंट करने की आवश्यकता है।

  • admin/language/english/module/recent_products.php: यह एक ऐसी फ़ाइल है जिसमें एडमिन एप्लिकेशन एरिया में उपयोग किए जाने वाले स्टैटिक लेबल होते हैं।
  • admin/controller/module/recent_products.php: यह एक कंट्रोलर फ़ाइल है जो हमारे मॉड्यूल के एप्लीकेशन लॉजिक को रखती है।
  • admin/view/template/module/recent_products.tpl: यह एक व्यू टेम्प्लेट फ़ाइल है और XHTML कोड रखती है।

अगले सेक्शन में, हम ऊपर दी गई प्रत्येक फ़ाइल को एक गहन एक्सप्लनेशन के साथ बनाएंगे।

कन्वेंशंस के अनुसार, हमें कस्टम प्लगइन फ़ाइलों को module डायरेक्टरी के अंतर्गत रखने की आवश्यकता है। इस मामले में, जैसा कि हम एक बैक-एंड प्लग-इन विकसित कर रहे हैं, यह admin के तहत डायरेक्टरी होगी जो कि हमारी फाइल को रखता है। बेशक, फाइल ऊपर दिखाए गए OpenCart आर्किटेक्चर के अनुसार, अलग-अलग डायरेक्ट्रीज, या न कि कंपोनेंट्स में फैले हुए हैं।

बैक-एंड प्लगइन के लिए फ़ाइलें बनाएं

इस सेक्शन में, हम मॉड्यूल फाइल बनाना शुरू कर देंगे। सबसे पहले, हम निम्नलिखित कंटेंट्स के साथ एक लैंग्वेज फाइल admin/language/english/module/recent_products.php तैयार करेंगे। OpenCart के परिप्रेक्ष्य (perspective) से यह एक महत्वपूर्ण फाइल है, क्योंकि OpenCart द्वारा आपके प्लगइन का पता लगाया जाना आवश्यक है।

जैसा आप देख सकते हैं, हम एक PHP ऐरे (array) में स्टैटिक लेबल असाइन कर रहे हैं। बाद में, इन टेम्प्लेट फ़ाइल में इन वेरिएबल्स तक पहुंच होगी, क्योंकि ऐरे (array) को PHP वैरिएबल में कनवर्ट किया जाता है।

आपने यह भी पाया है कि फ़ाइल english डायरेक्टरी के तहत बनाई गई है क्योंकि यह स्टोर की डिफ़ॉल्ट भाषा है। बेशक, बहुभाषी साइट के मामले में, आपको यह सुनिश्चित करने की ज़रूरत होगी कि आप इसे अन्य भाषाओं के लिए भी बनाते हैं। उदाहरण के लिए, एक ही फाइल का फ्रांसीसी संस्करण व्यवस्थापक / भाषा / फ़्रेंच / मॉड्यूल / हालिया_प्रोडक्ट्स.एफ़पीपी पर बनाया जाना चाहिए।

इसके बाद, हम सबसे महत्वपूर्ण प्लग-इन फाइलों में से एक बना लेंगे- कंट्रोलर फ़ाइल। चलो आगे बढ़ो और admin/controller/module/recent_products.php निम्नलिखित कंटेंट के साथ बनाएँ।

यह हमारे कस्टम प्लगइन के लिए नयी क्लास डिफाइन करता है जो बेस Controller क्लास को एक्सटेंड करता है। कन्वेंशन के अनुसार, क्लास का नाम उस डायरेक्टरी स्ट्रक्चर की नकल करना चाहिए जिसके तहत फ़ाइल रखी गई है। इसलिए, पाथ controller/module/recent_products.php को ControllerModuleRecentProducts में बदल दें। इसके लिए स्लैश और अंडरस्कोर करैक्टर को कन्वेंशन के अनुसार कैमल-केस में रेप्लस किया जाता है!

इसके बाद, एक डी-फ़ैक्टो index मेथड है जिसे कॉल किया जाता है जब प्लग-इन फ्रंट-एंड में लोड होता है। इसलिए, यह एक इंडेक्स मेथड है जो प्लगइन के अधिकांश एप्लीकेशन लॉजिक को परिभाषित करता है।

वर्तमान एप्लीकेशन के संदर्भ में, शॉर्टहैंड $this->load->language इसी लैंग्वेज फ़ाइल को लोड करती है। हमारे मामले में, यह पहले सेक्शन में परिभाषित लैंग्वेज फ़ाइल को लोड करता है। सिंटैक्स काफी सरल है- आपको बस प्लगइन के नाम से module/ प्रीफिक्स पास करना होगा। लैंग्वेज वेरिएबल को $this->language->get से प्राप्त कर सकते हैं।

इसके बाद, यह डॉक्यूमेंट ऑब्जेक्ट के setTitle मेथड का उपयोग करके पेज टाइटल सेट करता है।

आगे बढ़ते हुए, शॉर्टहैंड $this->load->model का इस्तेमाल मॉड्यूल मॉडल को लोड करने के लिए किया जाता है। यह मॉडल क्लास है जो मॉड्यूल पैरामीटर्स और इस तरह सेव करने के लिए यूटिलिटी मेथड्स प्रदान करता है।

उसके बाद, एक महत्वपूर्ण स्निपेट नीचे दिखाया गया है, जैसा कि वह पोस्ट डेटा सबमिट करता है और उस स्थिति में मॉड्यूल कॉन्फ़िगरेशन को बचाता है।

इसके अलावा, हम $data array में heading_title और text_edit जैसे लैंग्वेज लेबल असाइन कर रहे हैं ताकि हम उन्हें टेम्प्लेट फ़ाइल में देखें।

उसके बाद, एक स्निपेट है जो कॉन्फ़िगरेशन पेज के लिए सही ब्रेडक्रुम्ब (breakcrumb) लिंक बनाता है।

अगर मॉड्यूल पहले ही कॉन्फ़िगर किया गया था और एडिट मोड में है, तो निम्न स्निपेट डिफ़ॉल्ट मॉड्यूल कॉन्फ़िगरेशन को पॉप्युलेट करता है।

अंत में, हम सामान्य पेज एलिमेंट्स जैसे हैडर, फुटर और लेफ्ट साइडबार लोड कर रहे हैं। इसके अलावा, यह $this->load->view शॉर्टहैंड है जो कि वास्तविक व्यू फ़ाइल को लोड करता है; recent_products.tpl और कॉन्फ़िगरेशन फ़ॉर्म को प्रदर्शित करता है।

कंट्रोलर फ़ाइल में याद रखने के लिए कुछ महत्वपूर्ण नोट हैं। आप $this->load->ELEMENT जैसे बहुत सारे कॉल देखेंगे, जहां ELEMENT व्यू, मॉडल या लैंग्वेज हो सकते हैं। यह संबंधित व्यू, मॉडल और लैंग्वेज कंपोनेंट्स लोड करता है।

आज के आर्टिकल के लिए अगली और आखिरी फाइल एक व्यू टेम्प्लेट फाइल admin/view/template/module/recent_products.tpl है। आगे बढ़ो और इसे बनाएं!

तेज आँख वाले यूज़र्स पहले से ही ध्यान देंगे कि यह सिर्फ कंट्रोलर फ़ाइल से पास किए गए वेरिएबल को डिस्प्ले कर रहा है। इसके अलावा, कॉन्फ़िगरेशन फॉर्म को प्रदर्शित करने के लिए यह सरल XHTML कोड है, और शीर्ष पर चेरी यह है कि यह बॉक्स से रेस्पॉन्सिव है।

इसलिए, जहां तक फ़ाइल सेटअप हमारी बैक-एंड कस्टम प्लगइन के लिए कंसर्नड है, तब तक ऐसा ही है।

प्लगइन को इनेबल करें

OpenCart के बैक-एंड पर जाएं और Extensions>Modules पर नेविगेट करें। आपको सूची में Recent Products को देखना चाहिए। निम्न स्क्रीनशॉट में दिखाए अनुसार मॉड्यूल को इनस्टॉल करने के लिए + साइन पर क्लिक करें।

Back-End Listing

एक बार इंस्टॉल हो जाने के बाद, आपको एक एडिट आइकन दिखाई देगा। मॉड्यूल कॉन्फ़िगरेशन फ़ॉर्म खोलने के लिए उस पर क्लिक करें।

Configuration Form

कॉन्फ़िगरेशन फॉर्म में, आप सामने के अंत वाले ब्लॉक में रीसेंट प्रोडक्ट्स की संख्या निर्धारित कर सकते हैं। साथ ही, Enable करने के लिए status फ़ील्ड सेट करना न भूलें! मॉड्यूल को सेव करें, और इसे इस तरह दिखना चाहिए।

Replicated Module

Recent Products > My Recent Block Plugin टाइटल वाले मॉड्यूल के लिए एक नई एंट्री है। इसका कारण यह है कि आप इसे विभिन्न पेजेज के लिए कई बार दोहरा सकते हैं!

तो, हम लगभग पूरा कर चुके हैं! हमने ओपनकार्ट में एक पूर्ण बैक-एंड कस्टम प्लगइन बनाया है। अगले भाग में, हम उसके फ्रंट-एन्ड कॉउंटरपार्ट के माध्यम से जायेंगे जो फ्रंट-एन्ड वाले हिस्से में एक अच्छे दिखने वाले प्रोडक्ट्स को डिस्प्ले करता है!

निष्कर्ष

आज, हमने OpenCart में कस्टम प्लगइन डेवलपमेंट पर चर्चा की है। इस दो-भाग की श्रृंखला के पहले भाग में, हम बैक-एंड प्लगइन विकास के माध्यम से चले और एक वर्किंग कस्टम प्लगइन बनाया जो एक कॉन्फ़िगरेशन फॉर्म प्रदान करता है।

यदि आप अतिरिक्त OpenCart टूल्स, यूटिलिटीज, एक्सटेंशन और इसी तरह और की तलाश कर रहे हैं तो आप अपनी खुद के प्रोजेक्ट्स में या अपनी खुद की एजुकेशन के लिए लाभ उठा सकते हैं, यह देखें कि marketplace में हमारे लिए क्या उपलब्ध हैं।

अगले भाग में, हम फ़्रंट-एंड भाग बनाकर प्लगइन को पूरा करेंगे, जो फ्रंट-एंड में प्रोडक्ट लिस्टिंग्स दिखाता है। किसी भी प्रश्न और फीडबैक के लिए, नीचे कमेंट फ़ीड का उपयोग करें।

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.