Views şablonlarını tema yerine bir modülle saklama


13

Şu anda etkin temalar dizinimde saklanan çeşitli görünümler şablonları oluşturdum. In tercih bu şablonlar benim modül dizininde saklanır.

Benim sorum, bu tema dosyalarını (örneğin, görünümler-görünüm-field.tpl.php) modüller dizinime nasıl getirebilir ve Görünümler tarafından görülmesini sağlayabilirim?

Views modüllerine baktığımda, varsayılan şablonların görünümlerde / temada depolandığını görebiliyorum, ancak nasıl uygulandığını göremiyorum.

Yanıtlar:


29

Bu da biraz zamanımı aldı. Aşağıdaki kod .module dosyanıza yerleştirilmelidir (kod, modülünüzün "NAME" olarak adlandırıldığını varsayar)

/**
* 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'),
  );
}

Bu, Views'a modülünüzün kök dizinine bakmasını söyler. Ben şahsen şablon dosyalarını tutmak için modüle bir alt dizin ekleme hayranıyım. Bunu yapmak için dizin yolunu şablon yolunun sonuna ekleyin, örn:

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

Onları bir alt dizine eklemek harika bir fikirdir, işleri temizler ve mükemmel çalışır. Gelecekteki araştırmacılar Drupal önbelleğinizi temizlediğinizden emin olur. @Reekan Mantell
Citricguy

Teşekkür ederim! Yedi yıldır sadece bir görünüm alanını aşmak için yönetici temamı aylardır hackledim. Şimdi zorunda değilim.
JM01

Ve bu kodu uygulasanız bile yine de temanıza TPL koyabileceğinizi söylemeliyim. Teşekkürler.
anou

2
Bu özellik modülleriyle çalışmaz, bunun yerine hook_views_api_alter()burada belirtildiği gibi kullanın : deeson.co.uk/labs/views-templates-features-module
Aubrey Robertson

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.