Gulp.js es un gestor de tareas en Javascript que nos va ayudar a automatizar tareas repetitivas en nuestro proyecto Drupal. Una de las que mas vamos a repetir mientras estamos desarrollando es compilar el tema para generar el CSS si estamos utilizando un preprocesador como SASS o Less, con el tema de Bootstrap, por ejemplo, o con nuestro propio tema 'custom'.

Añadir Gulp a nuestro tema para compilar nos proporciona unas cuantas ventajas, entre las que podemos destacar:

  • Recompilar el tema automáticamente cada vez que modificamos un archivo less.
  • Y recargar automáticamente el navegador cuando cambia el CSS.
  • Minificar el CSS para mejorar el rendimiento.
  • Ejecutar test y chequear el código al compilar el tema, para controlar errores de sintaxis, estándares, etc.
  • Gestionar dependencias y minificar nuestros ficheros Javascript.
  • Realizar operaciones con ficheros: copiar, mover, borrar, etc.

En esta segunda parte de la gestión de la configuración en Drupal 8, vamos a ver cómo podemos mantener diferentes configuraciones para cada entorno.

Ayer publiqué la primera version estable de la rama 8.x de Related By Terms. La funcionalidad es prácticamente la misma que tiene la versión de Drupal 7, pero como podréis imaginar, he tenido que reescribir prácticamente todo el módulo. Lo único que se ha salvado, y de milagro es la query que estaba utilizando para obtener los nodos relacionados.

Ayer terminó la Drupalcon 2017 de Viena y aún estoy recuperándome. La impresión general ha sido bastante buena, aunque tengo la sensación de que la de Dublín del año pasado estuvo mejor organizada.

Voy a hacer un pequeño resumen con las charlas que me han parecido mejores.

 

DrupalCon Vienna 2017

Una de las novedades mas celebradas de Drupal 8 ha sido sin duda la nueva gestión de la configuración. Es un concepto clave para trabajar con Drupal profesionalmente, y que no existía de forma nativa en Drupal 7.

Para ilustrar el problema, vamos a verlo con un ejemplo. En cualquier proyecto de desarrollo con Drupal que se precie lo normal es mantener varios entornos:

La versión 8.0.0 de Drupal salió oficialmente en noviembre de 2015, así que bueno, solo he tardado dos años en actualizar mi Drupal 7. No esta mal.

Desde entonces ha llovido mucho, y el estado general de Drupal 8 ha mejorado bastante, hay que reconocerlo, porque hasta esta versión 8.3.7 que acabo de instalar ha pasado de todo, pero aun así mi primera impresión es que todavía le falta mucho camino para estar realmente maduro, sobre todo a nivel de módulos contribuidos. Hay muchos de ellos clave en una instalación normal de Drupal 7 que aun están muy verdes en sus versiones para D8.

Drupal 8 logo

Me ha costado pero por fin he publicado mi primer módulo en Drupal.org. Se llama Related by Terms y básicamente crea un bloque para mostrar contenido relacionado con el nodo que estamos viendo.

Para calcular las relaciones con otros nodos estoy utilizando los términos de taxonomías, de forma que se cuentan las coincidencias en términos del nodo actual, y aparecerán primero en la lista los nodos con mas coincidencias.

Sublime Text lleva siendo mi editor preferido para trabajar desde hace un montón de años. Es muy ligero, me gustan los atajos de teclado, muy configurable y tiene un sistema de plugins que le da mucha potencia.

La versión 3 lleva en beta por lo menos desde 2013, y todo el tiempo que llevo usándola no he tenido problemas.

Quería escribir un articulo con mi configuración personal que utilizo para trabajar en proyectos Drupal, y que aporta funcionalidad y facilita la vida. Como resumen:

  • Revisión de código al momento: Marcado de estándares de Drupal, errores de sintaxis, etc.
  • Marcado de modificaciones en Git: Cada cambio que hacemos en un fichero lo vemos resaltado, muy útil para saber de un vistazo las modificaciones que hemos hecho al archivo.

En un caso bastante particular necesitaba detectar si cambiaba la visibilidad de un elemento del DOM que venia de una librería externa de JS. Después de dar algunas vueltas encontré una solución bastante elegante, publicada hace bastante tiempo. No he visto nada parecido en castellano, y hay algunos hilos en Stackoverflow, pero con soluciones bastante extrañas, así que lo publicaré aquí.

El módulo Localization update (l10n_update) de Drupal nos permite mantener las traducciones de nuestro sitio actualizadas automáticamente. Basta con instalarlo:

drush dl l10n_update

drush en -y l10n_update

Y después podremos ejecutar un par de comandos de Drush para actualizar las traducciones:

drush l10n-update-refresh
drush l10n-update --languages=es

El módulo tambien dispone de una pantalla de configuración para hacer lo mismo en admin/build/translate/update