अपने प्लगइन को LS4 के साथ संगत बनाएं
From LimeSurvey Manual
तकनीकी परिवर्तन
नई XML कॉन्फ़िग फ़ाइल
LimeSurvey 4.0 से, प्लगइन को एप्लिकेशन में चलाने के लिए एक XML कॉन्फ़िग फ़ाइल की आवश्यकता होती है।
इसका कारण प्लगइन के लेखक, सहायता ईमेल या अपडेटर की जानकारी जैसी मेटा-डेटा जानकारी संग्रहीत करने की सुविधा है।
LimeSurvey 4 में यह XML फ़ाइल अनिवार्य है। इसे प्लगइन की रूट डायरेक्टरी में रखा जाना चाहिए। अधिक जानकारी के लिए प्लगइन विकास प्लगइन देखें।
उदाहरण:

नई प्लगइन डायरेक्टरी
LimeSurvey 4 में प्लगइन डायरेक्टरी बदल दी गई है। सुरक्षा कारणों से, नए प्लगइन मैनेजर (प्लगइन अपलोडर) के कारण प्लगइन डायरेक्टरी अब अपलोड डायरेक्टरी (/upload/plugins) में स्थित है। मैनुअल अपलोड के लिए, हम अनुशंसा करते हैं कि सॉफ़्टवेयर की खराबी से बचने के लिए अपनी फ़ाइलें नई डायरेक्टरी में अपलोड करें।
यदि डायरेक्टरी आपके प्लगइन में हार्ड-कोडेड है, तो सुनिश्चित करें कि आप नई डायरेक्टरी को बदलें या जोड़ें।
उदाहरण:

नए प्लगइन इवेंट
LS3 के कुछ प्लगइन इवेंट अप्रचलित (deprecated) कर दिए गए हैं। पुराने प्लगइन इवेंट को बदलने के लिए LS4 में पेश किए गए नए प्लगइन इवेंट का उपयोग करें। अधिक जानकारी के लिए प्लगइन इवेंट पर हमारा विकास मैनुअल देखें।
अप्रचलित फ़ंक्शन और मेथड
चूंकि LimeSurvey 4 का कोड बेस या संरचना बदल गई है, इसलिए कई मेथड या फ़ंक्शन अब उपयोग में नहीं हैं। इस समस्या को ठीक करने के लिए, आपको पहले config.php फ़ाइल में डीबग मोड सक्षम करना होगा और फिर प्लगइन पेज पर जाना होगा। जो भी मेथड अब मौजूद नहीं है, वह एरर पेज पर दिखाई देगा।
कुछ मेथड का नाम LS4 में बदल दिया गया है या वे अब उपयोग में नहीं हैं। यह सुनिश्चित करने के लिए कि आपका प्लगइन LS3 और LS4 दोनों में काम करे, आवश्यक मेथड को कॉल करने से पहले LS का संस्करण जांचें।
उदाहरण:

सर्वोत्तम अभ्यास
SVG फ़ाइलों से बचें
सुरक्षा (XSS) कारणों से, SVG फ़ाइलों को अपलोड करना संभव नहीं है। प्लगइन अपलोडर SVG फ़ाइलों को अनदेखा कर देगा। उन्हें PNG या JPEG फ़ाइलों से बदलें। SVG फ़ाइलें अपलोड करना केवल तभी संभव है जब आपके पास ftp या अन्य सर्वर टूल के माध्यम से इंस्टॉलेशन डायरेक्टरी तक पहुंच हो (किसी भी फ़ाइल को अपने जोखिम पर अपलोड करें)।
ग्लोबल कॉन्स्टेंट से बचें
ऐसे ग्लोबल कॉन्स्टेंट के उपयोग से बचें जो कोर एप्लिकेशन या अन्य प्लगइन के वेरिएबल के साथ टकरा सकते हैं, जैसे „ROOT_PATH“। सामान्य रूप से प्लगइन विकास के लिए ग्लोबल कॉन्स्टेंट का उपयोग न करें।
नेमस्पेस का उपयोग करें
अपने प्लगइन में किसी कार्य को पूरा करने के लिए साथ काम करने वाली क्लास को समूहित करके बेहतर संगठन के लिए नेमस्पेस का उपयोग करें। इस तरह आप उन क्लास का उपयोग करने से बचते हैं जिनका कोर एप्लिकेशन में पहले से उपयोग हो रहा है।
उदाहरण:

