Saya membuat modul yang harus dapat menampilkan konten dari jenis konten tertentu. Tampilannya agak rumit dan untuk dapat mematikannya dan untuk mengelompokkan semuanya saya membuat modul untuk ini.
Tetapi pada akhirnya seharusnya hanya menimpa node.tpl.php normal dengan file .tpl.php kustom. Ketika saya meletakkan file di folder templat saya akan diambil dan halaman ditampilkan sebagaimana dimaksud, tetapi saya tidak bisa membuatnya berfungsi saat file ada di folder modul.
Saya membaca banyak hal tentang regsiter file .tpl dan preprocess tetapi tidak ada yang menggabungkan potongan-potongan yang saya butuhkan.
Inilah yang saya miliki sejauh ini
function apps_theme($existing, $type, $theme, $path) {
$items = array(
'node--app' => array(
'template' => drupal_get_path('module', 'app') . '/node--app',
'variables' => array('node' => (object)array())
)
);
return $items;
}
function apps_preprocess_node(&$vars) {
$variables['theme_hook_suggestions'][] = 'node__app';
}
Jawaban:
Tidak jelas dalam pertanyaan Anda jika Anda menempatkan template di
sites/all/custom/modules
, atau dalamsites/all/custom/modules/the_name_of_mymodule
. Perlu nanti.Namun, jika Anda:
admin/appearance
jalan untuk memaksakan pembaruan registri tema.... tetapi masih tidak ada dadu, Anda selalu dapat menentukan di hook_theme () implementasi
theme_path
kunci:sumber
node--app
. Nama yang lebih baik adalahnode_app
, dan Anda akan memanggil fungsi theming dengan melakukantheme('node_app', [$vars]);
Saya tidak yakintheme('node--app')
adalah sesuatu yang pernah saya lihat, dan hampir yakin itu tidak akan berhasil.'node__app'
(garis bawah ganda) tidak'node_app'
Kupikir saya akan memposting solusi yang saya temukan:
sumber
Saya membuatnya bekerja dengan mengikuti ini:
http://www.metachunk.com/blog/adding-module-path-drupal-7-theme-registry
sumber