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

Tratando de importar una copia de base de datos que había creado con drush sql-dump en otro servidor, me he encontrado con este error de MySQL:

ERROR 1071 (42000) at line 25: Specified key was too long; max key length is 767 bytes

El comando que estaba usando era bastante normal:

drush sql-cli <  ../backup.sql

Después de intentar varias opciones, también he llegado a ver este otro error:

ERROR 1709 (HY000) at line 25: Index column size too large. The maximum column size is 767 bytes.

De una temporada a esta parte supongo que habréis visto el aviso en el panel de información de Drupal acerca de actualizar la base de datos para soportar UTF-8 de 4 bytes, con este mensaje:

4 byte UTF-8 for mysql is not activated, but it is supported on your system. It is recommended that you enable this to allow 4-byte UTF-8 input such as emojis, Asian symbols and mathematical symbols to be stored correctly. See the documentation on adding 4 byte UTF-8 support for more information.

Vale, ¿pero de que va todo esto? ¿Para que sirve esta actualización?