
Ubercart Drupal के लिए एक ऑनलाइन स्टोर मॉड्यूल है। वर्तमान में (16 अप्रैल तक) Drupal Ubercart 8.x के लिए पर्याप्त मॉड्यूल नहीं हैं, लेकिन जल्द ही वे उपलब्ध होंगे और तब स्टोर को Drupal 7 के बजाय Drupal 8 पर बनाना संभव होगा।
https://www.drupal.org/project/ubercart
Ubercart में निम्नलिखित कार्यक्षमताएँ उपलब्ध हैं:


Ubercart एक सामान्य मॉड्यूल की तरह स्थापित होता है:
पहला मॉड्यूल ब्लॉक स्थापना के लिए आवश्यक है:
Cart - कार्ट (टोकरी) मॉड्यूल।
Country - किसी विशेष देश की सेटिंग्स के लिए मॉड्यूल।
Order - ऑर्डर प्रबंधन मॉड्यूल।
Product - उत्पाद की सेटिंग्स।
Store - स्टोर की मुख्य सेटिंग्स।


अपने Ubercart स्टोर में श्रेणियों का एक कैटलॉग प्राप्त करने के लिए, आपको Catalog मॉड्यूल को सक्षम करना होगा:
Catalog मॉड्यूल को सक्षम करने से पहले, Product, Store, और Country मॉड्यूल्स को भी सक्षम करना बेहतर है।
इंस्टॉलेशन के बाद, हमारे पास उत्पाद अनुभागों के लिए एक शब्दकोश (dictionary) होगा — Catalog:
/admin/structure/taxonomy


अब तक हमने जो कुछ भी समझा, वह Drupal के पिछले संस्करणों जैसा ही था। लेकिन विकास के साथ, सब कुछ बदल गया है। हालांकि देखने में Drupal अभी भी Drupal 7 जैसा ही लगता है, लेकिन अंदर से Drupal अब Symfony कॉम्पोनेंट्स, अपने स्वयं के कॉम्पोनेंट्स और कई लाइब्रेरीज़ से बना है। इसलिए, अब हमें नई प्लगइन प्रणाली और PHP में OOP (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) से निपटना होगा।
शुरू करने के लिए, हम Drupal के परिचित तत्वों — hooks — से शुरुआत करेंगे, फिर हम यह समझेंगे कि Drupal पेजों (route) के साथ कैसे काम करता है, एक नया पेज जोड़ेंगे, और देखेंगे कि Drupal अनुरोधों को कैसे प्रोसेस करता है।


इस लेख में हम कोड नहीं लिखेंगे, बल्कि कोड लिखने की तैयारी करेंगे। इसके लिए हम Drush स्थापित करेंगे। Drush एक कंसोल यूटिलिटी है जो आपको Drupal के साथ कई नियमित कार्य करने की अनुमति देती है: मॉड्यूल्स को अपडेट करना, कॉन्फ़िगरेशन को अपलोड / डाउनलोड करना, बैकअप बनाना और बहुत कुछ।
यदि आप विकास के लिए वेब सर्वर के रूप में Open Server का उपयोग करते हैं, तो यह निर्देश आपके लिए उपयुक्त है:
1. सर्वर को स्वयं स्थापित करें। आप इसे लेखक की वेबसाइट open-server.ru से डाउनलोड कर सकते हैं। वहाँ स्थापना और दस्तावेज़ीकरण उपलब्ध है।


यह लेख आपको Drupal से परिचित कराने के लिए है, हम आगे अपने कस्टम मॉड्यूल को जोड़ने के बाद कोड उदाहरण लिखेंगे।


आइए हम अपने मॉड्यूल को थोड़ी व्यवस्था के साथ बनाना शुरू करें। आइए कस्टम और कॉन्ट्रिब्यूटेड मॉड्यूल्स को अलग-अलग रखना जारी रखें। Drupal में मॉड्यूल्स /modules
फ़ोल्डर में होते हैं। अब हमें उन्हें /sites/all/modules
में गहराई तक रखने की आवश्यकता नहीं है, हालांकि readme में कहा गया है कि यह काम करेगा, फिर भी /modules
फ़ोल्डर का उपयोग करें। /modules
फ़ोल्डर के अंदर हम दो फ़ोल्डर बनाएंगे — custom
और contrib
। contrib
फ़ोल्डर में हम drupal.org से डाउनलोड किए गए अतिरिक्त मॉड्यूल्स रखेंगे, और हमारे कस्टम मॉड्य


इस पाठ में, हम अपने मॉड्यूल की क्षमताओं का विस्तार करेंगे और ऐसी सामग्री बनाएंगे जो केवल पंजीकृत उपयोगकर्ताओं या एक विशिष्ट भूमिका वाले उपयोगकर्ताओं के लिए उपलब्ध होगी।
कोड उदाहरण GitHub पर देखे जा सकते हैं:
https://github.com/levmyshkin/drupalbook8
आइए हम अपने drupalbook.permissions.yml मॉड्यूल फ़ोल्डर में एक नया YML फ़ाइल जोड़ने से शुरुआत करें:


जब आप Drupal API सीखते हैं, तो आपको अक्सर मुख्य दस्तावेज़ीकरण पर रेफरेंस की आवश्यकता होती है जो कि https://api.drupal.org पर उपलब्ध है। यह स्वचालित रूप से जनरेट किया गया Drupal दस्तावेज़ीकरण है। इसमें प्रत्येक फ़ंक्शन, क्लास, विधि के बारे में सारी जानकारी होती है, जहां इन्हें परिभाषित किया गया है, जहां इसका संक्षिप्त विवरण उपयोग किया जाता है। इस साइट पर API सहायता भी उपलब्ध है, मैं आपको प्रत्येक अनुभाग के साथ परिचित होने की सलाह देता हूं:


हम URL में पेरामीटर्स का उपयोग रूट्स के लिए कर सकते हैं। ये ठीक उसी तरह काम करते हैं जैसे कि Views में कांटेक्स्चुअल फ़िल्टर्स। हम उदाहरण के लिए URL में विभिन्न एंटिटी के ID, टेक्स्ट स्ट्रिंग्स या कॉमा या प्लस द्वारा अलग किए गए अनुक्रमिक ID पास कर सकते हैं। इस पाठ में, हम नोड का ID पास करेंगे और इस नोड के शीर्षक और बॉडी को सामग्री में प्रदर्शित करेंगे।
कोड उदाहरण GitHub पर देखे जा सकते हैं:
https://github.com/levmyshkin/drupalbook8
आइए हम अपने drupalbook.routing.yml मॉड्यूल फ़ाइल में रूट जोड़ें:
