Nueva actualización de seguridad para el core de Drupal, versiones 6.14 y 5.20

Uno de los tweets de Dries ya me lo hizo sospechar esta tarde, y 76 días después de la última actualización de seguridad para Drupal, salen las versiones 6.14 y 5.20.

Drupal 6.14 incluye más de 50 correcciones entre bugs de seguridad, de código y documentación, mientras que la versión 5.20 tiene ocho correcciones.

Las vulnerabilidades más importantes que corrigen estas versiones están en su mayoría relacionadas con OpenID. La implementación de OpenID en el core de Drupal 6 permitía a usuarios malintencionados identificarse con cuentas de OpenID y vincularlas a usuarios ya existentes para así robar la identidad de otros usuarios. También se ha corregido este módulo para que incluya las especificaciones de OpenID 2.0.
Además, algunos de los ficheros subidos mediante file upload podían ser creados como ejecutables por Apache. El .htaccess que genera Drupal debería resolver este problema.
Finalmente, se corrige un problema con el id de la sesión que los usuarios anónimos siguen cuando se recupera un password mediante mail de confirmación. Hasta el momento ese id de sesión era reutilizable y podía ser utilizado en varias ocasiones. Esto último solo pasaba en Drupal 5.

En la nota de la release podéis encontrar más detalles.

Como siempre, es muy recomendable actualizar cuanto antes para evitar problemas, si no podemos aplicar la actualización completa, al menos sí el parche, éste para drupal 6.13 y éste otro para drupal 5.19.

Conclusiones de la DrupalCon Paris

¡La DrupalCon París 2009 ha terminado!

Como muchos sabéis ya, he asistido a la que era mi primera DrupalCon. He podido asistir a casi todas las sesiones que había planificado durante tres días intensos y muy cansados, pero ha merecido la pena, a todos los que os habéis pensado acudir, os recomiendo que hagáis lo posible para acudir a la siguiente.

Han sido tres días de sesiones, talleres, charlas y muchos drupaleros, además de una cantidad respetable de cerveza "patrocinada", he podido por fin conocer a gente con la que había tenido relación solamente por internet con la que tenía muchas ganas de contactar personalmente e incluso hemos podido conspirar bastante sobre el futuro de la comunidad drupalera en España y latinoamerica.

una de las fotos de grupo, por TeeCee

Organización

foto de scattered sushine

La organización del evento ha sido estupenda, las sesiones estaban bién especificadas, apenas ha habido cancelaciones (una, que yo sepa) ni problemas técnicos, allí por donde fueras había voluntarios dispuestos a ayudarte, Mis felicitaciones desde aquí a todos los organizadores por un trabajo muy bien hecho.

Drupal y jQuery: principios básicos

Qué es jQuery

jQuery es una librería Javascript de código abierto que ayuda a desarrollar funcionalidades complejas tanto en Javascript como en Ajax (Asynchronous JavaScript + XML). Facilita la interacción de los diferentes códigos cliente y proporciona un desarrollo basado en objetos y modular para realizar aplicaciones más interactivas y con comportamientos más aparentes. Así que es una librería a utilizar tanto por aquellos que empiezan con javascript, ya que es más sencillo de utilizar para desarrollar Ajax, como por aquellos que tengan experiencia utilizando lenguajes de cliente, en este caso facilitará el desarrollo y acelerará los tiempos de implementación. A través de jQuery se puede acceder al código DOM (Document Object Model) de las páginas HTML o xHTML y manipular sus elementos, así como cambiar propiedades de las CSS, reaccionar ante eventos o facilitar el uso de efectos y transiciones, entre otras cosas. Además, es modular y se puede extender mediante la gran cantidad de plugins existentes que complementan y habilitan funcionalidades extra que van desde efectos drag and drop a multitud de presentaciones de datos en forma de carrusel, de acordeon, etc.

Conceptos básicos de jQuery

No es el objetivo de esta entrada ser una guía de jQuery, para esto hay recursos magníficos como la propia documentación de jQuery o visual jQuery que proporciona una visión gráfica e interactiva de todas las funciones y eventos que podemos utilizar, aún así creo que es bueno que hable de un par de conceptos básicos para que, si alguien que no ha visto el uso de jQuery lee este artículo, al menos pueda entender los ejemplos. La parte más básica de la librería es la "función" $, que representa el contexto de jQuery, por ejemplo, para añadir una propiedad css a un elemento de una página HTML, bastaría con esta sentencia:

$('p.clase_elemento').css('color', 'blue');

Con este código, el elemento o elementos de tipo p (párrafo) que tengan la clase (clase_elemento) cambiarán su color de texto a azul. También es posible encadenar sentencias, por ejemplo para cambiar el texto de un título y además cambiar alguna propiedad de css:

$('div.contenido h2').html('texto cambiado).css('font-size', 20);

Este código reemplazará el texto del elemento o elementos de tipo h2 que estén dentro de alguna capa (div) con clase 'contenido', el nuevo texto será 'texto cambiado' y además cambiará el tamaño del mismo a 20. Utilizando jQuery también podemos disparar acciones ante determinados eventos, por ejemplo, en el click a un link.

$('#ocultate a').click(function() { $(div.timido).hide(); });

Con el código de aquí arriba, cuando pulsemos (evento click) en los enlaces (anchors) que estén contenidos dentro del elemento con el id 'ocultate', los divs con la clase 'timido' se ocultarán al haberles invocado la función hide(). Además de toda la nueva funcionalidad de jQuery, se puede utilizar el código javascript como en cualquier fichero normal de tipo .js. Podéis encontrar un listado de eventos, efectos, acciones y todo lo que se puede hacer con jQuery en la documentación que he mencionado más arriba.

Drupal 6 y jQuery

Desde la versión 5, allá por 2006, se ha incluido jQuery en el core de Drupal, convirtiéndose así en la librería "oficial" de desarrollo en javascript y Ajax para módulos y plugins en aplicaciones de Drupal. Antes de incluir jQuery, otras librerías como Dojo o Prototype fueron consideradas, pero jQuery fue elegido gracias a su estabilidad, a su tamaño ligero, y sobre todo a la colaboración de su creador, John Resig, facilitando que la licencia de la librería permitiese integrarla en Drupal. Más sobre la historia de jQuery y Drupal. La versión de jQuery agregada en el core de Drupal varía según si es Drupal 5, que incluye jQuery 1.0, 1.1 o 1.2 o Drupal 6, que incluye jQuery 1.2 o 1.3 en sus últimas subversiones. De todas formas, el módulo jquery update permite actualizar la versión de jQuery de las diferentes versiones de Drupal.

Añadiendo ficheros jQuery

La función central para añadir ficheros con código jQuery (.js) dentro de Drupal es drupal_add_js() (referencia). Con esta función podemos añadir ficheros para un módulo, un theme o incluso pasar variables desde el código PHP a jQuery. Por ejemplo, para añadir un fichero en un theme, podemos utlizar esta función dentro de la plantilla:

drupal_add_js('path/fichero.js', 'theme');

También se puede añadir un fichero javascript a un módulo con una llamada parecida:

drupal_add_js('path/fichero.js', 'module');

Una función muy útil para añadir ficheros javascript es drupal_get_path, que sirve para recuperar la ruta de un theme o de un módulo para poder añadir el fichero js.

Mi calendario de la DrupalCon París

Este próximo martes a primera hora cogeré un avión con dirección a París para asistir a mi primera DrupalCon, y revisando el calendario de sesiones propuestas me encuentro en dificultades para elegir a las que voy a asistir ya que hay muchísimas interesantes y algunas de estas se desarrollan en paralelo, hay hasta 6 sesiones en paralelo cada hora / dos horas. Voy a hacer una preselección de sesiones en este post.

Módulos imprescindibles: ImageCache

Mostrar imágenes en una página web es una de las acciones que más ancho de banda consume en el servidor web, y la optimización de esta carga es uno de los puntos clave para que una web vaya rápido, y se reduzca el tráfico consumido. Es por esta razón por la que el módulo ImageCache es tan imprescindible en una instalación de Drupal que utilice imágenes.

Curso de Drupal en el CCMA

Además de una visión global sobre Drupal, hace unas semanas estuvimos impartiendo varias sesiones de formación al equipo de desarrollo web del CCMA.

Estas cuatro sesiones que comparto aquí incluyen una visión básica de instalación y configuración de Drupal, los módulos más importantes, e incluso cómo crear un módulo de forma básica, además, optamos por dedicar la última sesión especialmente al theming y plantillas de Drupal.

Si os parece interesante, en Septiembre vamos a abrir estas sesiones a todos los que os queráis apuntar a nuestro curso de Drupal en Barcelona.

Nueva actualización de seguridad para el core de Drupal, versiones 6.13 y 5.19

Han pasado 49 días desde la última actualización de seguridad para Drupal que nos dejó el versionado en la 6.12 / 5.18 y hoy mismo ha salido una nueva versión que corrige vulnerabilidades.
Este nuevo parche proporciona una solución para varias debilidades de seguridad en el core de Drupal

Presentación sobre Drupal en el CCMA

Estas semanas en Neurotic están siendo muy ajetreadas, ayer por la mañana Jordi y yo estuvimos en la Corporación Catalana de Medios Audiovisuales (CCMA) de la Generalitat de Cataluña realizando una presentación sobre Drupal.
Fue una charla muy genérica ante el equipo técnico de desarrollo web la CCMA, jefes de proyecto y de producto, nos centramos en el funcionamiento interno de la herramienta, en cómo se adapta a soluciones profesionales y terminamos mostrando unos cuantos sitios web hechos con Drupal. La duración de la charla estaba prevista en cuatro horas, pero finalmente la acabamos en tres.

La he subido a Slideshare.net y aquí la podéis ver:

A esta presentación se le sumarán cuatro sesiones formativas que impartiremos entre Carlos y yo durante esta semana y la que viene.

Si os gusta el diseño de la presentación, es mérito de Juan Carlos, que se lo ha trabajado mucho estos días.

Semana de eventos drupaleros: Sesión sobre Panels en drupal.cat

El próximo sábado 13 de junio tendrá lugar una sesión informativa sobre el módulo Panels en el Citilab de Cornellá, a cargo de Robert Garrigós, presidente de la asociación drupal.cat.

En la primera parte de la sesión, de 10 a 12, Robert hará una introducción práctica al módulo Panels y de las 12 a las 14 se hará una tabla redonda "PANELS NO, PANELS SI!" en la que se entablará un debate para exponer los puntos débiles y fuertes del módulo, casos de éxito, alternativas, etc.

III edición de la drupalada, con cambio de ubicación

Hace ya más de dos meses de la última drupalada y ya va tocando una nueva edición, con una novedad: ¡cambiamos de ubicación!, esta edición será en el George Payne, en la misma plaza Urquinaona número 5 el próximo miércoles 10 de Junio a la hora de siempre, las 19:00.

La drupalada es una reunión informal de gente interesada en el mundo del CMS Drupal, desarrolladores, webmasters, emprendedores, diseñadores, y gente curiosa en general, si tenéis libre la tarde del miércoles, estáis invitados a pasaros por el George Payne a compartir un rato agradable con nosotros.

El hilo conductor de la última edición fue el aprendizaje de Drupal, y creo que fue una buena forma de romper el hielo, ¿qué os parece Drupal y la crisis para esta ocasión?, ¿habéis notado un parón en los proyectos drupaleros por la situación económica? ¿o todo lo contrario, la gente tira más hacia Drupal y el software libre cuando la economía aprieta?

Cada vez somos más los que nos juntamos alrededor de Drupal y unas cervezas, así si estáis cerca de Barcelona y os mola Drupal y/o la cerveza, ¡no tenéis excusa!

No es imprescindible, pero si os unís al grupo de facebook, podréis apuntaros al evento, y de esta forma sabremos más o menos cuánta gente va a venir.

Páginas