Saya membuat jenis konten khusus. Secara default, node hanya mendukung dua mode tampilan ( full
dan teaser
):
function mymodule_view($node, $view_mode)
{
if ($view_mode == 'full') {
$node->content['#theme']= 'my_full_node_view_theme';
}
if ($view_mode == 'teaser') {
$node->content['#theme']= 'my_teaser_node_view_theme';
}
return $node;
}
Saya ingin menambahkan beberapa mode tampilan lain untuk jenis simpul ini, seperti:
small_box
small_box_with_user_pic
big_box
dan ingin membuat simpul dengan kode seperti ini:
$node = node_load($my_nid);
$output = drupal_render(node_view($node, 'big_box'));
Ada saran?
Jawaban:
pertama-tama kita harus menambahkan mode tampilan tambahan dengan hook_entity_info_alter
// kami dapat melampirkan fungsi tema atau templat tambahan dan menambahkan variabel dengan hook_view
// dalam tema kait kami
sumber
Jika semua yang Anda inginkan adalah tampilan kustom mode, maka Badan View Mode dapat membantu. Display Suite juga membuatnya mudah untuk membuat mode tampilan kustom, untuk membuat pseudo-bidang baru, dan memiliki antarmuka drag & drop yang bagus untuk meletakkan berbagai elemen dalam berbagai mode tampilan.
Jika Anda ingin melakukan ini semua dalam kode, maka entitas_example dari modul Contoh memiliki mode tampilan IIRC. Drupal Commerce juga memiliki sejumlah entitas khusus dengan mode tampilan kustom.
sumber
Jika Anda menggunakan Display Suite, pastikan modul ds_ui diaktifkan dan buka admin / structure / ds / view_modes untuk mendapatkan daftar mode tampilan yang ada dan buat.
sumber
Saya tahu ini adalah topik yang lebih lama, tetapi saya telah menemukan metode berikut ini berfungsi dengan baik untuk sebagian besar kasus penggunaan.
Langkah-langkah sederhana ini akan membawa Anda melalui pembuatan modul Anda sendiri dengan mode tampilan baru. Ini cukup sederhana. Saya ingin memberikan atribusi, tetapi saya tidak ingat di mana saya menemukan dasar untuk ini. Itu memang mengikuti logika yang sama dengan jawaban werqious.
File 1: my_module_view_modes.module
File 2: my_module_view_modes.info
Simpan dua file ini di folder my_module_view_mode Anda di folder modul Anda dan aktifkan. Bersihkan cache Anda dan sekarang Anda akan melihat mode tampilan baru di masing-masing entitas.
sumber