Drupal CCK + Views. कर्मचारियों की गैलरी का दृश्य बदलना।
पिछले पाठ में हमने Drupal के Views और CCK मॉड्यूल्स की मदद से कर्मचारियों की एक गैलरी बनाई थी, जो “कर्मचारी” (Сотрудник) प्रकार का कंटेंट बनाकर भरी जाती है। “कर्मचारी” कंटेंट टाइप में हमने दो फ़ील्ड्स जोड़ी थीं — पूरा नाम (ФИО, text field) और कर्मचारी के बारे में (textarea)। यह पाठ यह दिखाने के लिए बनाया गया है कि एक ही डेटा को View के माध्यम से कई अलग-अलग तरीकों से प्रदर्शित किया जा सकता है।
वर्तमान में कर्मचारियों की गैलरी इस प्रकार दिखाई देती है:
सुविधा के लिए, मैंने मेनू में कर्मचारियों के View के लिए एक लिंक जोड़ा है। इस लिंक के लिए “Page” डिस्प्ले के path गुण का उपयोग करें।
तरीका 1. कर्मचारियों की गैलरी के View को संशोधित करें: प्रत्येक कर्मचारी का विवरण हटाएँ और पूरा नाम (ФИО) को उस कर्मचारी की नोड का लिंक बना दें।
सबसे पहले, गैलरी View से विवरण फ़ील्ड को हटाना होगा। “साइट संरचना → Views” में जाएँ और अपने View (मेरे मामले में यह view_sotrudniki है) को चुनें।
“Fields” अनुभाग में जाएँ और “कर्मचारी का विवरण” फ़ील्ड हटा दें। हटाने के बाद परिवर्तन सहेजें। ध्यान दें — किसी फ़ील्ड को View से हटाने से वास्तविक डेटा नहीं हटता।
अब विवरण के बिना View इस तरह दिखाई देगा:
अब कर्मचारी के पूरा नाम (ФИО) को उसकी नोड का लिंक बनाते हैं। कर्मचारियों के View में जाएँ और “ФИО” फ़ील्ड चुनें:
नीचे फ़ील्ड की सेटिंग्स में “Link this field to its node” (इस फ़ील्ड को उसकी नोड से लिंक करें) विकल्प को सक्षम करें:
परिवर्तन सहेजें और View को भी सेव करें। अब कर्मचारियों के नाम उनकी संबंधित नोड्स के लिंक बन गए हैं:
तरीका 2. कर्मचारियों के नाम को गैलरी View के लिंक के रूप में बनाना, लेकिन लिंक में कर्मचारी की नोड संख्या (nid) पास करना।
कर्मचारी की नोड संख्या के आधार पर हम नीचे एक ब्लॉक में कर्मचारी का विवरण दिखाएँगे। उदाहरण के लिए, यदि नोड संख्या 10 है, तो लिंक का पता होगा: site_name/sotrudniki/10।
गैलरी View में जाएँ और एक नया फ़ील्ड जोड़ें — सामग्री: nid। “nid” का अर्थ है Node ID, यानी नोड का क्रम संख्या। इस फ़ील्ड को जोड़ते समय “Exclude from display” (प्रदर्शन से बाहर रखें) विकल्प चुनें।
nid फ़ील्ड को सूची के शीर्ष पर रखें ताकि इसका मान बाद में लिंक बनाते समय उपयोग किया जा सके।
अब “ФИО” फ़ील्ड की सेटिंग में जाएँ और लिंक का पथ “sotrudniki/[nid]” सेट करें।
“Link this field to its node” का चयन हटा दें और “Output this field as a link” (इस फ़ील्ड को लिंक के रूप में प्रदर्शित करें) सक्षम करें। लिंक का मान “sotrudniki/[nid]” लिखें। इसे करने के लिए हमने पहले “nid” फ़ील्ड जोड़ी थी। अब फ़ील्ड और View दोनों को सेव करें।
अब एक नया ब्लॉक बनाएँ, जिसमें कर्मचारी का विवरण प्रदर्शित हो। इसका नाम रखें view_block_sotrudniki। इस View में “Block” डिस्प्ले जोड़ें।
फ़ील्ड जोड़ें:
सामग्री: ФИО
सामग्री: О сотруднике
फ़िल्टर:
सामग्री: प्रकाशित - हाँ
सामग्री: प्रकार - сотрудник
Argument:
सामग्री: nid — इस Argument की सेटिंग में निम्नलिखित निर्दिष्ट करें:
Provide default argument — यदि argument प्रस्तुत नहीं है, तो आप उसे किसी फ़ंक्शन (जैसे arg()) से प्राप्त कर सकते हैं। arg() के अंदर कोष्ठक में URL से argument का क्रमांक दिया जाता है (उदा. sotrudniki/[nid]), गिनती 0 से शुरू होती है — इसलिए यहाँ हम दूसरा argument चुनेंगे (यानी नोड संख्या [nid]), जबकि पहला argument “sotrudniki” होगा।
अन्य संभावित arguments:
Node ID from URL — जब पहला argument node हो (जैसे node/14);
Taxonomy Term ID from URL — जब पहला argument term हो (हम Taxonomy मॉड्यूल को आगामी पाठ में विस्तार से देखेंगे);
User ID from URL — जब पहला argument user हो;
हम इन सभी arguments को अन्य पाठों में विस्तार से देखेंगे, फिलहाल यहाँ PHP कोड दर्ज करें: return arg(1);
Argument और View दोनों को सहेजें। अब एक नया ब्लॉक view_block_sotrudniki: Блок दिखाई देगा। हर बार जब किसी View में “Block” डिस्प्ले जोड़ा जाता है, तो एक नया ब्लॉक स्वचालित रूप से बनता है। इस ब्लॉक को “Content” क्षेत्र में प्रदर्शित करें।
ब्लॉक की दृश्यता सेटिंग्स में यह निर्धारित करें कि यह केवल उन पृष्ठों पर दिखाई दे जहाँ URL में “sotrudniki” शब्द हो और उसके बाद स्लैश (/) के बाद कोई मान आए (/* — यहाँ स्टार का अर्थ है कि किसी भी मान की अनुमति है)।
अब जब आप पृष्ठ site_name/sotrudniki पर जाएँगे, तो किसी कर्मचारी के नाम पर क्लिक करने से उसका नाम और विवरण नीचे प्रदर्शित होगा।