Bagaimana pemrograman membuat penggoda node menggunakan lapisan tema?


Jawaban:


20

node_view() adalah fungsi standar untuk rendering node, mis

$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);

Ada nodetema yang ditentukan oleh modul simpul (dalam node_theme()) tapi saya belum pernah melihatnya menggunakannya.


1
Bukankah node_theme () yang memungkinkan sistem tema menggunakan file .tpl.php untuk elemen dan juga memungkinkan fungsi preprocess?
mpdonadio

Ya saya khawatir tentang melewati lapisan tema. Jika saya melakukan itu, maka modul lain yang ingin di-chip tidak akan bisa. Setidaknya, saya pikir itu benar?
Lester Peabody

1
Setelah menganalisis api.drupal.org/api/drupal/modules%21node%21node.module/function/... jika Anda melihat kode implementasi, di mana dikatakan $build += array(, itu memang memiliki #themeatribut di sana yang saya duga memberitahu Drupal untuk menggunakan sistem tema. Koreksi saya jika saya salah. Saya baru saja mulai 'mendapatkan' API Drupal :)
Lester Peabody

@MPD Ya saya tidak menjelaskan dengan sangat baik, saya hanya bermaksud bahwa saya belum pernah melihat panggilan seperti theme('node', ...sebelumnya. Bahkan itu tidak akan berhasil karena ia mendefinisikan dirinya sendiri sebagai render elementpengganti variables.
Clive

@Lester Spot aktif, ada 2 cara untuk memanggil fungsi tema, cara 'normal' ( theme('theme_name', $args)dan dengan menggunakan yang disebut render elements. hook_theme()Dokumen menjelaskannya dengan sangat baik, ini bukan 100% intuitif tetapi setelah Anda tahu, itu sangat berguna. Menggunakan node_view()kehendak jangan pernah melewati layer tema jadi Anda harus baik-baik saja :)
Clive
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.