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?
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?
Jawaban:
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.
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) }
MYTHEMEdengan MYMODULEbenar?
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)
}
}
Solusi CSS cepat untuk menyembunyikan "no content message" hanya dengan menambahkan baris berikut di file CSS Anda:
#first-time {display:none;}
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).
Saya memiliki templat untuk semua proyek baru yang berisi:
Itu saja, saya tidak perlu berurusan dengan halaman node default aneh lagi.
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']);
}
}
kaitkan page.tpl.php Anda ke halaman - front.tpl.php dan lakukan apa pun yang ingin Anda nikmati :-)
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.

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:

$page['content'].
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!
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
Anda dapat menggunakan String Overrides Module String Overrides untuk mengganti
"Belum ada konten halaman depan yang dibuat di halaman depan" hingga ""
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!!
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:
/admin/structure/views/view/frontpage(untuk mengedit tampilan bernama "Frontpage").Untuk memverifikasi perubahan Anda, ramban ke halaman depan. Jika perlu ulangi langkah-langkah di atas untuk menyempurnakan pesan.