Bagaimana cara menghapus pesan "Belum ada konten halaman depan." Dari halaman depan?

14

Saya hanya ingin blokir di beranda. Karena saya tidak punya node, dan saya ingin tetap beranda sebagai / node saya mendapatkan "Belum ada konten halaman depan yang dibuat." pesan di halaman saya.

Bagaimana saya mengatasi ini?

pengguna12804
sumber

Jawaban:

13

Siapa yang akan menebak? Ada modul untuk itu. Lihat modul Halaman Depan Kosong . Dengan hanya 10 baris kode, itu harus menjadi salah satu modul paling sederhana di luar sana.

marcvangend
sumber
Sebagai catatan tambahan, modul ini juga akan menghapus tautan "Tambahkan konten baru" yang tidak perlu, jika situs tidak memiliki simpul.
kiamlaluno
2
Cermat!! Anda tidak perlu menambahkan modul untuk perubahan kecil: Anda dapat mengganti file template Anda dan menambahkan kode 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) }
Himanshu Pathak
5
Cermat? Apakah menambahkan modul berbahaya saat ini? Bahkan, saya akan lebih berhati-hati dalam menempatkan barang-barang seperti ini di tema Anda. Anda dapat bertanya pada diri sendiri pertanyaan "Jika saya akan memilih tema lain, haruskah perubahan ini tetap?" Jika jawabannya ya, itu tidak termasuk dalam tema Anda.
marcvangend
@HimanshuPathak Mungkin lebih baik untuk menghindari menambahkan kode ke tema hanya karena lebih mudah, terutama ketika perilaku tidak tergantung dari tema (yang berarti kode yang Anda tambahkan ke tema harus ditambahkan ke setiap tema).
kiamlaluno
Terima kasih, dalam hal ini kita perlu menggantinya MYTHEMEdengan MYMODULEbenar?
Himanshu Pathak
9

Anda dapat melakukan ini di file templat tema Anda:

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
sumber
Apakah ini berfungsi untuk drupal8?
Guru
meskipun saya belum mencoba dan saya kira tidak
Himanshu Pathak
Saya tidak akan menambahkan kode dalam tema untuk sesuatu yang saya inginkan secara independen dari tema yang saya gunakan untuk sebuah situs.
kiamlaluno
2

Solusi CSS cepat untuk menyembunyikan "no content message" hanya dengan menambahkan baris berikut di file CSS Anda:

 #first-time {display:none;}
xaa
sumber
1
Ini hal yang berbahaya untuk dilakukan. Itu muncul di hasil google;)
Tomáš Fejfar
Saya setuju dengan kamu. ini bukan solusi terbaik. ini solusinya. tidak ada lagi.
xaa
1

Pesan "Belum ada konten halaman depan yang dibuat." ditampilkan dari halaman panggilan balik untuk halaman yang Anda gunakan sebagai halaman depan, node_page_default () , yang berisi kode berikut.

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

    // …
  }

Ini hanyalah keluaran karena situs tidak memiliki node; pesan tidak terkait dengan halaman depan yang memiliki (atau tidak memiliki) blok.

Jika Anda ingin menyimpan halaman depan itu, tetapi tidak melihat pesan itu, Anda dapat menerapkan pengait berikut dalam sebuah modul.

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

Alternatif lain akan menambahkan kode berikut di akhir file settings.php.

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

Jika Anda memiliki bahasa lain yang diaktifkan di situs web Anda, Anda dapat menambahkan entri serupa untuk setiap bahasa. Misalnya, untuk Italia kode yang akan dimasukkan adalah kode berikut. ( _endiganti dengan _it.)

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

Dengan menggunakan metode ini, "Belum ada konten halaman depan yang dibuat." akan diganti di setiap tempat di mana ia digunakan, bukan hanya halaman depan. String itu biasanya hanya digunakan di halaman depan, ketika halaman depan adalah yang default. Saya tidak tahu apakah ada modul lain yang menggunakan string itu, tetapi sebelum mengganti string itu dengan string kosong dengan $conf['locale_custom_strings_en'][''], saya akan memeriksa tidak ada modul yang diaktifkan yang menggunakannya (kecuali modul Node).

kiamlaluno
sumber
Omong-omong, apakah ini akan menghapus semua blok yang ada dari beranda saya? Apakah saya harus mengulanginya lagi? Atau akankah itu hanya menghilangkan pesan yang tidak saya inginkan?
user12804
Mengubah panggilan balik halaman untuk halaman tidak mengubah blok yang ditetapkan untuk halaman itu, jadi jawabannya tidak untuk kedua pertanyaan.
kiamlaluno
Maaf, pertanyaan lain. Modul mana yang harus saya masukkan ini? Jika Anda ingin menyimpan halaman depan itu, tetapi tidak melihat pesan itu, Anda bisa menerapkan pengait berikut dalam sebuah modul. function mymodule_page_alter (& $ page) {if (isset ($ page ['default_message'] ['# markup']) && is_string ($ halaman ['default_message'] ['# markup'])) {$ page ['default_message '] [' # markup '] = strtr ($ halaman [' default_message '] [' # markup '],' <p> '. t (' Belum ada konten halaman depan yang dibuat. ').' </ p > ',' '); }}
user12804
Anda perlu membuat modul, jika Anda belum membuatnya untuk menyesuaikan situs.
kiamlaluno
1

Saya memiliki templat untuk semua proyek baru yang berisi:

  1. hook_menu () untuk membuat panggilan balik menu baru untuk jalur umum seperti "home"
  2. Panggilan balik halaman untuk "rumah" yang mengembalikan string dengan satu spasi di dalamnya '' (karena Omega mencoba menjadi "pintar" jika Anda mengembalikan string kosong)
  3. Ekspor yang kuat yang menetapkan beranda situs ke url "rumah" saya

Itu saja, saya tidak perlu berurusan dengan halaman node default aneh lagi.

David Meister
sumber
Mengapa Anda mengekspor dan tidak hanya mengatur hook_enable () Anda variabel_set ('site_frontpage', 'home'); hanya sebuah catatan
Pan Chrono
1

Ini adalah cuplikan keren untuk menghilangkan kesalahan ini tanpa membingungkan dengan konten lain yang ditempatkan di wilayah Konten . Ini hanya akan menyembunyikan kesalahan ini dan menampilkan konten lainnya secara normal.

Cuplikan ini diposting di Hapus "Belum ada konten halaman depan yang dibuat." dalam instalasi Drupal default .

/**
 * 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']);
      }
  }
WaQaR Ali
sumber
0

kaitkan page.tpl.php Anda ke halaman - front.tpl.php dan lakukan apa pun yang ingin Anda nikmati :-)

Somik
sumber
Terima kasih untuk itu. Bagaimana cara "menghubungkan" kedua templat itu? Apakah ini akan menghilangkan "Belum ada konten halaman depan yang dibuat." teks di beranda?
user12804
tidak perlu mengaitkan kedua templat cukup ikuti langkah-langkah ini:
Somik
1) salin total halaman.tpl.php konten ke front.tpl Anda yang terhubung 2) kemudian untuk cek tulis nama Anda atau nama saya di bagian atas dan segarkan rumah Anda 3) masih jika Anda tidak dapat menemukan konfigurasi nama Anda-> kinerja-> hapus halaman depan semua cache penyegaran keras
Somik
2
Jika ada lebih dari satu tema yang diaktifkan, saya lebih suka tidak mengikuti metode ini.
kiamlaluno
0

Saya tidak yakin apakah ada cara untuk melakukan ini dari antarmuka admin Drupal.

Salah satu cara untuk mencapai ini, yang saya tahu, adalah dengan menambahkan ifpernyataan ke blog Anda page.tpl.php. Temukan garis seperti:

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

... dan ubah ke:

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

Itu pada dasarnya akan mencetak konten halaman utama pada semua halaman yang bukan halaman depan. Tapi, ini mungkin meninggalkan Anda dengan lubang menganga di tengah halaman Anda.

Setelah berkomentar konten pada tema Bartik.

Jadi, Anda sebaiknya melakukan beberapa penyesuaian lainnya pada Anda page.tpl.phpdan mungkin mencakup lebih banyak tag kontainer di sekitarnya. Lebih lanjut mengubah tamplate, dengan meletakkan tajuk di atas sidebar pertama untuk beranda:

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

... dan memindahkan ifpernyataan awal dan menempatkannya tepat di dalam wadah konten:

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

... menghasilkan hasil berikut:

Menghapus konten dan mempertahankan tajuknya.

Batandwa
sumber
Ini terlalu berlebihan: Tidak perlu menghapus semua konten $page['content'].
kiamlaluno
Apa yang akan Anda sarankan sebagai gantinya?
user12804
Saya lebih suka pergi dengan saran marcvangend .
kiamlaluno
0

Saya tidak tahu mengapa kalian begitu rumit. (Yah saya tidak tahu apakah cara abd bekerja, tetapi jika itu tidak berhasil, gunakan solusi di bawah ini.

di page.tpl.php Anda harus menemukan bagian kode ini:

(Yah saya punya ini Tema Adaptive 7x-3.2 milik saya)

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

Yang harus Anda lakukan adalah menghapusnya! Semua garis.

Bagian dari php ini hanya mengatakan:

Jika "judul" ada, cetaklah dalam ukuran font H1. Itu dicetak di situs web di daerah kode ditulis. Jika Tema Adaptive itu di daerah Header.

Jika Anda tidak memiliki page.tpl.php di subtema Anda, Anda harus menemukannya di tema inti, dan kemudian salin ke lokasi yang sama dengan tema inti, ke subtema Anda.

Dalam AT itu / template / halaman.tpl.php

itu berarti bahwa dalam subtema tema Adaptive Anda, Anda harus membuat folder bernama "template" dan kemudian salin page.tpl.php dan kemudian hapus bagian dari kode yang disebutkan di atas.

Penting agar Anda tidak membuat perubahan apa pun pada tema Inti!

EmilSamson
sumber
0

Tempatkan kode ini di page.tpl.php

if(drupal_is_front_page()) {

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

}

Atau

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

Di halaman - front.tpl.php

Paulson Peter
sumber
0

Anda dapat menggunakan String Overrides Module String Overrides untuk mengganti

"Belum ada konten halaman depan yang dibuat di halaman depan" hingga ""

Kamal Oberoi
sumber
0

Lebih baik untuk mencapai pekerjaan ini tidak disetel $page['content']['system_main']['default_message']dalam hook_preprocess_theme atau di dalam page.tpl.phpatau page--front.tpl.php.

Temukan

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

dan ganti dengan kode di bawah ini.

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

ATAU

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

Nikmati!!

Yusef
sumber
0

Di Drupal 8, yang sama "Belum ada konten halaman depan yang dibuat." ditampilkan juga, mis. tepat setelah Anda membuat situs baru dan mengunjungi halaman depannya (beranda). Tetapi banyak hal telah disederhanakan jika Anda ingin mengganti atau menghapusnya ... Semua yang dibutuhkan adalah seperti ini:

  • Arahkan ke /admin/structure/views/view/frontpage(untuk mengedit tampilan bernama "Frontpage").
  • Di dalam "Tidak ada perilaku hasil", gunakan tautan "Global: Teks tidak disaring" untuk mengeditnya. Ubah pesan (= "Belum ada konten halaman depan yang dibuat.") Menjadi apa pun yang Anda inginkan, atau hapus saja seluruhnya.
  • Jangan lupa untuk Menyimpan perubahan.

Untuk memverifikasi perubahan Anda, ramban ke halaman depan. Jika perlu ulangi langkah-langkah di atas untuk menyempurnakan pesan.

Pierre
sumber