Fuente: http://themes.fcsites.com/?p=53

No lo hemos probado en versiones 1.9.8 con cadena de seguridad añadida en config.php para la codificación MD5.

Escribo este post con la intención de orientar (if…) de alguna forma a los desalentados webmasters que como yo, hayan tenido la necesidad de integrar moodle y wordpress para algún website en concreto, a petición de un cliente y no hayan encontrado mucha información al respecto.

Para los que no saben de qué hablo (…) aclararemos que Moodle es un sistema de gestión de cursos de libre distribución que ayuda a los educadores a crear comunidades de aprendizaje en línea. Este tipo de plataformas tecnológicas también se conocen como LMS (Learning Management System) y WordPress es un sistema de gestión de contenidos enfocado a la creación de blogs. Desarrollado en PHP y MySQL, bajo licencia GPL, tiene como fundador a Matt Mullenweg. WordPress fue creado a partir del desaparecido b2/cafelog y se ha convertido junto a Movable Type en el CMS más popular de la blogosfera. Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus características como gestor de contenidos.

1) Lo primero es hacernos con las últimas versiones del software que necesutamos, que a día 17 de Septiembre de 2008 son: moodle [v.1.9.2] , wordpress [v.2.6.2] y el plugin de wordpress External DB authentication* [v.3.01].

Si ya teníais instalados moodle y wordpress, entonces sólo necesitaremos el plugin para éste último: External DB authentication*[http://wordpress.org/extend/plugins/external-database-authentication/ hecho por Charlene Barina].

Dejo la versión 2.5 que funciona perfectamente. A partir de esta versión, se pueden encontrar incompatibilidades diversas por lo que de no funcionar una más actual, te recomiendo recurrir a ella.

External DB authentication 2.5 par Charlene Barina (38.6 KiB, 336 hits)

*Como su propio nombre indica, permite loguearse a usuarios de una base de datos externa. Esto lo hace a través de la simple asignación de campos en el backend de wordpress, según veremos más adelante.

Dado que en el plugin no encontramos información acerca de la necesidad de instalar los scripts bajo uno u otro directorio, podemos confiar en que sea cual sea la ruta de estos bajo un dominio, funcionará correctamente.

2) Instalamos moodle y wordpress (bajo un mismo dominio al menos).

Para el caso concreto diré que yo trabajo bajo el dominio http://www.icfsevilla.com/ (portal estático) con moodle en http://francesonline.icfsevilla.com/ y wordpress enhttp://cursosdefrances.icfsevilla.com/ [digo esto porque, por ejemplo, la integración de wordpress+SMF funciona si SMF esta en el mismo directorio, o integraciones como joomla+SMF funcionan bajo la misma jerarquía anfitrión-invitado, por así decirle].

3) Ahora debemos configurar cada uno de los scripts individualmente (para gustors, colores) y luego activar el plugin requerido en wordpress… luego, configuraciones iniciales aparte, entraremos como Administrador de WordPress (el que utilizamos al instalar) para poner el plugin External DB authentication a punto tras activarlo.

Vamos a la pestaña (en WP-ADMIN) Opciones > External Database Settings.
La configuración es muy sencilla e intuitiva:

Si nuestro hosting es un linux normalito con acceso a las bases de datos sin restricciones será algo como:

External database host: localhost
External database name: pondremos el nombre de la base de datos externa (algo como nombre_wordpress o nombrebasedatos)
External database username: pondremos el nombre de usuario de la base de datos externa
External database password: pondremos la contraseña para el anterior usuario de la base de datos externa
Y SEGUIMOS ASIGNANDO VALORES DE MOODLE POR DEFECTO…
Table containing users: mdl_user
Username field: username
User password field: password
Type of encryption for password: MD5 (importante!)
User first name field: firstname
User last name field: lastname
User homepage field: url
User email field: email
User bio/description field: description
User AIM screen name field: aim
User YIM screen name field: yahoo

Nota: los campos no mencionados se dejan en blanco.

Guardamos las modificaciones… e voilà ! —> La “integración” está hecha.

Adicionalmente podemos decir a wordpress desde Opciones > Opciones Generales que no todos los usuarios pueden registrarse (esto evitará conflictos posteriores con nombres/datos de usuarios).
Luego como método de registro, a través de un simple vínculo, redirigimos a los usuarios a la carpeta ./login/ de moodle, desde donde se podrán registrar automáticamente si es vuestra preferencia en moodle.

Si lo acompañamos con un pequeño mensaje de aviso a los usuarios mejor, ya que como la creadora del plugin menciona: “I probably need to figure out a way to make it not allow people to update that information from the WP interface, as it’ll be overwritten next time you log in from the parent (Moodle) user db anyway…”, o sea que, mejor pensar que de nada vale que los usuarios actualicen su información en WP ya que se sobreescribe con cada nuevo acceso al ser una información a la que se recurre desde la base de datos de moodle. Dicho esto asignaremos el siguiente código a la línea 167 de user-edit.php en la carpeta wp-admin de wordpress:

<div id=”alerts” style=”background: #CCFFCC; width:60%; border:1px #000 solid; margin:0 auto; padding:5px; color:#333333;”>*Este website integra dos plataformas de software diferentes (moodle+wordpress). <br />
Para <strong>cambiar datos de su Perfil <a href=”http://#” target=”_top”>vaya a moodle</a></strong> y <strong>si experimenta alguna incidencia como usuario/a</strong>, por favor, contacte con el Administrador cuanto antes.</div>

Así, los usuarios verán un mensaje de aviso indicándole que modifique los datos desde el propio moodle:

Moodle es una plataforma de eLearning muy sólida y extendida, donde los usuarios tienen la oportunidad de hacer cursos, ver temarios, wikear, editar temas… y todas las ventajas de moodle con la asignación de roles a los profesores y demás… combinado con wordpress que pudiera ser la más sencilla e intuitiva herramienta para permitir al propio cliente que administre las noticias de su sitio, e interactuar con sus visitantes. Yo adicionalmente he instalado plugins específicos para asignación de roles de wordpress, descargas…

¿Imagináis el juego? Pues descargas por doquier de temarios, mailing lists para los usuarios sobre temática específica, clases online, chats conjuntos para grupos/cursos de moodle, videoconferencias y una infinidad más de recursos que se ponen al alcanza de nuestros ratones hoy en día, con un sólo click.

Respecto al blog, bien, puede que como herramienta LMS no sea muy necesaria, pero si es esencial para cualquier tipo de website autoadministrado por el cliente hoy en día. Se convierte en el medio más cómodo y rápido para hacer llegar: ideas, historias o proyectos a los usuarios.

Dada la difusión que tienen y el ritmo al que proliferan los blogs, el que no haya aprendido a bichearlos hoy en día, ya estará fuera de juego. Además ofrece gran diversidad de funcionalidades a través de los plugins, cuya instalación es simple al no requerir una configuración muy técnica.

Fuentes que no vendría mal tener en cuenta:
http://moodle.org/mod/forum/discuss.php?d=64452
http://electricarchaeologist.wordpress.com/2008/01/28/moodle-wordpress-online-university/
http://moodle.org/mod/forum/discuss.php?d=102031 – mi mensaje original!

PD: Recomiendo una actividad de moodle conocida como HOT POTATOES (viene por defecto en el paquete de instalación). Permite integrar en el sitio cuestionarios, crucigramas, preguntas de verdadero/falso…

Lo podeis descargar:

Integración de Moodle [1.9.2] y WordPress [2.6.2]