Cara menyimpan templat Views dengan modul alih-alih tema


13

Saya telah membuat beberapa templat tampilan yang saat ini disimpan di direktori tema aktif saya. Pada lebih suka template ini disimpan dalam direktori modul saya.

Pertanyaan saya adalah, bagaimana saya bisa membawa file tema ini (views-view-field.tpl.php misalnya.) Ke direktori modul saya dan minta dilihat oleh Views?

Melihat modul Views, saya dapat melihat bahwa templat default disimpan dalam tampilan / tema, tetapi saya tidak melihat bagaimana itu telah diterapkan.

Jawaban:


29

Saya butuh beberapa saat untuk mencari tahu juga. Kode berikut harus ditempatkan di file .module Anda (kode tersebut mengasumsikan modul Anda disebut "NAME")

/**
* Implements hook_views_api().
*
* Enabling using templates inside module
*/
function NAME_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'NAME'),
    'template path' => drupal_get_path('module', 'NAME'),
  );
}

Ini akan memberi tahu Views untuk mencari di direktori root modul Anda. Saya pribadi penggemar menambahkan subdirektori ke modul untuk menyimpan file templat. Untuk melakukan ini, tambahkan nama direktori ke akhir jalur templat, misalnya:

'template path' => drupal_get_path('module', 'NAME') . '/templates',

Menambahkannya ke sub-direktori adalah ide yang fantastis, membersihkan semuanya dan berfungsi dengan baik. Pencari masa depan pastikan untuk menghapus cache Drupal Anda. Terima kasih @Reekan Mantell
Citricguy

Terima kasih! Saya telah meretas tema admin saya selama berbulan-bulan hanya untuk naik-naik bidang tampilan dalam tujuh. Sekarang saya tidak perlu.
JM01

Dan saya harus mengatakan bahwa Anda masih dapat menempatkan TPL di tema Anda, bahkan jika Anda telah menerapkan kode ini. Terima kasih.
anou

2
Ini tidak akan bekerja dengan modul Fitur, sebagai gantinya gunakan hook_views_api_alter()seperti yang tercantum di sini: deeson.co.uk/labs/views-templates-features-module
Aubrey Robertson

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.