सामने वाले पेज से "कोई फ्रंट पेज कंटेंट अभी तक नहीं बनाया गया है।" संदेश को कैसे हटाया जाए?


14

मुझे केवल मुखपृष्ठ पर ब्लॉक चाहिए। क्योंकि मेरे पास कोई नोड नहीं है, और मैं मुखपृष्ठ को / नोड के रूप में रखना चाहता हूं, मुझे "कोई फ्रंट पेज सामग्री अभी तक नहीं मिली है।" मेरे पेज पर संदेश।

मैं इसके आसपास कैसे पहुंचू?

जवाबों:


13

किसने अनुमान लगाया होगा? इसके लिए एक मॉड्यूल है। खाली फ्रंट पेज मॉड्यूल की जाँच करें । कोड की केवल 10 पंक्तियों के साथ, यह वहाँ से बाहर सबसे सरल मॉड्यूल में से एक होना चाहिए।


साइड नोट के रूप में, यह मॉड्यूल "नई सामग्री जोड़ें" लिंक को भी हटा देगा जो कि आवश्यक नहीं है, अगर साइट में नोड्स नहीं हैं।
kiamlaluno

2
सावधान !! आपको छोटे परिवर्तनों के लिए मॉड्यूल जोड़ने की आवश्यकता नहीं है: आप अपनी टेम्प्लेट फ़ाइल को ओवरराइड कर सकते हैं और followning कोड जोड़ सकते हैं:function MYTHEME_preprocess_page(&$vars) { if (drupal_is_front_page()) { unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created" drupal_set_title(''); //removes welcome message (page title) }
हिमांशु पाठक

5
सावधान? क्या मॉड्यूल जोड़ना आजकल खतरनाक है? वास्तव में, मैं आपके विषय में इस तरह से सामान रखने के बारे में अधिक सावधान रहूंगा। आप अपने आप से सवाल पूछ सकते हैं "यदि मैं कभी भी किसी अन्य विषय का चयन करूंगा, तो क्या यह बदलाव बना रहना चाहिए?" यदि उत्तर हाँ है, तो यह आपके विषय में नहीं है।
मार्केवेंडेंड

@HansanshuPathak किसी विषय में कोड जोड़ने से बचना शायद बेहतर है क्योंकि यह आसान है, स्पष्ट रूप से, जब व्यवहार एक विषय से निर्भर नहीं होता है (जिसका अर्थ है कि आप किसी विषय में जो कोड जोड़ रहे हैं उसे हर विषय में जोड़ा जाना चाहिए)।
kiamlaluno

धन्यवाद, उस मामले में हम प्रतिस्थापित करने की आवश्यकता MYTHEMEद्वारा MYMODULEना?
हिमांशु पाठक

9

आप इसे अपनी थीम की टेम्प्लेट फ़ाइल में कर सकते हैं:

function MYTHEME_preprocess_page(&$vars) {
  if (drupal_is_front_page()) {
    unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created"
    drupal_set_title(''); //removes welcome message (page title)
  }
}

यह drupal8 के लिए काम है?
गुरु

हालांकि मैंने कोशिश नहीं की है और मुझे लगता है कि नहीं
हिमांशु पाठक

मैं किसी ऐसी चीज़ के लिए थीम में कोड नहीं जोड़ूंगा जो मैं स्वतंत्र रूप से उस विषय से चाहता हूं जिसे मैं किसी साइट के लिए उपयोग करता हूं।
kiamlaluno

2

"सीएसएस सामग्री नहीं है" छिपाने के लिए एक त्वरित सीएसएस समाधान बस अपनी सीएसएस फ़ाइल में निम्नलिखित पंक्ति जोड़कर है:

 #first-time {display:none;}

1
यह एक खतरनाक काम है। यह Google परिणामों में दिखाई देता है;)
Tomáš Fejfar

मैं आपसे सहमत हुँ। यह सबसे अच्छा समाधान नहीं है। यह एक वर्कअराउंड है। और कुछ नहीं।
xaa

1

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

  $select = db_select('node', 'n')
    ->fields('n', array('nid', 'sticky', 'created'))
    ->condition('n.promote', 1)
    ->condition('n.status', 1)
    ->orderBy('n.sticky', 'DESC')
    ->orderBy('n.created', 'DESC')
    ->extend('PagerDefault')
    ->limit(variable_get('default_nodes_main', 10))
    ->addTag('node_access');

  $nids = $select->execute()->fetchCol();

  if (!empty($nids)) {
    $nodes = node_load_multiple($nids);
    $build = node_view_multiple($nodes);

    // 'rss.xml' is a path, not a file, registered in node_menu().
    drupal_add_feed('rss.xml', variable_get('site_name', 'Drupal') . ' ' . t('RSS'));
    $build['pager'] = array(
      '#theme' => 'pager', 
      '#weight' => 5,
    );
    drupal_set_title('');
  }
  else {
    drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal'))), PASS_THROUGH);

    $default_message = '<p>' . t('No front page content has been created yet.') . '</p>';

    // …
  }

यह केवल उत्पादन है क्योंकि साइट में नोड्स नहीं हैं; संदेश सामने वाले पृष्ठ से संबंधित नहीं है (या नहीं) ब्लॉक है।

यदि आप उस फ्रंट पेज को रखना चाहते हैं, लेकिन उस संदेश को नहीं देख रहे हैं, तो आप एक मॉड्यूल में निम्नलिखित हुक को लागू कर सकते हैं।

function mymodule_page_alter(&$page) {
  if (isset($page['default_message']['#markup']) && is_string($page['default_message']['#markup'])) {
    $page['default_message']['#markup'] = strtr($page['default_message']['#markup'], '<p>' . t('No front page content has been created yet.') . '</p>', '');
  }
}

अन्य विकल्प settings.php फ़ाइल के अंत में निम्नलिखित कोड जोड़ रहा होगा।

$conf['locale_custom_strings_en'][''] = array(
  'No front page content has been created yet.' => '',
);

यदि आपकी वेबसाइट में अन्य भाषाएँ सक्षम हैं, तो आप प्रत्येक भाषा के लिए एक समान प्रविष्टि जोड़ सकते हैं। उदाहरण के लिए, इतालवी में प्रवेश करने के लिए कोड निम्नलिखित होगा। (के _enसाथ बदल दिया गया है _it।)

$conf['locale_custom_strings_it'][''] = array(
  'No front page content has been created yet.' => '',
);

इस पद्धति का उपयोग करते हुए, "अभी तक कोई फ्रंट पेज सामग्री नहीं बनाई गई है।" इसे हर उस जगह बदला जाएगा जहां इसका इस्तेमाल होता है, न कि सिर्फ फ्रंट पेज पर। उस स्ट्रिंग का उपयोग आम तौर पर केवल फ्रंट पेज में किया जाता है, जब फ्रंट पेज डिफॉल्ट होता है। मुझे नहीं पता कि उस स्ट्रिंग का उपयोग करने वाला कोई अन्य मॉड्यूल है, लेकिन उस स्ट्रिंग को एक रिक्त स्ट्रिंग के साथ बदलने से पहले $conf['locale_custom_strings_en'][''], मैं जांच करूंगा कि कोई भी सक्षम मॉड्यूल नहीं हैं जो इसका उपयोग करते हैं (नोड मॉड्यूल को छोड़कर)।


वैसे, क्या यह मेरे होमपेज से सभी मौजूदा ब्लॉकों को हटा देगा? क्या मुझे उन्हें फिर से करना होगा? या यह केवल उस संदेश से छुटकारा पा लेगा जो मुझे नहीं चाहिए?
user12804

किसी पृष्ठ के लिए पृष्ठ कॉलबैक बदलने से उस पृष्ठ को दिए गए ब्लॉक नहीं बदलते हैं, इसलिए उत्तर दोनों प्रश्नों का नहीं है।
kiamlaluno

क्षमा करें, एक और प्रश्न। मुझे इसे किस मॉड्यूल में डालना चाहिए? यदि आप उस फ्रंट पेज को रखना चाहते हैं, लेकिन उस संदेश को नहीं देख रहे हैं, तो आप एक मॉड्यूल में निम्नलिखित हुक को लागू कर सकते हैं। फ़ंक्शन mymodule_page_alter (& $ पृष्ठ) {if (isset ($ पृष्ठ ['default_message'] ['# markup']) और& is_string ($ पृष्ठ ['default_message]] [' # markup ']) {$ पृष्ठ [' default_message '] [' '# मार्कअप'] = स्ट्रेट ($ पृष्ठ ['डिफ़ॉल्ट_मेस' '] [' # मार्कअप '],' <p> '। t (' कोई फ्रंट पेज कंटेंट अभी तक नहीं बनाया गया है। ')' '</ b> > ',' '); }}
user12804

यदि आप साइट को अनुकूलित करने के लिए पहले से ही नहीं बनाए हैं, तो आपको एक मॉड्यूल बनाने की आवश्यकता है।
kiamlaluno

1

मेरे पास सभी नई परियोजनाओं के लिए एक टेम्पलेट है:

  1. "घर" जैसे सामान्य पथ के लिए एक नया मेनू कॉलबैक बनाने के लिए hook_menu ()
  2. "घर" के लिए पृष्ठ कॉलबैक जो इसमें एक स्थान के साथ एक स्ट्रिंग लौटाता है '' (क्योंकि यदि आप खाली स्ट्रिंग लौटाते हैं तो ओमेगा "स्मार्ट" होने की कोशिश करता है)
  3. एक मजबूत निर्यात जो साइट मुखपृष्ठ को मेरे "होम" url पर सेट करता है

यही है, मुझे कभी भी फिर से अजीब डिफ़ॉल्ट नोड पेज से निपटने की ज़रूरत नहीं है।


आप निर्यात क्यों करते हैं और न केवल अपने हुक_एनेबल () चर_सेट ('साइट_फ्रंटपेज', 'होम') में सेट करते हैं; सिर्फ एक नोट
पैन क्रोनो

1

यह सामग्री क्षेत्र में अन्य सामग्री के साथ भ्रमित किए बिना इस त्रुटि से छुटकारा पाने के लिए एक अच्छा स्निपेट है । यह केवल इस त्रुटि को छिपाएगा और अन्य सामग्रियों को सामान्य रूप से दिखाएगा।

इस स्निपेट को "अभी तक कोई सामने पृष्ठ सामग्री नहीं बनाई गई है" निकालें पर पोस्ट किया गया है। डिफ़ॉल्ट Drupal स्थापना में

/**
 * Implements template_preprocess_page().
 */

  function YOUR_THEME_preprocess_page(&$vars) {
   // Remove the "No front page content has been created yet.".
     if (isset($vars['page']['content']['system_main']['default_message'])) {
        unset($vars['page']['content']['system_main']['default_message']);
      }
  }

0

अपने page.tpl.php को पृष्ठ - front.tpl.php पर हुक करें और जो भी आप चाहते हैं उसे हुक करने का आनंद लें :-)


उसके लिए धन्यवाद। मैं उन दो टेम्पलेट्स को "हुक" कैसे करूं? क्या इससे छुटकारा मिलेगा "अभी तक कोई सामने पृष्ठ सामग्री नहीं बनाई गई है।" मुखपृष्ठ पर पाठ?
user12804

दोनों टेंपलेट को हुक करने की आवश्यकता नहीं है, बस इस चरण का पालन करें:
सोमिक

1) कुल पृष्ठ.tpl.php सामग्री को अपने झुके हुए सामने के लिए कॉपी करें। 2) फिर चेक के लिए अपना नाम या मेरा नाम शीर्ष पर लिखें और अपने घर को ताज़ा करें 3) फिर भी अगर आप अपना नाम कॉन्फ़िगरेशन नहीं पाते हैं-> प्रदर्शन-> स्पष्ट सभी कैश हार्ड रिफ्रेश फ्रंट पेज
सोमिक

2
यदि एक से अधिक विषय सक्षम हैं, तो मैं इस पद्धति का पालन नहीं करूंगा।
kiamlaluno

0

मुझे यकीन नहीं है कि ड्रुपल के एडमिन इंटरफेस से ऐसा करने का कोई तरीका है।

इसे पूरा करने का एक तरीका, जिसे मैं जानता हूं, वह यह है कि ifआपके लिए एक बयान जोड़ना है page.tpl.php। एक लाइन की तरह खोजें:

<?php print render($page['content']); ?>` 

... और इसे इसमें बदलें:

<?php if (!$is_front): ?>
  <?php print render($page['content']); ?>
<?php endif; ?>

यह मूल रूप से उन सभी पृष्ठों पर मुख्य पृष्ठ की सामग्री को प्रिंट करेगा जो फ्रंट पेज नहीं हैं। लेकिन, यह आपको अपने पृष्ठ के मध्य में एक अंतराल छेद के साथ छोड़ सकता है।

बार्टिक विषय पर टिप्पणी करने के बाद।

तो, आप अपने page.tpl.phpआसपास के कुछ अन्य समायोजन करने के लिए अच्छी तरह से कर सकते हैं और संभवतः आसपास के कंटेनर टैग को अधिक शामिल कर सकते हैं। होम पेज के लिए पहले साइडबार के ऊपर हेडिंग लगाकर टैम्पलेट को और बदल दिया गया है:

<?php if ($is_front): ?>
  <?php if ($title): ?>
    <h1 class="title" id="page-title">
      <?php print $title; ?>
    </h1>
  <?php endif; ?>
<?php endif; ?>

... और प्रारंभिक ifवक्तव्य को आगे बढ़ाते हुए और इसे कंटेंट कंटेनर के अंदर रखते हुए:

<div id="content" class="column">
  <?php if (!$is_front): // Moved the if statement over here.... ?>
    <div class="section">
      <?php if ($page['highlighted']): ?>
        <div id="highlighted"><?php print render($page['highlighted']); ?>
        </div>
      <?php endif; ?>
      <a id="main-content"></a>
      <?php print render($title_prefix); ?>
      <?php if ($title): ?>
        <h1 class="title" id="page-title">
          <?php print $title; ?>
        </h1>
      <?php endif; ?>
      <?php print render($title_suffix); ?>
      <?php if ($tabs): ?>
        <div class="tabs">
          <?php print render($tabs); ?>
        </div>
      <?php endif; ?>
      <?php print render($page['help']); ?>
      <?php if ($action_links): ?>
        <ul class="action-links">
          <?php print render($action_links); ?>
        </ul>
      <?php endif; ?>
        <?php print render($page['content']); ?>
      <?php print $feed_icons; ?>

    </div>
  <?php endif;  // ...and closed it here. ?>
</div> <!-- /.section, /#content -->

... निम्नलिखित परिणाम मिले:

सामग्री को हटा दिया और शीर्षक बनाए रखा।


यह बहुत अधिक है: सभी सामग्री को हटाना आवश्यक नहीं है $page['content']
kiamlaluno

इसके बजाय आप क्या सुझाव देंगे?
user12804


0

मैं नहीं जानता कि आप लोग इसे इतना जटिल क्यों मानते हैं। (अच्छी तरह से मुझे नहीं पता कि अगर पेट के तरीके काम करते हैं, लेकिन अगर यह काम नहीं करता है, तो नीचे दिए गए समाधान का उपयोग करें।

page.tpl.php में आपको कोड का यह भाग खोजना होगा:

(अच्छी तरह से मैं यह मेरा अनुकूली थीम 7x-3.2 है)

<?php if ($title): ?>
<h1 id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>

आपको बस इसे डिलीट करना है! सभी लाइनों।

Php का यह हिस्सा बस कहता है:

यदि "शीर्षक" मौजूद है, तो इसे H1 फ़ॉन्ट आकार में प्रिंट करें। यह उस क्षेत्र में वेबसाइट पर मुद्रित होता है जिस क्षेत्र में कोड लिखा गया है। एडेप्टिव थीम के मामले में यह हैडर क्षेत्र में है।

यदि आपके पास उप-प्रकार में पृष्ठ.tpl.php नहीं है, तो आपको इसे मूल विषय में खोजना होगा, और फिर इसे उसी स्थान पर कॉपी करें जो मूल विषय के रूप में है, अपने उप-विषयक पर।

AT में यह /templates/page.tpl.php है

इसका मतलब यह है कि आपके अनुकूली विषय उपमेय में आपको "टेम्प्लेट" नाम का फोल्डर बनाना होगा और फिर वहां पेज कॉपी करना होगा। पेज.फ्लॉप करें और फिर ऊपर बताए गए कोड के हिस्से को हटा दें।

यह महत्वपूर्ण है कि आप कोर थीम में कोई बदलाव न करें!


0

इस कोड को page.tpl.php में रखें

if(drupal_is_front_page()) {

unset($page['content']['system_main']['default_message']);

}

या

unset($page['content']['system_main']['default_message']);

पेज में - front.tpl.php



0

बेहतर प्राप्त करने के लिए इस काम के सेट नहीं होने $page['content']['system_main']['default_message']में hook_preprocess_theme या में page.tpl.phpया page--front.tpl.php

खोज

<?php print render($page['content']); ?>

और नीचे कोड के साथ बदलें।

<?php  if(drupal_is_front_page()){
            unset($page['content']['system_main']['default_message']);
            } 
        print render($page['content']); 
    ?>

या

  function MYTHEME_preprocess_page(&$vars) { 
       if (drupal_is_front_page()) { 
            unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is    created"
     }
    }

का आनंद लें!!


0

Drupal 8 में, "अभी तक कोई फ्रंट पेज कंटेंट नहीं बनाया गया है।" यह भी दिखाया गया है, जैसे कि नई साइट बनाने और उसके फ्रंट पेज (होमपेज) पर जाने के ठीक बाद। लेकिन चीजों को सरलीकृत किया गया है यदि आप इसे बदलना या हटाना चाहते हैं ... जो कुछ आवश्यक है वह ऐसा है:

  • पर जाएँ /admin/structure/views/view/frontpage("फ्रंटपेज" नाम के दृश्य को संपादित करने के लिए)।
  • "कोई परिणाम व्यवहार नहीं" के भीतर, इसे संपादित करने के लिए लिंक "ग्लोबल: अनफ़िल्टर्ड पाठ" का उपयोग करें। या तो संदेश बदलें (= "अभी तक कोई भी पृष्ठ सामग्री नहीं बनाई गई है।") जो भी आप चाहते हैं, या बस इसे पूरी तरह से हटा दें।
  • परिवर्तनों को सहेजना न भूलें ।

अपने परिवर्तनों को सत्यापित करने के लिए, फ्रंट पेज पर ब्राउज़ करें। यदि जरूरत हो तो संदेश को आगे बढ़ाने के लिए ऊपर दिए गए चरणों को दोहराएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.