Extension:BetaFeatures/hi

BetaFeatures की मदद से दूसरे मीडियाविकि एक्सटेंशन्स विकि पर सदस्य वरीयताओं की सूची में बीटा सुविधाएँ पंजीकृत कर सकते हैं। यह सदस्य वरीयताओं की मौजूदा संरचना और कुछ विशेष पृष्ठों का इस्तेमाल करके अपना काम करता है।

स्थापना


अपने एक्सटेंशन में नए हुक्स का इस्तेमाल करना
अपनी बीटा सुविधा को समर्थित करने के लिए इस एक्सटेंशन का इस्तेमाल करना आसान है। अपने फ़ाइल में "" प्रकार का एक हुक पंजीकृत करें — इसका सिनटैक्स बिलकुल  हुक जैसा ही है, जिसमें इस मामले में ज़रूरी वरीयताओं से मेल खाने के लिए थोड़े से बदलाव किए गए हैं।

में:

में:

इसके बाद आप BetaFeatures द्वारा प्रदत्त सुविधा फ़ंक्शन्स की मदद से जाँच सकते हैं कि सुविधा सक्षम है कि नहीं।

आप एक साधारण वरीयता जाँच का भी इस्तेमाल कर सकते हैं, मगर सच या झूठ वैल्यू न जाँचें - HTMLFeatureField क्लास के वैल्यूओं का इस्तेमाल करें।

क्योंकि BetaFeatures क्लास हर जगह मौजूद होना चाहिए, आप सुविधा फ़ंक्शन का इस्तेमाल किसी भी हुक, विशेष पृष्ठ आदि में, या जहाँ आप चाहें वहाँ कर सकते हैं। बस ध्यान रखें कि इन बदलावों से आप प्रदर्शन या कैशिंग में समस्याएँ पैदा कर सकते हैं।

अगर आप अपने एक्सटेंशन का BetaFeatures के बिना भी इस्तेमाल करना चाहते हैं, आपको इसकी मौजूदगी भी जाँचनी होगी, जैसे:

कॉन्फ़िगरेशन
1 कॉन्फ़िगरेशन वेरिएबल की मदद से यह सीमित किया जा सकता है कि किन बीटा सुविधाओं को वरीयताओं में दिखाया जाएगा। डिफ़ॉल्ट से यह खाली होता है, और सभी बीटा सुविधाएँ दिखाई जाती हैं।

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



उन्नत उपयोग
कुछ बहुत दिलचस्प देखना चाहेंगे?



स्वचालित सदस्यता समूह
इस उदाहरण में हम एक वरीयता पंजीकृत करेंगे जो एक "स्वचालित सदस्यता" वाला होगा - अगर सदस्य इसे चेक करेगा, और किसी समूह में नई सुविधाएँ आएँगी, सदस्य को अपने आप उन सुविधाओं में सदस्यता दिला दी जाएगी।



निर्भरताओं का प्रबंधन
इसके बाद हम हर सुविधा के लिए निर्भरताओं के प्रबंधन को परिभाषित कर सकते हैं। ऐसा करने के लिए हमें "" हुक के साथ पहले एक हुक का नाम पंजीकृत करना होगा जिसका हम इसके लिए इस्तेमाल करना चाहते हैं, और फिर हम उस प्रकार का एक हुक पंजीकृत करेंगे जो कोई निर्भरता जाँचेगा और उसके मेल खा जाने पर true लौटाएगा, नहीं तो false लौटाएगा।

आप इस सुविधा का गलत इस्तेमाल करके हर विकि पर सुविधाएँ अक्षम कर सकते हैं, अगर उन्हें स्वतंत्र चिह्नित किया गया हो। मगर यह हैक करने जैसा हो जाएगा। शायद आपको ऐसा नहीं करना चाहिए। मुझे पता आप यही करने की सोच रहे हैं, मगर अब बस कीजिए।



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

हम इस कार्य कतार की मदद से इस टेबल के लिए अपडेट्स चलाते हैं जब कैश समाप्त हो जाता है (30 मिनट का जीवन-समय)। अगर आपके विकि को हर अनुरोध पर कार्य चलाने के लिए कॉन्फ़िगर किया गया है, यह हर 30 मिनट बाद बहुऽऽऽऽऽत धीमी रफ़्तार से चलेगा, मगर बाकी का काम जल्दी हो जाएगा। अगर आप अपने विकि को cron के ज़रिए कार्य चलाने के लिए कॉन्फ़िगर करते हैं, यह इससे काफ़ी बेहतर काम करेगा।

