Blog

Quitando malos vicios: PHP en la base de datos de Drupal

07/02/2014

Un vicio muy común y en el que es muy fácil caer cuando desarrollas con Drupal es introducir PHP dentro de la base de datos. No entraré en detalle de por qué se considera una mala práctica, pero hay discusiones y artículos de blog sobre esto por aquí*, por aquí* y por aquí*.

Cada vez que utilizamos el estilo de texto php filter que nos permite introducir código php dentro de un campo de tipo text area, Dios mata un gatito estamos saltándonos las directrices de buenas prácticas de desarrollo de Drupal. No pasa nada si lo hacemos cuando somos conscientes de que está mal y valoramos la relación coste/beneficio de esa mala práctica, pero desde luego es algo altamente desaconsejado.

A veces es demasiado fácil caer en la tentación, ya que las alternativas pueden asustarnos (a mi me ha pasado más de una vez) o pueden ser demasiado tediosas. Para evitarlo, debemos de pasar ese código que queremos introducir dentro de algún fichero, ya sea en nuestro tema o en un módulo creado para tal propósito.

Como no siempre es sencillo saber los cómos y dóndes,  voy a intentar escribir una serie de artículos sobre este tema en cuestión, siendo este el primero de ellos.

Crear una cabecera o un pie de página de una vista, con código PHP.

En este caso, lo más sencillo es utilizar el hook_views_pre_view, añadiendole la cabecera de la siguiente forma:

 function MYMODULE_views_pre_view(&$view, &$display_id, &$args){
  if ($view->name == 'VIEWNAME' && $display_id == 'DISPLAYNAME'){
    $header = 'MYCODE';
    $options = array(
      'empty' => 1,
      'content' => $header, 
      'label' => NULL,
    );
    $view->add_item('DISPLAYNAME', 'header', 'views','area_text_custom', $options);
  }
}

La variable $header será la que contenga lo que queramos mostrar como cabecera. Además de esto, podrás incluir en la UI de la vista todos los bloques que quieras siguiendo el procedimiento normal, y esto se añadirá además de los que ya tenías o pongas en el futuro. Si deseásemos colocar el código en el pie de página en lugar de en la cabecera, sólo tendríamos que cambiar el string header, por footer, dentro de la llamada a la función add_item.

Se aceptan sugerencias, mejoras, críticas pedradas y todo tipo de comentarios no ofensivos.

¡Saludos drupaleros!

*Referencias en inglés.

También te puede gustar…

Caso de éxito: Binfluencer

Caso de éxito: Binfluencer

Binfluencer es otra de las empresas que ha confiado en ASPgems. En este caso de éxito te contamos nuestra colaboración con ellos.

ASPgems icon
C/ Sextante, 9
28023 Madrid,
España

Hablemos.

A %d blogueros les gusta esto: