Cách lưu trữ các mẫu Lượt xem với một mô-đun thay vì một chủ đề


13

Tôi đã tạo một số mẫu chế độ xem hiện đang được lưu trữ trong thư mục chủ đề đang hoạt động của mình. Trong muốn các mẫu này được lưu trữ trong thư mục mô-đun của tôi.

Câu hỏi của tôi là, làm thế nào tôi có thể mang các tệp chủ đề này (ví dụ view-view-field.tpl.php.) Vào thư mục mô-đun của tôi và được xem bởi Chế độ xem?

Nhìn vào các mô-đun Lượt xem, tôi có thể thấy rằng các mẫu mặc định được lưu trữ trong các khung nhìn / chủ đề, nhưng tôi không thấy nó đã được triển khai như thế nào.

Câu trả lời:


29

Điều này làm tôi mất một thời gian để tìm ra là tốt. Mã sau phải được đặt trong tệp .module của bạn (mã giả định mô-đun của bạn được gọi là "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'),
  );
}

Điều này sẽ báo cho Views để xem trong thư mục gốc của mô-đun của bạn. Cá nhân tôi là một fan hâm mộ của việc thêm một thư mục con vào mô-đun để giữ các tệp mẫu. Để làm điều này, hãy thêm tên thư mục vào cuối đường dẫn mẫu, vd:

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

Thêm chúng vào một thư mục con là một ý tưởng tuyệt vời, làm sạch mọi thứ và nó hoạt động hoàn hảo. Những người tìm kiếm trong tương lai đảm bảo xóa bộ nhớ cache Drupal của bạn. Cảm ơn bạn @Reekan Mantell
Citricguy

Cảm ơn bạn! Tôi đã hack chủ đề quản trị viên của mình trong nhiều tháng chỉ để vượt qua một trường xem trong bảy. Bây giờ tôi không phải làm thế.
JM01

Và tôi phải nói rằng bạn vẫn có thể đưa TPL vào chủ đề của mình ngay cả khi bạn đã triển khai mã này. Cảm ơn.
anou

2
Điều này sẽ không hoạt động với các mô-đun Tính năng, thay vào đó sử dụng hook_views_api_alter()như đã lưu ý ở đây: deeson.co.uk/labs/view-temsheet-features-module
Aubrey Robertson

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.