404 त्रुटि पृष्ठों के लिए कस्टम टेम्पलेट


12

एक त्वरित noob सवाल यहाँ! Page.tpl का उपयोग करने के बजाय 404 त्रुटि पृष्ठों के लिए कस्टम टेम्पलेट का उपयोग करने के लिए एक थीम कैसे सेट करें?

जवाबों:


10

इन कदमों का अनुसरण करें:

  1. पैनलों मॉड्यूल का उपयोग करके एक नया पृष्ठ बनाएं (खाली पृष्ठ या किसी भी सामग्री में डालें)

  2. अपने नए पृष्ठ के लिए व्यवस्थापक / कॉन्फिग / सिस्टम / साइट-सूचना सेट डिफ़ॉल्ट 404 (नहीं मिला) पृष्ठ में

  3. उस पृष्ठ के लिए टेम्प्लेट फ़ाइल को ओवरराइड करें (पेज - error.tpl.php)

  4. उन सभी क्षेत्रों को निकालें जिनकी आपको आवश्यकता नहीं है और अपना कोड डालें


5
और किसी को पैनल का उपयोग करने की भी आवश्यकता नहीं है। एक पृष्ठ या सरल "मूल पृष्ठ" नोड को संभालने वाला मॉड्यूल भी करेगा।
मोलॉट

2
404 बनाने के लिए आपको एक महत्वपूर्ण मॉड्यूल की आवश्यकता क्यों होगी?
MrUpsidown

1
एक मूल पृष्ठ जैसे नोड का उपयोग करने में समस्या यह है कि यह तब खोज परिणामों और अन्य सामग्री से संबंधित लिस्टिंग में आएगा, जो अवांछनीय है।
रॉबी

27

फिर भी इस चर्चा से एक और समाधान जो बिना पैनल या अन्य कस्टम मॉड्यूल के काम करता है।

अपने थीम फ़ोल्डर में template.phpइस कोड को खोजें और लिखें। YOURTHEMEअपने विषय के नाम से बदलें :

function YOURTHEME_preprocess_page(&$vars) {
  $header = drupal_get_http_header('status'); 
  if ($header == '404 Not Found') {     
    $vars['theme_hook_suggestions'][] = 'page__404';
  }
}

जब भी 404 होता है तो आपका page--404.tpl.phpउपयोग किया जाएगा। अपने टेम्पलेट फ़ाइल नाम में "-" नहीं "__" रखना याद रखें।


यदि आपने अभी page--404.tpl.phpफ़ाइल बनाई है तो अपना कैश साफ़ करना याद रखें ।
ब्लेक एरिकसन

403 के लिए, $ हैडर == '403 निषिद्ध'।
हेनरी

यह किसी मॉड्यूल में काम नहीं करता है, मॉड्यूल फ़ोल्डर में टेम्पलेट ओवरटेक नहीं किया जाता है। फ़ंक्शन के साथ ऐसा ही कैसे करें YourMODULE_preprocess_page (& $ var)?
मटोहिल

3

यदि आप एक अनुकूलित 404 पृष्ठ रखना चाहते हैं जिसमें पेज (नोड) बनाना शामिल नहीं है, तो कस्टमरोर मॉड्यूल का उपयोग करें ।

यदि आपके पास Drupal में 404 पृष्ठ है, तो यह खोज परिणामों, और / या आपकी दृश्य सूची में दिखाई देने वाला है।

Customerror मॉड्यूल का उपयोग करते समय, आप अपने थीम फ़ोल्डर में एक पेज - customerror.tpl.php बनाकर टेम्पलेट को ओवरराइड कर सकते हैं। नई टेम्पलेट फ़ाइल बनाने के बाद अपने कैश को फ्लश करने के लिए भी याद रखें।


यह अच्छा लग रहा था, लेकिन आप में से जो भी पुनर्निर्देशित मॉड्यूल का उपयोग कर रहे हैं उनके लिए ऐसा लगता है कि वे एक साथ अच्छा नहीं खेलते हैं। मुझे यह दिखाने के लिए कभी भी कस्टमर नहीं मिल सका कि यह क्या रीडायरेक्ट दिखाया गया है।
evanmcd

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

0

किसी भी सम्मेलन को मानने के बिना जो आपके थीम बेस में मौजूद हो सकता है, सवाल यह है कि मुझे यह कैसे पता चलेगा कि टेम्पलेट फ़ाइल का उपयोग करने के लिए क्या है ...

यहाँ कदम हैं:

  1. एक मूल आधार बनाएं और इसे अपनी इच्छानुसार कॉल करें।
  2. उस पृष्ठ को 404 प्रतिसाद व्यवस्थापक / कॉन्फ़िग / सिस्टम / साइट-सूचना पर असाइन करें
  3. Theme_debug मोड सक्षम करें।
  4. अपने एड्रेस बार में एक बेवकूफ यूआरएल टाइप करें।
  5. आप प्रारंभ में बनाए गए अपने पृष्ठ पर पहुंचते हैं
  6. स्रोत और टेम्प्लेट सुझाव को देखें, आपको कुछ ऐसा मिलेगा:यहाँ छवि विवरण दर्ज करें

  7. यह सीधे आगे है, संशोधित करने के लिए कोई प्रीप्रोसेस फ़ाइल या टेम्पलेट नहीं।

अपने आप को मैंने कुल्हाड़ी द्वारा चिह्नित एक के रूप में चुना है, क्योंकि मैं एनोफ़ेल फ्रेम तस्वीर के साथ नग्न कुछ चाहता था और बस वापस जाने के लिए एक लिंक।


ध्यान दें कि 404 त्रुटि के लिए आपके द्वारा बनाया गया मूल पृष्ठ अब सामग्री पृष्ठ के रूप में खोज परिणामों में भी दिखाई देगा।
रॉबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.