Saya ingin mengubah mode tampilan simpul secara terprogram. Saya menggunakan hook_preprocess_node(&$vars)
dan mengatur mode tampilan:
function moduleName_preprocess_node(&$vars) {
// if conditions to apply particular view mode
$vars['view_mode'] = 'teaser';
$vars['elements']['#view_mode'] = 'teaser';
}
Tapi ini tidak berfungsi seperti yang diharapkan. Apakah saya melewatkan sesuatu di sini?
Jawaban:
Mengubah mode tampilan dalam fungsi preprocess melakukannya terlambat.
Cara yang benar untuk mengubah modul tampilan adalah menerapkan hook_entity_view_mode_alter () , yang dipanggil sebelum konten entitas dirender. Misalnya, dalam node_view () , kait itu dipanggil dari node_build_content () , yang merupakan fungsi pertama yang dipanggil dari
node_view()
.sumber
Jika Anda hanya perlu mengubahnya untuk halaman tertentu, saya sarankan Lihat Mode Halaman . Ini cukup praktis dan mudah digunakan.
sumber