Come memorizzare i modelli di Views con un modulo anziché un tema


13

Ho creato diversi modelli di viste che sono attualmente memorizzati nella mia directory dei temi attivi. Preferirei che questi modelli fossero memorizzati nella mia directory del modulo.

La mia domanda è: come posso portare questi file di temi (views-view-field.tpl.php per esempio.) Nella mia directory dei moduli e farli vedere da Views?

Osservando i moduli Viste, vedo che i modelli predefiniti sono memorizzati in viste / temi, ma non vedo come sia stato implementato.

Risposte:


29

Mi ci è voluto un po 'di tempo per capire. Il seguente codice deve essere inserito nel tuo file .module (il codice presuppone che il tuo modulo sia chiamato "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'),
  );
}

Questo dirà a Views di cercare nella directory principale del tuo modulo. Personalmente sono un fan dell'aggiunta di una sottodirectory al modulo per contenere i file modello. Per fare ciò, aggiungere il nome della directory alla fine del percorso del modello, ad esempio:

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

Aggiungerli a una sottodirectory è un'idea fantastica, pulisce le cose e funziona perfettamente. I futuri ricercatori si assicureranno di svuotare la cache di Drupal. Grazie @Reekan Mantell
Citricguy il

Grazie! Ho hackerato il mio tema di amministrazione per mesi solo per scavalcare un campo di visualizzazioni in sette. Ora non devo.
JM01

E devo dire che puoi ancora inserire TPL nel tuo tema anche se hai implementato questo codice. Grazie.
Anou,

2
Questo non funzionerà con i moduli delle caratteristiche, ma utilizzare hook_views_api_alter()come indicato qui: deeson.co.uk/labs/views-templates-features-module
Aubrey Robertson

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.