2011-09-01 12 views
6

मैं सोच रहा था कि आप जूमला लॉगिन फॉर्म पर टेक्स्ट कैसे बदल सकते हैं। उदाहरण के लिए:आप जूमला में लॉगिन फॉर्म को कैसे संशोधित करते हैं?

से प्रयोक्ता नाम को Usr, से पासवर्ड को पीडब्ल्यूडी, और अन्य पाठ भी।

शायद इस सवाल से पहले पूछा गया है लेकिन मुझे कुछ भी नहीं मिला।

क्या कोई यह जानता है कि यह कैसे करें?

+0

कौन सा जूमला संस्करण? – udjamaflip

+0

मैं जूमला 1.7 का उपयोग कर रहा हूं। – CrazyMPh

उत्तर

10

आप एक टेम्पलेट ओवरराइड के साथ ऐसा कर सकता है, लेकिन है कि शान से एक उन्नत से टेम्प्लेट में परिवर्तन को संभाल नहीं होगा, और आप यह नया तार डाल ग्रहण सीधे टेम्पलेट में - जो बहु भाषा को आसानी से अनुमति नहीं देगा।

भाषा फ़ाइलों के माध्यम से ऐसा करने का सही तरीका है (जैसा कि adjamaflip द्वारा उल्लिखित है)।

जूमला का मुख्य लॉगिन पृष्ठ 'com_users' घटक के माध्यम से है, हालांकि एचबीटी द्वारा वर्णित 'mod_login' मॉड्यूल भी है। यह प्रक्रिया दोनों के लिए काम करेगी, उनके पास ओवरराइड करने के लिए केवल थोड़ी अलग फाइलें और तार होंगे (आप शायद दोनों को ओवरराइड करना चाहते हैं)।

आप किसी भी घटक या मॉड्यूल के लिए टेम्पलेट्स को देखें, तो आप वे इतनी तरह कोड वर्गों है देखेंगे:

<?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?> 
<?php echo JText::_('COM_USERS_LOGIN_USERNAME_LABEL') ?> 

यह मूलतः कह रहा है 'यहाँ WHATEVERSTRING के लिए अनुवादित पाठ सम्मिलित'। यह अनुवादित पाठ उचित भाषा फ़ाइल में संग्रहीत है, जो 'com_users' घटक के लिए '/language/LANG/LANG.com_users.ini' में होगा, डिफ़ॉल्ट रूप से LANG 'en-GB' है, इसलिए शायद आपके लिए '/language/en-GB/en-GB.com_users.ini' में आप की तरह एक लाइन मिल जाएगा:

COM_USERS_LOGIN_USERNAME_LABEL="User Name" 

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

उन्नयन को संभालने के लिए, उन्होंने भाषा ओवरराइड के लिए जूमला 1.6 में एक नई सुविधा जोड़ा। आप किसी भी भाषा फ़ाइल (किसी भी घटक/मॉड्यूल/आदि) के लिए '/language/overrides/LANG.override.ini' में एक अलग ओवरराइड स्थान में ओवरराइड जोड़ सकते हैं। उदाहरण के लिए, लाइन जोड़ें:

COM_USERS_LOGIN_USERNAME_LABEL="Usr" 

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

अब यदि आप जूमला को अपग्रेड करते हैं, तो आपको उन लॉगिन टेम्पलेट्स में कोई भी परिवर्तन मिलेगा, लेकिन आपके टेक्स्ट में बदलाव नहीं आएंगे। आप अपनी साइट द्वारा प्रदान की जाने वाली प्रत्येक भाषा के लिए यह वही प्रक्रिया लागू कर सकते हैं, ओवरराइड खुशी से एक साथ रहेंगे। यह तीसरे पक्ष के घटकों और मॉड्यूल के लिए भी काम करेगा, जब तक कि वे स्ट्रिंग आउटपुट के लिए 'JText :: _()' का उपयोग कर रहे हों - जो उन्हें होना चाहिए।

3

आप इसे तथाकथित टेम्पलेट ओवरराइड के साथ करते हैं। आप मूल रूप से एक फ़ाइल (जहां आपके फॉर्म का आउटपुट होता है) को अपने सक्रिय टेम्पलेट की टेम्पलेट निर्देशिका में कॉपी करें। लॉगिन प्रपत्र के लिए आप इसे इस तरह होना चाहिए:

कॉपी

[जूमला] /modules/mod_login/tmpl/default.php

[करने के लिए Joomla ]/टेम्पलेट्स/[आपके द्वारा उपयोग किए जाने वाले टेम्पलेट] /html/mod_login/default.php

बनाना (यदि मौजूद नहीं है) बनाना और अपनी टेम्पलेट निर्देशिका में "html" निर्देशिका का उपयोग करना महत्वपूर्ण है। फिर आप जिस तरह से चाहते हैं उसे नया default.php संपादित करें। विचार यह है कि आप कोर फाइलों को संपादित नहीं करते क्योंकि यह खराब अभ्यास है।

यहाँ टेम्पलेट ओवरराइड पर अतिरिक्त जानकारी है: How to override the output from the Joomla! core

+1

वास्तव में यह उत्तर पूरी तरह से सही नहीं है। उपयोगकर्ता जो चाहते हैं उसके लिए एक भाषा ओवरराइड का उपयोग करना चाहिए। – udjamaflip

संबंधित मुद्दे