क्या किसी विशिष्ट आलेख पर टेम्पलेट को बदलने का कोई तरीका है? ध्यान दें कि इसे किसी भी मेनू में लेख को लिंक किए बिना काम करना चाहिए।जूमला: किसी विशिष्ट आलेख पर टेम्पलेट को कैसे बदलें
उत्तर
यदि आप चाहते हैं कि टेम्पलेट ओवरराइड मेनू मेनू पर एक अलग टेम्पलेट निर्दिष्ट करने के मानक जूमला तरीके से मेनू स्थिति पर निर्भर न हो, तो काम नहीं करेगा। आपको अपने हाथ गंदे होने और कुछ कस्टम कोड लिखने की आवश्यकता होगी। आपको टेम्पलेट स्विच के लिए ट्रिगर के रूप में article_id का उपयोग करने की आवश्यकता होगी।
मैंने काम पर ऐसा कुछ किया लेकिन अब याद नहीं है कि यह वास्तव में कैसे प्राप्त किया जाता है। जैसे ही मैं इसे ढूंढता हूं, मैं अपना कोड यहां पोस्ट करूंगा।
संपादित: मिले कोड :)
आप फ़ाइल /includes/application.php संपादित करने की जरूरत है, विशेष रूप getTemplate() विधि। तुम इतनी तरह एक कस्टम टेम्पलेट लागू करने के लिए अपने शर्त जोड़ सकते हैं
// Fallback template
if (!file_exists(JPATH_THEMES.DS.$template.DS.'index.php')) {
$template = 'rhuk_milkyway';
}
,: इस विधि के अंत में, बस से पहले पर
//CUSTOM TEMPLATE FOR THE ARTICLE 13
if (JRequest::getVar('id')=='13' && JRequest::getVar('option')=='com_content') {
$template = $custom_template_name;
}
यह जो नाम $ के अंदर है कस्टम टेम्पलेट लागू होगी id = 13 के साथ आलेख में custom_template_name। तुम भी, इसका इस्तेमाल घटकों के लिए एक अलग ही टेम्पलेट का उपयोग कर सकते हैं जैसे मैं simplecaddy के साथ किया था:
//TEMPLATE FOR SIMPLECADDY
if (JRequest::getVar('option')=='com_caddy'){
$template = 'shop';
}
आप वास्तव में टेम्पलेट करने के लिए कठिन कोडिंग कुछ भी से दूर रहने की अगर यह बचा जा सकता है की कोशिश करनी चाहिए। निश्चित नहीं है कि आप निर्दिष्ट क्यों करेंगे कि लेख मेनू से लिंक नहीं किया गया है। लिखने और कोड के बिना इसे पूरा करने का सबसे आसान तरीका एक नया मेनू बनाना है, फिर उस मेनू आइटम को जोड़ें जो उस आलेख से लिंक है जिसके लिए आप टेम्पलेट निर्दिष्ट करना चाहते हैं। आपको मेनू को किसी मॉड्यूल में कहीं भी नहीं रखना है, इसलिए यह साइट पर कभी दिखाई नहीं देगा, लेकिन यह टेम्पलेट प्रबंधक में मेनू असाइनमेंट में दिखाई देगा।
आप इसे एकल लेख, श्रेणियां, अनुभाग या यहां तक कि घटकों के साथ भी कर सकते हैं। जब तक आपके पास टेम्पलेट को संबद्ध करने के लिए मेनू लिंक हो। साइट को चलाने के लिए आवश्यक लिंक डालने के लिए मैं हमेशा एक व्यवस्थापक केवल मेनू बनाता हूं, लेकिन उपयोगकर्ताओं द्वारा एक्सेस करने की आवश्यकता नहीं है।
ब्रेंट ने कहा, कोर जूमला कोड को संशोधित करने के प्रलोभन से बचें! ऐसा करने से आपको जूमला अपग्रेड करने से रोक दिया जाएगा क्योंकि आप जानते हैं कि यह आपके द्वारा किए गए मूल परिवर्तनों को तोड़ने जा रहा है।
"छुपा मेनू आइटम" तकनीक के अलावा (जो उपयोगी है लेकिन कुछ परिस्थितियों में एसईएफ यूआरएल तोड़ सकता है), उपयोगी उपकरण Chameleon है। यह आपको विशिष्ट लेख/श्रेणियों/अनुभागों (साथ ही ब्राउज़र प्रकार, उपयोगकर्ता समूह, घटक, जो कुछ भी) का चयन करने और एक निश्चित टेम्पलेट को ट्रिगर करने के लिए इनका उपयोग करने की अनुमति देता है।
हालांकि यह एक पुरानी पोस्ट है, मैंने सोचा कि मैं अपने विचार साझा करूंगा: आप सिस्टम प्लगइन में onAfterInitialize() - फ़ंक्शन को कार्यान्वित करके आसानी से एक लेख पर टेम्पलेट बदल सकते हैं। जूमला कोर को संशोधित करने की कोई आवश्यकता नहीं है।
यह जूमला 1.5 के लिए काम करता है, लेकिन यह भी 2.5 में काम करना चाहिए:
function onAfterInitialise(){
if(true){ // f.ex. test for article ID or whatever
JRequest::setVar('template', 'beez'); // change template
}
}
जूमला 3.x संस्करणों में, यूआरएल-पैरामीटर अलग ढंग से नियंत्रित किया जाता है। निम्नलिखित जूमला 3.4 में परीक्षण किया गया था।8:
public function onAfterInitialise()
{
$app=JFactory::getApplication();
if(true){ // f.ex. test for article ID or whatever
$app->input->set('template', 'beez3');
}
}
जूमला here
- 1. जूमला के आलेख संपादक (TinyMCE)
- 2. बदलें जूमला प्रशासक यूआरएल
- 3. जूमला - एक जूमला आलेख में .js और .css फ़ाइलों को सम्मिलित करें?
- 4. मैं एक विशिष्ट आलेख को हमेशा सामने वाले पृष्ठ पर कैसे रख सकता हूं?
- 5. जूमला दृश्य में लोड लेआउट कैसे बदलें?
- 6. किसी विशिष्ट स्थिति को पूरा होने पर C++ टेम्पलेट क्लास विधि के तत्कालता को कैसे रोकें?
- 7. गैर-विशिष्ट टेम्पलेट तत्कालता को कैसे रोकें?
- 8. जूमला
- 9. जूमला
- 10. जूमला 2.5, घटक के टेम्पलेट में टेम्पलेट पैरामीटर एक्सेस करना
- 11. किसी चित्र को किसी विशिष्ट फ़ाइल आकार में कैसे आकार बदलें?
- 12. जावा स्ट्रिंग की विशिष्ट स्थिति पर कैरेक्टर को बदलें?
- 13. जूमला 1.5 में वर्तमान टेम्पलेट का मार्ग कैसे प्राप्त करें?
- 14. कैसे जूमला
- 15. विशिष्ट टेम्पलेट वर्ग फ़ंक्शन
- 16. जूमला
- 17. किसी प्रोजेक्ट के minSdkVersion को कैसे बदलें?
- 18. किसी ऑब्जेक्ट को T4 टेम्पलेट
- 19. जूमला
- 20. किसी छवि की चमक को कैसे बदलें
- 21. जूमला
- 22. किसी विशिष्ट फ़ाइल पर त्रुटियों को अनदेखा करने के लिए ग्रहण सेटिंग्स बदलें
- 23. जूमला घटक: एचटीएमएल
- 24. जूमला
- 25. जूमला
- 26. जूमला पर एसईएफ के साथ मैनुअल लिंक!
- 27. जूमला
- 28. किसी विशिष्ट स्थिति पर किसी ऑरेलिस्ट में किसी ऑब्जेक्ट को कैसे सम्मिलित करें
- 29. जूमला 2.5 से जूमला 3.0
- 30. जूमला
मैं अपने कोड के साथ एक प्लगइन बनाने है, लेकिन के लिए प्लगइन्स लिखने पर अधिक जब मैं इस '' '$ app-> इनपुट-> प्राप्त की तरह वर्तमान घटक के लिए जाँच करने की कोशिश ('विकल्प') == "com_content" '' कुछ भी नहीं होता, क्या आप मेरी मदद कर सकते हैं? – ivayloc
यह जांचने का प्रयास करें कि प्लग-इन फ़ंक्शन वास्तव में चल रहा है या नहीं, f.ex. print_r ($ app-> इनपुट) के साथ; मरने(); यहां आप यह भी देखेंगे कि $ app-> इनपुट ऑब्जेक्ट में कौन से पैरामीटर परिभाषित किए गए हैं ... – jonasfh