Drupal out of the box dilengkapi dengan halaman (yang merupakan homepage default) yang ditugaskan ke jalur simpul .
Bagaimana saya menghindari pengguna mencapainya, dan mengarahkan mereka ke beranda situs yang sebenarnya?
Drupal out of the box dilengkapi dengan halaman (yang merupakan homepage default) yang ditugaskan ke jalur simpul .
Bagaimana saya menghindari pengguna mencapainya, dan mengarahkan mereka ke beranda situs yang sebenarnya?
Jawaban:
Tidak ada cara mudah untuk menyembunyikan halaman itu. Jika Anda tidak menggunakannya, Anda dapat mengimplementasikan hook_menu_alter () , dan menghapusnya sepenuhnya, atau mengatur panggilan balik aksesnya ke FALSE
.
Buat alias path yang mengalihkan dari / node ke halaman yang ingin Anda gunakan sebagai halaman depan.
Saya lebih suka mengubah page callback dari / node sehingga ia menunjukkan kesalahan.
Ini selalu menunjukkan halaman 404 khusus Anda saat mengakses / node.
function yourmodule_menu_alter(&$items) {
$items['node']['page callback'] = 'drupal_not_found';
}
Mirip dengan jawaban berdirs, saya memiliki kode berikut yang termasuk dalam modul yang merupakan bagian dari distro khusus yang kami buat:
function HOOK_menu_alter(&$items) {
$items['node']['page callback'] = '_HOOK_empty_home';
}
function _HOOK_empty_home() {
drupal_set_title('');
return '';
}
Dengan begitu saya bisa menjaga jalur 'simpul' sebagai halaman depan dan menggunakan konteks untuk memposisikan blok untuk membangun halaman depan yang diperlukan.
Solusi mudah bagi saya adalah membuat halaman yang saya inginkan sebagai halaman beranda dan mengatur URL ke / node. Kemudian di bawah / admin / config / sistem / situs-informasi atur halaman depan default ke / node. Anda tidak pernah melihat "/ simpul" di URL kecuali seseorang benar-benar mengetiknya. Cepat, mudah dan bersih, asalkan Anda ingin mengatur URL beranda ke / simpul.
Saya mencoba banyak hal. Kemudian untuk Drupal 7 dan 8, saya menemukan ini paling mudah, tanpa menulis kode apa pun:
unduh dan aktifkan modul node_page_disable, globalredirect, dan redirect.
(Catatan: modul simpul_page_disable pengalihan / simpul ke 404 tidak ditemukan halaman kesalahan.)
kemudian tambahkan redirect untuk / node -> halaman depan
Harap dicatat bahwa pengalihan mengarahkan / node dan / node / ke halaman depan.
dan artikel yang bermanfaat untuk dibaca: https://www.drupalaid.com/blog/3-things-you-should-hide
drush @example.com views-disable frontpage
akan mematikannya. Akan tetap mendapatkan 404 meskipun sampai hal-hal lain selesai.
Buat simpul, lalu buka konfigurasi situs -> informasi situs, dan atur beranda ke jalur simpul. Jadi jika itu simpul pertama Anda, itu akan menjadi simpul / 1.
Sunting: Secara default, hanya dengan membuat simpul halaman itu akan hilang jika Anda mencentang 'promosikan ke halaman depan'. Langkah informasi situs akan menjadikan simpul itu halaman depan Anda yang sebenarnya.
/node
masih bisa dihubungi, itu tidak akan terlihat secara default
Anda dapat menggunakan modul Aturan untuk memeriksa url sebelum melihat halaman dan mengarahkan pengguna ke halaman lain jika Anda mau.
Pertanyaan populer dari beberapa tahun yang lalu, dengan jawaban yang cukup menarik. Namun, coba tebak: "Hari ini ada modul untuk itu ... sebenarnya bahkan dua!" (tidak disebutkan dalam jawaban sebelumnya).
Baca terus untuk perincian lebih lanjut ... (penawaran berasal dari halaman proyek mereka) ...
Admin halaman node (baik D6 atau D7):
Modul ini menambahkan panel pengaturan administrasi untuk menangani / mengakses halaman node . Setelah diaktifkan ada tiga konfigurasi yang memungkinkan:
- Inti - Inti Drupal akan menangani akses halaman simpul seperti biasa: semua pengguna dengan izin 'mengakses konten'
- Dinonaktifkan - Tidak ada yang akan dapat mengakses / node. Ini akan mengembalikan 'Halaman tidak ditemukan' (404).
- Dengan izin - Akses akan ditangani oleh izin baru: 'halaman simpul akses'
Nonaktifkan Page Node (baik D6 atau D7, meskipun hanya versi rc2):
Mengizinkan akses UI mudah dan penonaktifan jalur / simpul saat tidak digunakan. Ini terinspirasi oleh pertimbangan keamanan dalam Modul Pemeriksaan Produksi .
cara terbaik adalah menyembunyikan node dari fungsi 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']);
}
}
}