"Henüz hiçbir ön sayfa içeriği oluşturulmadı." Mesajı ön sayfadan nasıl kaldırılır?


14

Sadece ana sayfada bloklar istiyorum. Düğümüm olmadığından ve ana sayfayı / düğüm olarak tutmak istediğim için "Henüz hiçbir ön sayfa içeriği oluşturulmadı." Sayfamdaki mesaj.

Bunu nasıl çözebilirim?

Yanıtlar:


13

Kim tahmin ederdi ki? Bunun için bir modül var. Boş Ön Sayfa modülünü kontrol edin . Sadece 10 satır kod ile, oradaki en basit modüllerden biri olmalıdır.


Yan not olarak, bu modül, sitenin düğümleri olmayacaksa gerekli olmayan "Yeni içerik ekle" bağlantısını da kaldıracaktır.
kiamlaluno

2
Dikkatli!! Küçük değişiklikler için modüller eklemenize gerek yoktur: şablon dosyanızı geçersiz kılabilir ve aşağıdaki kodu ekleyebilirsiniz: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) }
Himanshu Pathak

5
Dikkatli? Modül eklemek günümüzde tehlikeli midir? Aslında, temanıza böyle şeyler koymak konusunda daha dikkatli olurdum. Kendinize "Başka bir tema seçersem, bu değişiklik devam etmeli mi?" Cevabınız evet ise, temanıza ait değildir.
marcvangend

@HimanshuPathak Bir temaya kod eklemekten kaçınmak muhtemelen daha iyidir, özellikle de davranış bir temaya bağlı olmadığında (yani bir temaya eklediğiniz kodun her temaya eklenmesi gerektiği anlamına gelir).
kiamlaluno

Teşekkürler, bu durumda biz değiştirmeniz gerekiyor MYTHEMEtarafından MYMODULEsağa?
Himanshu Pathak

9

Bunu temanızın şablon dosyasında yapabilirsiniz:

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 için işe yarıyor mu?
Guru

denemedim ve hayır sanırım
Himanshu Pathak

Bir site için kullandığım temadan bağımsız olarak istediğim bir şey için temaya kod eklemezdim.
kiamlaluno

2

"İçerik yok mesajını" gizlemek için hızlı bir CSS geçici çözümü, CSS dosyanıza aşağıdaki satırı eklemektir:

 #first-time {display:none;}

1
Bu tehlikeli bir şey. Google sonuçlarında ortaya çıkıyor;)
Tomáš Fejfar

Size katılıyorum. bu en iyi çözüm değil. bu bir çözümdür. başka bir şey değil.
xaa

1

"Henüz hiçbir ön sayfa içeriği oluşturulmadı." , aşağıdaki kodu içeren ön sayfa olarak (node_page_default ()) kullandığınız sayfanın sayfa geri aramasında gösterilir .

  $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>';

    // …
  }

Sitenin düğümleri olmadığı için çıktı alınır; ileti, ön sayfadaki (veya olmayan) bloklarla ilgili değildir.

Bu ön sayfayı saklamak istiyor ancak bu mesajı görmüyorsanız, aşağıdaki kancayı bir modüle uygulayabilirsiniz.

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>', '');
  }
}

Diğer alternatif, settings.php dosyasının sonuna aşağıdaki kodu eklemek olacaktır.

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

Web sitenizde etkinleştirilmiş başka diller varsa, her dil için benzer bir giriş ekleyebilirsiniz. Örneğin, İtalyanca için girilecek kod aşağıdaki kod olacaktır. ( _enile değiştirilir _it.)

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

Bu yöntemi kullanarak, "Henüz hiçbir ön sayfa içeriği oluşturulmadı." yalnızca ön sayfada değil, kullanıldığı her yerde değiştirilir. Bu dize normalde yalnızca ön sayfada varsayılan ön sayfa olduğunda kullanılır. Bu dizeyi kullanan başka bir modül olup olmadığını bilmiyorum, ancak bu dizeyi boş bir dize ile değiştirmeden önce $conf['locale_custom_strings_en'][''], onu kullanan herhangi bir etkin modül (Düğüm modülü hariç) olup olmadığını kontrol ederim.


Bu arada, bu, mevcut tüm blokları ana sayfamdan kaldıracak mı? Onları tekrar yapmam gerekecek mi? Yoksa sadece istemediğim mesajdan kurtulacak mı?
user12804

Bir sayfanın sayfa geri aramasını değiştirmek, o sayfaya atanan blokları değiştirmez, bu nedenle her iki soruya da cevap hayırdır.
kiamlaluno

Üzgünüm, başka bir soru. Bunu hangi modüle yerleştirmeliyim? Bu ön sayfayı saklamak istiyor ancak bu mesajı görmüyorsanız, aşağıdaki kancayı bir modüle uygulayabilirsiniz. işlev mymodule_page_alter (& $ page) {if (isset ($ page ['default_message'] ['# markup']) && is_string ($ page ['default_message'] ['# işaretleme'])) {$ page ['default_message '] [' # markup '] = strtr ($ page [' default_message '] [' # markup '],' <p> '. t (' Henüz hiçbir ön sayfa içeriği oluşturulmadı. ').' </ p > ',' '); }}
user12804

Siteyi özelleştirmek için henüz bir modül oluşturmadıysanız, bir modül oluşturmanız gerekir.
kiamlaluno

1

Şunları içeren tüm yeni projeler için bir şablon var:

  1. hook_menu () "home" gibi genel bir yol için yeni bir menü geri araması yapmak
  2. İçinde bir boşluk olan bir dize döndüren "home" için sayfa geri çağrısı '' (boş bir dize döndürürseniz Omega "akıllı" olmaya çalışır)
  3. Site ana sayfasını "ev" url'üme ayarlayan bir stronggarm dışa aktarma

Bu kadar, whacky varsayılan düğüm sayfasıyla bir daha uğraşmak zorunda değilim.


Neden yalnızca hook_enable () değişken_setiniz ('site_frontpage', 'home') içinde dışa aktarıyorsunuz ve ayarlamıyorsunuz; sadece bir not
Pan Chrono

1

Bu, İçerik bölgesine yerleştirilen diğer içeriklerle karıştırılmadan bu hatadan kurtulmak için harika bir snippettir . Bu yalnızca bu hatayı gizler ve diğer içerikleri normal şekilde gösterir.

Bu snippet, "Henüz hiçbir ön sayfa içeriği oluşturulmadı"kaldırma bölümünde yayınlandı . varsayılan Drupal kurulumunda .

/**
 * 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 sayfasını sayfaya bağla - front.tpl.php ve çengel tadını çıkarmak istediğini yap :-)


Bunun için teşekkürler. Bu iki şablonu nasıl "bağlarım"? Bu, "Henüz hiçbir ön sayfa içeriği oluşturulmadı." ana sayfada metin?
user12804

hayır hem şablonları kanca ihtiyacı sadece bu adımları izleyin:
Somik

1) toplam page.tpl.php içeriğini çengelli önünüze kopyalayın. Pl 2) daha sonra kontrol etmek için adınızı veya adımı en üste yazın ve evinizi yenileyin 3) yine de ad yapılandırmanızı bulamıyorsanız-> performans-> temizle tüm önbellek sert yenileme ön sayfa
Somik

2
Birden fazla tema etkinleştirilmişse, bu yöntemi takip etmemeyi tercih ederim.
kiamlaluno

0

Bunu Drupal'ın yönetici arayüzünden yapmanın bir yolu olup olmadığından emin değilim.

Bunu başarmanın bir yolu, bildiğim, ifsizin için bir ifade eklemektir page.tpl.php. Şunun gibi bir hat bulun:

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

... ve şu şekilde değiştirin:

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

Bu, temel olarak ana sayfa içeriğini ön sayfa olmayan tüm sayfalara yazdırır. Ancak, bu sizi sayfanızın ortasında bir boşluk bırakabilir.

Bartik temasına içerik ekledikten sonra.

Dolayısıyla, page.tpl.phpçevrenizdeki kapsayıcı etiketlerinde başka ayarlamalar yapabilir ve belki de daha fazlasını kapsayabilirsiniz. Başlığı ana sayfa için ilk kenar çubuğunun üzerine koyarak tamplate'yi daha da değiştirmek:

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

... ve ilk ififadeyi taşıyıp hemen içerik kabının içine yerleştirerek:

<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 -->

... şu sonuçları verdi:

İçeriği kaldırdı ve başlığı korudu.


Bu çok aşırı: içindekilerin tümünün kaldırılmasına gerek yoktur $page['content'].
kiamlaluno

Bunun yerine ne önerirsiniz?
user12804


0

Neden bu kadar karmaşık hale getirdiğinizi bilmiyorum. (Eh, abd'nin yollarının işe yarayıp yaramadığını bilmiyorum, ancak işe yaramadığı takdirde, aşağıdaki çözümü kullanın.

page.tpl.php içinde kodun bu kısmını bulmanız gerekir:

(bu benim var Adaptif Tema 7x-3.2)

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

Tek yapmanız gereken silmek! Tüm çizgiler.

Php bu kısmı sadece diyor ki:

"Başlık" varsa, H1 yazı tipi boyutunda yazdırın. Kodun yazıldığı alanda web sitesinde basılır. Uyarlanabilir Tema durumunda Başlık alanındadır.

Alt temanızda page.tpl.php yoksa, onu ana temada bulmalı ve sonra ana temanızla aynı konuma, alt temanıza kopyalamalısınız.

AT'de /templates/page.tpl.php

Uyarlanabilir tema alt temanızda "şablonlar" adlı bir klasör oluşturmanız ve daha sonra o sayfaya page.tpl.php kopyalamanız ve yukarıda belirtilen kodun bir kısmını silmeniz gerektiği anlamına gelir.

Çekirdek temasında herhangi bir değişiklik yapmamanız önemlidir!


0

Bu kodu page.tpl.php dosyasına yerleştirin

if(drupal_is_front_page()) {

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

}

Veya

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

Sayfada - front.tpl.php



0

Daha iyi bu işi başarmak için ayarlanmazsa $page['content']['system_main']['default_message']bölgesi hook_preprocess_theme veyapage.tpl.php veyapage--front.tpl.php .

bulmak

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

ve aşağıdaki kodla değiştirin.

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

VEYA

  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"
     }
    }

Zevk almak!!


0

Drupal 8'de aynı "Henüz hiçbir ön sayfa içeriği oluşturulmadı." ayrıca, örneğin yeni bir site oluşturup ön sayfasını (ana sayfa) ziyaret ettikten hemen sonra gösterilir. Ancak değiştirmek veya kaldırmak isterseniz işler basitleştirilmiştir ... Gereken tek şey şudur:

  • /admin/structure/views/view/frontpage("Frontpage" adlı görünümü düzenlemek için) öğesine gidin .
  • "Sonuç davranışı yok" içinde, düzenlemek için "Global: Filtrelenmemiş metin" bağlantısını kullanın. İletiyi (= "Henüz hiçbir ön sayfa içeriği oluşturulmadı.") İstediğiniz şekilde değiştirin veya yalnızca tamamen kaldırın.
  • Unutma kaydet değişiklikleri.

Değişikliklerinizi doğrulamak için ön sayfaya gidin. Gerekirse, mesajı daha fazla ayarlamak için yukarıdaki adımları tekrarlayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.