Nueva versión de Multisite Global Search

El proyecto, GRIAL 2.0, está entregado y defendido. Ahora es cuando viene lo divertido, seguir manteniéndolo y hacerlo crecer más.

Justo el día de la defensa del proyecto recibí la traducción al francés del plugin y ayer mismo tenía en mi correo la traducción al noruego. Visto que no he dado soporte al plugin de búsquedas en los dos últimos meses, decidí ponerme a implementar algunas mejoras sugeridas por los usuarios así como solventar algunos errores en su funcionamiento.

Cuando se utiliza WordPress como CMS más que como gestor de blogs, los usuarios pueden no entender la diferencia entre buscar en las publicaciones o post y buscar en las páginas estáticas, por ello, siguiendo el consejo de un par de usuarios, he añadido una opción tanto en la configuración del widget como en el uso del shortcode, que permite indicar que las búsquedas se hagan por defecto en posts y páginas y se oculta la opción  en el formulario de búsqueda.

Se ha resuelto un bug que impedía mostrar los posts privados en los resultados de búsqueda cuando estabas logueado en el sistema. Además, desde las primeras versiones, daba problemas con las instalaciones que habían migrado de un WPMU a WordPress 3.0 Multisite, se obtenía un error al activarlo que indicaba un fallo en la base de datos. Dicho bug ha sido resuelto en esta nueva versión.

Además de la funcionalidad, se ha reestructurado el plugin, separando la definición del widget en un fichero independiente y agrupando otra serie de funcionalidad como la definición de los shortcodes o el manejo de la base de datos en otros ficheros, de esta forma se facilita su mantenimiento. En versiones futuras se pasará a definir todo el plugin como un conjunto de clases que interactúan entre sí.

En definitiva, la nueva versión de Multisite Global Search, 1.2.5, con casi 3000 descargas, es más estable, está mejor estructurada e introduce pequeñas mejoras de usabilidad.

http://wordpress.org/extend/plugins/multisite-global-search/

Conectar Drupal con Moodle y WordPress

La parte central de Grial 2.0 gira en torno a la conexión entre estos tres gestores de contenidos, Drupal, Moodle y WordPress. Desde un principio, y por diversos motivos que ahora no vienen al caso, se decidió que la conexión fuera unidireccional, manteniendo Drupal como centro de mando y conectándolo con Moodle y WordPress para realizar las tareas pertinentes.

Para lograr este objetivo se han desarrollado dos módulos de Drupal, Drupal to WordPress y Drupal to Moodle, que realizan llamadas a WordPress y Moodle a través de XML-RPC. Ha sido necesario extender las funciones que estos dos CMS proporcionaban a través de su interfaz XML-RPC. Mediante un plugin de WordPress, Drupal to WordPress XML-RPC, se han añadido algunas funciones que permiten utilizar las características Multisite que hasta el momento no eran accesibles a través de este protocolo. En Moodle, en vez de extender la interfaz XML-RPC que viene por defecto, se ha optado por implementar una interfaz nueva, sencilla y potente, que permite realizar operaciones básicas de gestión de cursos.

Se ha intentado minimizar, en la medida de lo posible, las dependiencias entre estos pequeños desarrollos, de tal forma que Drupal to WordPress necesita del plugin correspondiente de WordPress, y Drupal to Moodle necesita la extensión de Moodle, pero tanto el plugin como la extensión pueden ser utilizados de forma independiente.

Todos los módulos y plugins estarán disponibles para su descarga en el repositorio oficial correspondiente a lo largo de este mes.

Desesperación

Esa es la palabra que mejor define mis últimos meses realizando el PFC. Tengo la cabeza llena de parches que pretendían solucionar el mundo, títulos de hilos en foros que otras personas desesperadas como yo comenzaron algún día, recetas mágicas para que todo funcione… Estoy segura de que muchas otras personas han tenido mi problema entonces por qué narices no consigo encontrar una solución en toda esa maraña de información que es Internet. Ante este alto nivel de saturación crees que has llegado a tu límite pero no, todavía puedes hundirte un poco más y es en ese momento cuando, si tienes algo de suerte, empiezas a hallar la solución.

Al principio todo parece tan fácil, yo sólo quería hacer que Drupal fuera un servidor de OpenID y que WordPress y Moodle fueran clientes. El core de Drupal proporciona un cliente OpenID y el servidor se instala como un módulo aparte. Ahí comenzó el problema, el dichoso módulo no funciona y lo peor de todo no se queja de ningún tipo de error.

Aquí comienza a entrar en juego la desesperación. Después de horas sin conseguir que funcionara pasamos a un cambio radical de estrategia, que le den por saco a Drupal como OpenID provider, me monto el mío propio y que todos los servicios sean clientes. Vale, pues el cliente OpenID de Drupal tampoco quiere funcionar.

Unas horas después de otros cuantos parches, consejos, recetas, he conseguido que, utilizando Community-ID como OpenID provider, Drupal y WordPress funcionen correctamente como clientes siempre y cuando Drupal se encuentre en un servidor distinto al que esté el servidor de OpenID. Mañana será otro día, a ver si el cliente de Moodle no da problemas…

Y la migración terminó

Me gusta WordPress, lo sencillo que es modificar su funcionamiento sin tener que tocar ningún fichero del core pero…odio lo resistente que es frente a migraciones. Aceptando el hecho de que les encanta propagar la ruta absoluta de los blogs por toda la base de datos, simplifiqué la migración a dos sencillos pasos, instalar un WordPress nuevo en un directorio nuevo e importar en él los pocos blogs que tenía en el antiguo. Una simple tarea que me ha llevado un día entero porque en el blog de un proyecto Comenius había una página en la que la mitad del contenido desaparecía por arte de magia. Sí, por arte de magia porque no hay otra explicación, la página se guardaba correctamente, se mostraba bien, en la base de datos se almacenaba correctamente, no existe ningún proceso en background que haga revisiones de posts/páginas ya guardados ni nada, y aún así volvías a mirar la página y la mitad del final había desaparecido. Después de muchas pruebas conseguí arreglarlo metiendo a pelo el contenido en la base de datos. Funciona. La causa no di con ella y hoy prefiero aceptar que fue magia, no tengo tiempo para indagar más. La migración está hecha.