Tips para desarrollar la interfaz del usuario en Drupal

June 18, 2021

Tags: IT Staff ES 2024
Share

Table of contents

Quick Access

drupal

 

Drupal ofrece herramientas que simplifican la creación de elementos visuales básicos en páginas web, como vínculos HTML, imágenes y tablas. Estas herramientas van desde simples funciones que devuelven código HTML hasta sistemas más avanzados basados en hooks y funciones de theming. Estas últimas permiten separar completamente la lógica de la presentación, lo que mejora el orden y la escalabilidad de las funcionalidades desarrolladas.

 

Actualmente, Drupal organiza su arquitectura en tres capas principales:

  1. Datos: Incluye la base de datos y el API de Drupal para interactuar con ella de manera abstracta.
  2. Lógica: Los módulos utilizan esta capa para ejecutar las funcionalidades necesarias a partir de los datos.
  3. Presentación: Se encarga de mostrar al usuario la información necesaria para interactuar con el sistema.

 

En este artículo, nos centraremos en consejos para trabajar con la capa de presentación y las herramientas que Drupal ofrece.

 

Funciones Básicas para Construir HTML

Una de las funciones más útiles en Drupal para generar HTML es la función l. Esta función crea vínculos HTML seguros contra ataques XSS (Cross-Site Scripting) y permite agregar atributos como clases, parámetros de URL, y más.

 

Ejemplo básico de uso:

 
l('Click aquí', 'node/35'); 

 

Ejemplo completo:

 
l(    'Click aquí',    'node/35',    array(        'attributes' => array(            'class' => array('click-here', 'click-here-35'),            'target' => '_blank'        ),        'query' => array(            'destination' => 'user',        )    ) ); 

 

Aunque esta función solo genera fragmentos HTML, la construcción del resto de la página requiere herramientas más avanzadas, que exploraremos a continuación.

 

Herramientas de Theming en Drupal

En los módulos nativos y contribuidos de Drupal, se emplean diferentes archivos que separan la lógica del funcionamiento de la presentación. Por ejemplo:

 

  • Archivos .info: Contienen información básica del módulo.
  • Archivos .module: Incluyen funciones principales que definen el comportamiento del módulo.

 

Ejemplo de lógica y presentación separadas:

 
function my_module_output_generate() {    // Capa lógica    $output_arr = array();    $output_arr['value_1'] = $val1->title;    $output_arr['value_2'] = field_get_items('node', $item, 'field_val2');    // Capa de presentación    $output = theme('my_module_output', $output_arr); } 

 

En este caso, se utiliza una función de theme llamada mediante la función theme(), que convierte los datos en HTML.

 

Creación de una Theme Function

Antes de utilizar una theme function, es necesario declararla en el hook hook_theme. Este define cómo funcionará el tema y si usará un archivo de plantilla (.tpl.php) para generar el HTML.

 

Declaración de un tema:

 
function my_module_theme() {    return array(        'my_module_output' => array(            'template' => 'my-module-output',            'variables' => array(),            'path' => drupal_get_path('module', 'my_module') . '/templates',        ),    ); } 

 

En este ejemplo:

  • my_module_output está asociado al archivo my-module-output.tpl.php.
  • El archivo debe estar en la carpeta templates dentro del módulo.

 

Ejemplo de plantilla HTML (.tpl.php):

 
<div class="my-module-field">    <span class="label">Value 1: </span>    <?php print t($value_1); ?> </div

 

Uso de Herramientas Adicionales

Drupal incluye diversas funciones de theme para crear tablas, bloques, imágenes, o páginas completas. Además, el módulo Theme Developer ayuda a comprender cómo se construyen las páginas en Drupal. Este módulo proporciona una interfaz para explorar y modificar las funciones aplicadas en una página.

 

Separar la lógica operativa de la presentación visual es esencial para mantener la escalabilidad y el orden en proyectos complejos. La arquitectura de capas de Drupal permite añadir nuevas funcionalidades sin modificar el sistema base y desplegarlas de maneras distintas según las necesidades de la presentación.

 

Gracias a esta flexibilidad, Drupal sigue siendo una herramienta poderosa para desarrollar aplicaciones robustas y escalables.

 

Te recomendamos este video