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.

Drupal to WP

Drupal to WP is an integration between Drupal and WordPress. There are a Drupal module, Drupal to WP, and a WordPress plugin, Drupal to WP XML-RPC.

Drupal to WP XML-RPC

This plugin adds some Multisite-specific functions to WordPress XML-RPC interface (http://yourdomain.com/xmlrpc.php).

Functions available

  • drupal.newBlog – Create a new blog
  • drupal.getUsers – Get all users of your installation
  • drupal.getUsersBlogs – Get blogs of a user
  • drupal.getBlogId – Get a blog ID
  • drupal.getCategories – Get a list of categories on a given blog
  • drupal.newUser – Create a new user
  • drupal.deleteUser – Delete a user

Requeriments

  • Its neccesary to activate mcrypt support in PHP.

Installation

  1. Upload `drupaltowp_xmlrpc` folder to the `wp-content/plugins` directory in your WordPress multisite installation.
  2. Activate the plugin in your Administration Panel.
  3. Check ‘Enable the WordPress, Movable Type, MetaWeblog and Blogger XML-RPC publishing protocols’ through ‘Writing’ menu and click ‘Save Changes’.

Client configuration

Password must be encrypted before calling one of this xml-rpc functions so follow this steps:

  1. Open file `drupaltowp_xmlrpc.php` and copy the function `drupaltowp_encrypt_password` to your code.
  2. Define a key for encrypting your passwords. Max 20 characters.
  3. Edit file `drupaltowp_xmlrpc.php` and put your key value in line 32:
    `define( 'DRUPALTOWP_KEY', 'your-key-value' );`

Download

Download the plugin from the WordPress Plugin Directory: http://wordpress.org/extend/plugins/drupal-to-wp-xml-rpc/
If plugin works in your WP version, send your vote and push works in the compability form.

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…