Saya ingin mengatur halaman depan Drupal secara terprogram saat dijalankan.
Bagaimana saya bisa melakukan ini? Apakah ini mungkin?
22
Anda bisa menggunakannya variable_set()
untuk itu.
variable_set('site_frontpage', $value);
hook_install
atauhook_update_N
kemudian harus baik-baik saja.Ada modul ( Frontpage , yang merupakan salah satu yang saya kelola) yang memungkinkan untuk mengatur halaman depan yang berbeda untuk pengguna anonim, dan pengguna terotentikasi. Modul ini memungkinkan modul pihak ketiga untuk mengubah halaman yang diarahkan pengguna, atau mengubah susunan struktur yang digunakan untuk membuat halaman. Modul pihak ketiga diizinkan untuk mengubah URL pengalihan hanya ketika halaman depan untuk anonim atau dikonfirmasi belum diatur dalam modul Frontpage, atau ketika ada kesalahan selama pemuatan node; modul mungkin akan diubah di masa depan untuk memungkinkan modul pihak ketiga mengarahkan pengguna ke halaman tertentu yang mereka pilih.
Sebagai alternatif, Anda dapat membuat modul khusus yang, menggunakan kode yang mirip dengan yang digunakan oleh Frontpage, mengarahkan pengguna ke halaman tertentu, berdasarkan kriteria tertentu.
Modul harus mengimplementasikan hook_menu () dan mengaitkan panggilan balik menu ke, misalnya, http://example.com/frontpage ; panggilan balik halaman dari item menu tersebut harus cukup memverifikasi suatu kondisi diverifikasi, dan kemudian mengarahkan pengguna ke URL tertentu.
Kerangka kode bisa mirip dengan yang berikut ini:
sumber
Solusi yang sangat fleksibel adalah dengan menggunakan Panel . Tampilan yang berbeda dapat disajikan berdasarkan kriteria apa pun, dan dikendalikan melalui UI.
sumber
Saya tetap seperti ini:
sumber
hook_page_alter
, dan menggunakandrupal_is_front_page
untuk mengarahkan ulang pengguna, menggunakandrupal_goto
, berdasarkan pada beberapa kondisi (dalam hal ini $ user-> uid tidak boleh 0)The Rules modul dapat digunakan juga untuk mengatur frontpage "programatik".
Aturan sebenarnya yang akan dibuat, akan menjadi variasi dari jawaban di Redirect yang masuk (diautentikasi) pengguna ke halaman depan yang berbeda menggunakan aturan atau kode php .
Dan secara opsional menggabungkannya dengan modul Bendera , mungkin dapat lebih meningkatkan pengalaman pengguna. Misalnya untuk pengguna yang masuk untuk menunjukkan halaman depan mana yang mungkin mereka anggap sebagai "favorit" mereka.
sumber
Jika Anda ingin menetapkan ini secara terprogram secara global, Anda dapat mengatur variabel di settings.php:
sumber
Saya telah mengubah simpul beranda (pada subdomain) dengan menyetel variabel dalam hook_url_outbound_alter ()
Dan kemudian mengarahkan:
sumber