Drupal 7 में डेटाबेस के साथ काम — पाठ 10 — रिकॉर्ड हटाने की क्वेरीज़ (DELETE)
रिकॉर्ड हटाने (DELETE) के लिए क्वेरीज़ को Drupal में क्वेरी बिल्डर (Query Builder) के माध्यम से ही बनाया जाना चाहिए। इन्हें db_delete() फ़ंक्शन से शुरू किया जाता है:
<?php
$query = db_delete('node', $options);
?>
यह क्वेरी “node” टेबल से रिकॉर्ड्स को हटाएगी। ध्यान दें कि टेबल के नाम को आकृति कोष्ठकों {} में लिखने की आवश्यकता नहीं है — क्वेरी बिल्डर यह स्वचालित रूप से कर देता है।
Drupal 7 में डेटाबेस के साथ काम — पाठ 11 — मर्ज क्वेरीज़ (MERGE)
मर्ज क्वेरीज़ (Merge Queries) एक विशेष हाइब्रिड प्रकार की क्वेरी होती हैं। यद्यपि इन क्वेरीज़ का सिंटैक्स SQL 2003 मानक में परिभाषित किया गया था, वास्तव में बहुत कम डेटाबेस हैं जो इस सिंटैक्स का प्रत्यक्ष समर्थन करते हैं। हालांकि, अधिकांश डेटाबेस इस कार्यक्षमता को अलग-अलग तरीकों से लागू करते हैं, अपने स्वयं के सिंटैक्स के माध्यम से। Drupal में मर्ज क्वेरी कंस्ट्रक्टर इस पूरी अवधारणा को अमूर्त (abstract) रूप में प्रस्तुत करता है, ताकि यह हर डेटाबेस के लिए अलग-अलग तरीके से संकलित (compiled) हो सके।
Drupal 7 में डेटाबेस के साथ काम — पाठ 12 — क्वेरी की शर्तें (WHERE, HAVING, LIKE)
क्वेरी में शर्तें (conditions) जोड़ने से हम केवल उन्हीं रिकॉर्ड्स का चयन कर सकते हैं, जो कुछ विशेष मानदंडों को पूरा करते हैं — जैसे कि केवल पिछले दो सप्ताह में बनाई गई नोड्स, या वे टर्म जिनमें "Drupal" शब्द शामिल है। SQL में हम SELECT, UPDATE, DELETE क्वेरीज़ में शर्तें निर्दिष्ट करने के लिए WHERE और HAVING का उपयोग करते हैं। Drupal के डायनेमिक क्वेरी सिस्टम में भी शर्तों के साथ काम करने के लिए एक समान तंत्र लागू किया गया है। यह तंत्र सभी तीन प्रकार की क्वेरीज़ — चयन (SELECT), अद्यतन (UPDATE), और हटाने (DELETE) — के लिए समान रूप से कार्य करता है।
Drupal पर मॉड्यूल बनाना — त्वरित प्रारंभ
आइए api.drupal.org से शुरू करें। उस पेज को खोलें जहाँ hook_node_presave() हुक का वर्णन है — यह हुक किसी नोड को जोड़ने से पहले सक्रिय होता है।
http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7
हुक्स हमें Drupal की प्रक्रिया में अपना कोड सम्मिलित करने की अनुमति देते हैं — उदाहरण के लिए, हम इनसे डेटा की वैधता जाँच सकते हैं, फ़ील्ड जोड़ सकते हैं, फॉर्म तत्व बना सकते हैं आदि।
Drupal 7 मॉड्यूल किन तत्वों से बना होता है?
अपने मॉड्यूल को बनाना शुरू करने से पहले, आइए Drupal API की संभावनाओं के बारे में थोड़ा और जानें। API टैक्सोनॉमी, नोड्स, उपयोगकर्ताओं, और डेटाबेस से डेटा इनपुट/आउटपुट के साथ काम करने के लिए विस्तृत सुविधाएँ प्रदान करता है। Drupal में मॉड्यूल्स और कोर के बीच, साथ ही विभिन्न मॉड्यूल्स के बीच परस्पर संबंध बनाए रखने के लिए एक विशेष प्रणाली होती है — जिसे hook system कहा जाता है।
Drupal 7 hook_block_info() और hook_block_view() — ब्लॉक में जानकारी प्रदर्शित करना
पिछले पाठ में हमने Drupal 7 के लिए एक मॉड्यूल बनाया था। इस पाठ में हम अपने मॉड्यूल की क्षमताओं को और बढ़ाएंगे। हम hook_block_view() और hook_block_info() हुक्स का उपयोग करके एक ब्लॉक जोड़ेंगे। इस ब्लॉक में साइट पर हाल ही में पंजीकृत उपयोगकर्ताओं की जानकारी होगी, जिसमें उनकी प्रोफ़ाइल पेज की लिंक भी शामिल होगी।
आइए hook_block_info() के विवरण से शुरू करें:
यह मॉड्यूल द्वारा बनाए गए सभी ब्लॉकों को परिभाषित करता है।
Hook_menu Drupal 7 — मॉड्यूल के माध्यम से पृष्ठों का निर्माण
पिछले पाठ में हमने सीखा कि कैसे Drupal API की मदद से डेटाबेस से जानकारी प्रदर्शित की जाती है, विशेष रूप से hook_block_info() और hook_block_view() हुक्स का उपयोग करके। इस पाठ में हम पृष्ठों को प्रदर्शित करना सीखेंगे, अर्थात् hook_menu का उपयोग करके पृष्ठ को Drupal की अन्य इकाइयों जैसे मेनू, अनुवाद मॉड्यूल, टेम्पलेट आदि से जोड़ना सीखेंगे।
hook_permission Drupal 7 में विभिन्न भूमिकाओं (roles) के लिए एक्सेस अनुमतियाँ
पिछले पाठों में हमने विभिन्न स्थानों पर पेज और ब्लॉक प्रदर्शित किए थे, और हमने पेजों तक पहुँच को सीमित करने के लिए 'access arguments' और 'access callback' जैसी विशेषताओं का भी उपयोग किया था। इस पाठ में, हम प्रशासनिक पेजों के माध्यम से क्रियाओं तक पहुँच अधिकारों (access permissions) को और अधिक लचीले ढंग से संपादित करने की संभावना बनाएंगे। इसके लिए हम hook_permission() (Drupal 6 में यह hook_perm() था) का उपयोग करेंगे।
hook_permission()
यह उपयोगकर्ताओं के लिए अनुमतियाँ (permissions) निर्धारित करता है।
Form API Drupal 7 — Drupal में फ़ॉर्म बनाना
पिछले पाठों में हमने hook_block_info(), hook_block_view(), hook_menu(), hook_permission() जैसे हुक्स से परिचय किया था, और अब हम प्रोग्राम के माध्यम से जितनी चाहें उतनी पेज और ब्लॉक बना सकते हैं। इस पाठ में हम Drupal 7 के Form API का उपयोग करके फ़ॉर्म बनाना सीखेंगे। हम अपने मॉड्यूल की प्रशासनिक कार्यक्षमता के लिए एक फ़ॉर्म बनाएंगे और पहले से जाने हुए अधिकतम हुक्स का उपयोग करेंगे ताकि ज्ञान को मजबूत किया जा सके।
सबसे पहले, हम 3 ब्लॉक्स बनाएंगे — मुझे लगता है कि यह आपके लिए कोई कठिनाई नहीं होगी।
Drupal थीमिंग (स्टाइलिंग और टेम्पलेट्स)
Drupal शिक्षण पाठ्यक्रम drupalbook.org के पहले दो अनुभागों से आपने सीखा कि वेबसाइट कैसे स्थापित करें, उसमें कंटेंट प्रकार कैसे जोड़ें, विभिन्न प्रकार के कंटेंट सामग्री कैसे बनाएँ, और इन सामग्रियों को Views के माध्यम से कैसे प्रदर्शित करें। अगले अनुभागों में आपने HTML/CSS के बारे में जाना होगा। अब समय आ गया है यह समझने का कि इन सामग्रियों की बाहरी उपस्थिति (दिखावट) को CSS की मदद से कैसे बदला जा सकता है।