मैं डिफ़ॉल्ट पृष्ठ / नोड को कैसे छिपाऊँ?


22

बॉक्स से बाहर Drupal एक पृष्ठ (जो डिफ़ॉल्ट होमपेज है) के साथ आता है जिसे नोड पथ को सौंपा गया है ।

मैं उपयोगकर्ताओं को इसे तक पहुँचने से कैसे रोकूँ, और उन्हें साइट के वास्तविक मुखपृष्ठ पर पुनः निर्देशित करूँ?


मैंने नोड को एक अलग पथ पर पुनर्निर्देशित करने के लिए @kiamlaluno द्वारा प्रस्तावित समाधान का उपयोग किया है।

जवाबों:


17

उस पेज को छिपाने का कोई आसान तरीका नहीं है। यदि आप इसका उपयोग नहीं करते हैं, तो आप hook_menu_alter () को लागू कर सकते हैं , और या तो इसे पूरी तरह से हटा सकते हैं, या इसके एक्सेस कॉलबैक को सेट कर सकते हैं FALSE


1
यहाँ कोड के साथ अच्छा है क्लाइव का जवाब exapmle drupal.stackexchange.com/a/24133/6309
milkovsky

8

एक पथ उपनाम बनाएं जो उस पृष्ठ पर / नोड से रीडायरेक्ट करता है जिसे आप फ्रंट पेज के रूप में उपयोग करना चाहते हैं।


1
यह मेरे लिए url उर्फ ​​मॉड्यूल, अलियासिंग / नोड से <सामने> या index.php के साथ काम नहीं करता है। मैं सिर्फ 1 /
john

5
अजीब मैंने किया / नोड को <सामने> और यह ठीक काम करता है।
सीन बैनिस्टर

जैसे आप @john के यूआई ने मुझे फ्रंट पेज पर आगे सेट करने की अनुमति नहीं दी है। मुझे इसके बजाय पुनर्निर्देशित मॉड्यूल का उपयोग करना पड़ा।
पोस्टस्क्रिप्ट

6

मैं / नोड के पेज कॉलबैक में फेरबदल करना पसंद करता हूं, इसलिए यह ४०४ पृष्ठ त्रुटि दिखाता है।
एक्सेस / नोड के दौरान यह हमेशा आपके कस्टम 404 पेज को दिखाता है।

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}

4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

या सेटिंग में इसे जोड़ें। php (URL इनबाउंड सामान)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>


1

बर्डिर के उत्तर के समान, मेरे पास एक मॉड्यूल में शामिल निम्नलिखित कोड है जो हमारे द्वारा बनाए गए कस्टम डिस्ट्रो का एक हिस्सा है:

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

इस तरह मैं 'नोड' पथ को फ्रंटपेज के रूप में रख सकता हूं और आवश्यक फ्रंटपेज के निर्माण के लिए स्थिति ब्लॉकों के संदर्भ का उपयोग कर सकता हूं।


1

आप एक पेज मैप कर सकते हैं / जिसे नोड प्रकाशित किया गया हो। इसलिए जो उपयोगकर्ता इस पथ को कॉल करेंगे, उनके पास एक निषिद्ध पृष्ठ होगा


1

मेरे लिए आसान समाधान एक ऐसा पेज बनाना था जिसे मैं होम पेज बनाना चाहता था और URL को / नोड पर सेट करूँ। फिर / व्यवस्थापक / config / system / साइट-जानकारी के तहत डिफ़ॉल्ट फ्रंट पेज को / नोड पर सेट करें। आप URL में कभी भी "/ नोड" नहीं देखते हैं जब तक कोई वास्तव में इसे टाइप नहीं करता है। यह त्वरित, आसान और साफ है, बशर्ते आप अपना होमपेज URL / नोड पर सेट करना चाहते हैं।


1

आप नोड URL के साथ एक नया पेज बना सकते हैं और लोग किसी संदेश को फ्रंट पेज पर जाने के लिए पुनर्निर्देशित कर सकते हैं या किसी श्रेणी को चुन सकते हैं।


1

मैंने कई चीजों की कोशिश की। फिर ड्रुपल 7 और 8 के लिए, मुझे यह सबसे आसान लगा, बिना कोई कोड लिखे:

डाउनलोड करें और node_page_disable, Globalredirect और redirect मॉड्यूल सक्षम करें।

(नोट: नोड_पेज_ डिसेबल मॉड्यूल पुनर्निर्देशित करता है / नोड 404 को त्रुटि पृष्ठ नहीं मिला।)

फिर / नोड -> फ्रंट पेज के लिए एक रीडायरेक्ट जोड़ें

कृपया ध्यान दें कि रीडायरेक्ट दोनों / नोड और / नोड / फ्रंट पेज पर रीडायरेक्ट करता है।

और पढ़ने के लिए एक उपयोगी लेख: https://www.drupalaid.com/blog/3-things-you-should-hide


यह डी 8 में एक दृश्य है, इसलिए drush @example.com views-disable frontpageइसे बंद कर देगा। तब भी 404 मिलेगा, जब तक कि अन्य चीजें नहीं की जाती हैं।
कॉलन

0

एक नोड बनाएं, फिर साइट कॉन्फ़िगरेशन -> साइट जानकारी पर जाएं और होम पेज को नोड के पथ पर सेट करें। इसलिए यदि यह आपका पहला नोड है, तो यह नोड / 1 होगा।

संपादित करें: डिफ़ॉल्ट रूप से, केवल एक नोड बनाने से वह पृष्ठ गायब हो जाएगा यदि आप 'फ्रंट पेज को बढ़ावा देते हैं'। साइट जानकारी चरण उस नोड को आपका वास्तविक फ्रंट पेज बना देगा।


1
सच है, लेकिन /nodeअभी भी पहुँचा जा सकता है, यह सिर्फ डिफ़ॉल्ट रूप से दिखाई नहीं देगा
लक्ष्मण 13

मैंने जो कहा, वह मैंने गलत किया। पथ पुनर्निर्देशन के बारे में http://drupal.org/project/path_redirect मॉड्यूल क्या है?
माइक एल।

1
दुर्भाग्य से पथ पुनर्निर्देशन आपको मौजूदा पथ से पुनर्निर्देशित करने की अनुमति नहीं देता है। यह देखने के लिए जाँच करता है कि क्या आप जिस पथ से पुनर्निर्देशित करने का प्रयास कर रहे हैं वह एक मान्य पथ है और यदि ऐसा है, तो पुनर्निर्देशित नहीं किया गया है और एक चेतावनी प्रदर्शित की गई है।
लक्ष्मण 13

ठंडा। मैंने इसे थोड़ी देर में इस्तेमाल नहीं किया है, इसलिए यह सकारात्मक नहीं था। धन्यवाद!
माइक एल।

0

यदि आप चाहें तो किसी पृष्ठ को देखने से पहले url की जाँच करने के लिए नियम मॉड्यूल का उपयोग कर सकते हैं और उपयोगकर्ताओं को दूसरे पृष्ठ पर पुनर्निर्देशित कर सकते हैं।

  • ईवेंट के साथ नियम जोड़ें: सामग्री देखी जाने वाली है
  • शर्त जोड़ें: कस्टम PHP कोड निष्पादित करें और पथ की जाँच करें
  • क्रिया जोड़ें: पृष्ठ पुनर्निर्देशित करें और वह पथ चुनें जिसे आप पुनर्निर्देशित करना चाहते हैं

यह न केवल गंभीर प्रदर्शन दंड पेश करता है, इसे बहुत असुरक्षित माना जाना चाहिए। जब तक सभी साइड-इफेक्ट्स और डाउनसाइड्स बहुत अच्छी तरह से ज्ञात नहीं होते हैं, तब तक "एक्सक्लूसिव कस्टम पीएचपी" का सुझाव नहीं दिया जाना चाहिए। -1 उसके लिए।
बेर्क्स

@berkes मुझे लगता है कि यह होगा क्योंकि नियम हर पृष्ठ लोड पर एक जांच करेगा और इसलिए साइट को धीमा कर रहा है? ऐसा क्यों है कि "Execute custom php" को हमेशा फॉलो किया जाता है? स्पष्ट रूप से अंत उपयोगकर्ता के उपयोग के लिए अच्छा नहीं है, लेकिन क्या डेवलपर उपयोग के लिए भी डाउनसाइड हैं? क्षमा करें यदि लंबे समय से, मैं Drupal के साथ सबसे अच्छा हो सकता है और "ins और outs" सीखने के लिए वास्तविक मेहनत कर रहा हूं। (यदि आवश्यक हो तो स्वयं के प्रश्न के रूप में दूसरा भाग जोड़ सकते हैं)
लक्ष्मण १३

कृपया एक नए प्रश्न पर विचार करें "कुछ उदाहरण क्षेत्रों (ब्लॉक, तर्क वितर्क, पीएचपी-फिल्टर आदि) के साथ 'कस्टम' PHP" का उपयोग करने की डाउनसाइड क्या हैं, जहां इस पर चर्चा की जा सकती है?
बर्क

0

कुछ साल पहले के लोकप्रिय सवाल, पहले से ही काफी दिलचस्प जवाबों के साथ। हालांकि, क्या लगता है: "इन दिनों इसके लिए एक मॉड्यूल है ... वास्तव में दो भी!" (पूर्व के किसी भी उत्तर में उल्लेख नहीं किया गया है)।

अधिक जानकारी के लिए पढ़ें ... (उद्धरण उनके परियोजना पृष्ठों से हैं) ...

नोड पृष्ठ व्यवस्थापक (या तो D6 या D7):

इस मॉड्यूल को हैंडल / नोड पेज एक्सेस को संभालने के लिए एक प्रशासन सेटिंग पैनल जोड़ता है । एक बार जब यह सक्रिय हो जाता है तो तीन पॉसिबल विन्यास होते हैं:

  • Core - Drupal core नोड पेज एक्सेस को हमेशा की तरह हैंडल करेगा: सभी उपयोगकर्ता core एक्सेस कंटेंट ’की अनुमति के साथ
  • विकलांग - कोई भी / नोड का उपयोग करने में सक्षम नहीं होगा। यह 'पृष्ठ नहीं मिला' (404) लौटाएगा।
  • अनुमति द्वारा - प्रवेश को एक नई अनुमति द्वारा नियंत्रित किया जाएगा: 'एक्सेस नोड पेज'

नोड पृष्ठ अक्षम करें (केवल D6 या D7, हालाँकि केवल rc2 संस्करण):

उपयोग नहीं होने पर आसान UI एक्सेस और पथ / नोड को अक्षम करने देता है । यह प्रोडक्शन चेक मॉड्यूल में एक सुरक्षा विचार से प्रेरित था ।


-1

सबसे अच्छा तरीका है कि template_preprocess_page फ़ंक्शन से नोड्स को छिपाया जाए

function template_preprocess_page(&$variables) {
    if ($variables['is_front'] == 1) {
        if (isset($variables['page']['content']['system_main'])) {
            unset($variables['page']['content']['system_main']);
        }
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.