Cómo personalizar la plantilla de página para un tipo de nodo en drupal 7

Cómo personalizar la plantilla de página para un tipo de nodo en drupal 7

Cómo personalizar la plantilla de página para un tipo de nodo en drupal 7

¡Vaya título raro que me ha quedado!. Es lo que tiene usar el castellano con un vocabulario técnico dominado por el inglés. Quizá quedaría más claro decir "Page template para un tipo de nodo en drupal 7", o "Page template para un node type en drupal 7"... pero en fin, que me lío y ¡aún no he pasado del título!

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.

Para más información, les remito a la documentación de drupal.org que me parece más útil en este caso: Drupal 7 Template Suggestions y Page templates depending on node type.

Si te ha sido útil, ¡compártelo!

Si quieres aprender más sobre Drupal, y en español, te recomiendo la formación con Forcontu.

Soy referenciante, y te ofrezco 2 cupones de descuento:

  • 10% en el curso con el cupón TACANDECUR
  • 5% en los libros con el cupón TACANDELIB

Elije tu opción de formación (curso o libros) y usa tu cupón de descuento.

Experto en Drupal 7 con Forcontu Pack de libros Drupal 7

Compartir: 
aprende.drupal-centroamerica.org
Come up