Personalizar la plantilla de página para un tipo de nodo en drupal 7

0
Sin votos
De lo que se trata aquí es de aclarar qué hay que hacer para personalizar la plantilla de la página que muestra un nodo de un tipo concreto. Es sencillo, pero no evidente, y cambia ligeramente respecto a drupal 6. Así que, después de un par de conversaciones con jonhattan y leer varias fuentes de documentación, explico:

Como muchos sabrán, si queremos personalizar el nodo de un tipo, lo que haríamos sería generar un fichero de nombre node-tipo.tpl.php, donde "tipo" es el nombre del tipo de nodo.

Ahora, si lo que queremos es personalizar la página que muestra un nodo de un tipo, la plantilla a sobreescribir es page.tpl.php, y (en drupal 7) lo hacemos creando un fichero de nombre page--node-tipo.tpl.php. Si lo hacemos, comprobamos que drupal aún no reconoce esta personalización. Para ello es necesario incluir en template.php la función mitema_preprocess_page() de este modo:


function mitema_preprocess_page(&$variables) {  

if (!empty($variables['node'])) {    

$variables['theme_hook_suggestions'][] = 'page__node_' . $variables['node']->type; 

}

}

Lo importante aquí es saber que drupal 7 modifica "_" por "-", por lo que ese "page__node_" de la función se corresponde con "page--node-" del nombre del fichero.

De esta forma, Drupal reconoce correctamente nuestra personalización de la plantilla.

Categoría: 
Bibliografía del minitutorial: 
http://www.tacande.net/blog/plantilla-de-p%C3%A1gina-para-un-tipo-de-nodo-en-drupal-7