blog
Artículos Drupal 7 funciones tema

Maquetar en Drupal 7: Funciones del Tema

En mi artículo anterior sobre Maquetar en Drupal 7 repasamos la estructura básica de la API de plantillas de Drupal y como conocerla nos puede ahorrar muchos dolores de cabeza. Te recomiendo que lo leas antes de seguir.

En este artículo quiero repasar contigo otra de las características de la API, que es muy conveniente dominar a la hora de desarrollar: Las funciones del tema.

Las funciones del tema de Drupal existen para que puedas crear marcado HTML y que este sea personalizable por temas y módulos. El core de Drupal tiene muchas funciones de tema programadas que crean el marcado HTML para items de menú,  elementos para formularios, o incluso imágenes. ¿Alguna vez te has preguntado cómo Drupal genera e imprime estos elementos? Pues aquí tienes la respuesta. En tu plantilla HTML no tienes que definir directamente el HTML de la imagen.

Cómo llamar la funciones del tema

Las funciones del tema tienen un nombre simple, theme_algo(). Donde theme es el nombre del tema que estás desarrollando.

Si utilizamos por ejemplo, la función theme_image(), la forma correcta, “forma Drupal” de llamar esta función es utilizando una otra función de Drupal, la función theme(). Esta función permite que otros módulos alteren el objeto antes que  se genere el código HTML, además de beneficiar una consistencia en el sistema. Esta función es responsable por el enrutamiento correcto de la función del tema.

La forma correcta de llamar una Función del Tema para maquetar una imagen sería:

  • <?php print theme(‘image’, array(‘path’ => ‘/imagen.png’, ‘alt’ => ‘mi imagen’)); ?>

Te recuerdo que en la array de la función puedes , además del path y el alt, definir otros atributos, como el title, etc…

Sustituir las funciones del tema

Tal como en los ficheros de plantilla que vimos en el artículo anterior, Drupal también te permite sustituir las funciones de tema de forma fácil. No tendría mucho sentido crear un fichero de plantilla sólo para un elemento de formulario (un botón de radio o una caja de texto). Una función de tema te permite hacerlo. El servidor lo agradecerá a nivel de rendimiento. Las funciones del tema son ligeramente más rápidas que los ficheros de plantilla.

Lo primero que tienes que hacer es asegurarte que en el sistema de carpetas de tu theme hay un fichero con el nombre template.php. Si no lo tienes, lo puedes crear, añadiendo obviamente <?php en la primera línea. En el Drupal es buena práctica no añadir la etiqueta de cierre (?>) de PHP al final del fichero.

El siguiente paso es buscar la función original de la API del Drupal, que quieres sustituir,  copiar y pegar en tu fichero template.php, y realizar los cambios en el código PHP según tus necesidades. Antes de guardar el fichero debes cambiar el prefijo de la función. Si la función que estás sustituyendo es la theme_image(), ahora se llamará inusual_image(). Recuerda que inusual es el nombre del tema que estás desarrollando.

Guardas el fichero y ¡no te olvides de limpiar las cachés!

Fuentes:

CodyHouse

Artículo anterior

¿Conoces el Framework que utilizas?

Siguiente artículo
I help Organizations to use Technology to improve people's lives

También te puede interesar

La innovación en Pokémon Go

La tecnología no es la innovación, pero…

Mente, Cuerpo y Resultados

3 ejemplos de innovación abierta