Bagaimana cara menyembunyikan halaman / simpul default?

22

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?

wiifm
sumber
Saya telah menggunakan solusi yang diusulkan oleh @kiamlaluno untuk mengarahkan ulang simpul ke jalur yang berbeda.

Jawaban:

17

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.

Berdir
sumber
1
Inilah jawaban Clive yang baik dengan kode exapmle drupal.stackexchange.com/a/24133/6309
milkovsky
8

Buat alias path yang mengalihkan dari / node ke halaman yang ingin Anda gunakan sebagai halaman depan.

kiamlaluno
sumber
1
Ini tidak berfungsi untuk saya dengan modul alias url, alias / simpul ke <front> atau index.php. Saya mencoba untuk meneruskan ke /
john
5
Aneh saya lakukan / simpul ke <front> dan itu berfungsi dengan baik.
Sean Bannister
Seperti Anda @ John, UI dari aliasing tidak memungkinkan saya untuk maju ke halaman depan. Saya harus menggunakan modul redirect saja.
Postscripter
6

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';      
}
Marc Bachmann
sumber
4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

atau tambahkan ini ke settings.php (URL barang masuk)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>
AyeshK
sumber
2

Saya menggunakan modul Redirect : Saya baru saja menambahkan 301 redirect dari nodeke <front>.

ACD
sumber
1

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.

Menguraikan
sumber
1

Anda dapat membuat halaman yang dipetakan ke / simpul yang tidak dipublikasikan. Jadi pengguna yang akan memanggil jalur ini akan memiliki akses halaman terlarang

pitop
sumber
1

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.

Jack McKenzie
sumber
1

Anda dapat membuat halaman baru dengan URL simpul dan orang-orang dapat melihat pesan yang mengarahkan mereka untuk mengunjungi halaman depan atau memilih kategori sesuatu.

Mario
sumber
1

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

Kasım Burak Özdemir
sumber
Ini pemandangan di D8, jadi drush @example.com views-disable frontpageakan mematikannya. Akan tetap mendapatkan 404 meskipun sampai hal-hal lain selesai.
colan
0

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.

Mike L.
sumber
1
Benar, tetapi /nodemasih bisa dihubungi, itu tidak akan terlihat secara default
Laxman13
Saya salah membaca apa yang dia minta. Bagaimana dengan Path redirect http://drupal.org/project/path_redirect module?
Mike L.
1
Sayangnya Path Redirect tidak memungkinkan Anda untuk mengarahkan ulang dari jalur yang ada. Ia memeriksa untuk melihat apakah jalur yang Anda coba redirect dari adalah jalur yang valid dan jika demikian, redirect tidak dibuat dan peringatan ditampilkan.
Laxman13
Keren. Saya belum menggunakannya sebentar, jadi itu tidak positif. Terima kasih!
Mike L.
0

Anda dapat menggunakan modul Aturan untuk memeriksa url sebelum melihat halaman dan mengarahkan pengguna ke halaman lain jika Anda mau.

  • Tambahkan aturan dengan acara: Konten akan dilihat
  • Tambahkan kondisi: Jalankan kode PHP khusus dan periksa jalurnya
  • Tambahkan tindakan: Pengalihan Halaman dan pilih jalur yang ingin Anda alihkan
Laxman13
sumber
Ini tidak hanya menimbulkan hukuman kinerja yang berat, itu harus dianggap sangat tidak aman. "Execute custom PHP" seharusnya tidak disarankan kecuali semua efek samping dan kelemahannya sudah sangat dikenal. -1 untuk itu.
berkelanjutan
@berkes Saya akan berasumsi itu karena Aturan akan melakukan pemeriksaan pada setiap halaman memuat dan karena itu memperlambat situs? Kenapa "Execute custom php" selalu disukai? Jelas tidak baik untuk penggunaan pengguna akhir, tetapi apakah ada kerugian untuk penggunaan pengembang juga? Maaf jika lama, telah bekerja sangat keras untuk menjadi yang terbaik yang saya bisa dengan Drupal dan belajar "seluk beluk". (Bisa menambahkan bagian kedua sebagai pertanyaan sendiri jika diperlukan)
Laxman13
tolong pertimbangkan Q baru "Apa kerugian menggunakan PHP 'khusus'" dengan beberapa contoh area (blok, argumen tampilan, filter php, dll.) di mana ini dapat dibahas?
Berlangsung
0

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 .

Pierre
sumber
-1

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']);
        }
    }
}
Serg Kushch
sumber