Mais conteúdo relacionado Semelhante a Joomla + Moodle = Joomdle (20) Joomla + Moodle = Joomdle2. Julien Roubieu - julien@obiz.com.br
Obiz - www.obiz.com.br - Integrador Open Source
5. Moodle
• Learning Management System
• GPL
• PHP / Mysql, PostreSQL, Oracle, MS SQL
• 50.000 sites, 37M usuários, 1M Comunidade
6. Moodle
• Inscrições
• Grupos e Papeis e usuários
• Atividades: Forum de discussão, Chat, Avaliações e
notas, Wiki
• Arquitetura modular
• Temas
10. Joomdle
• www.joomdle.com
• Desde 2009
• Antonio Durán Terrás e Chris Rogers
• v.0.6 para Joomla 1.5 e Moodle 2.1
• 1200 pessoas na comunidade
11. Possibilidades
• Single Sign On
• Sincronização de usuários e perfis
• Mostrar conteúdo do Moodle no Joomla
• Venda de cursos Moodle
• Pesquisa de conteúdo Moodle no Joomla
19. Arquitetura
Plugin de
Módulos Inscrição
abc Plugins enrol/joomdle
courses joomdle
my_courses joomdlehooks
calendar joomdlesession
my_grades search_...
mentees
Plugin de
XML-RPC Autenticação
auth/joomdle
Componente
joomdle
21. XML-RPC
POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com
Content-Type: text/xml
Content-length: 181
<?xml version="1.0"?>
<methodCall>
<methodName> examples.getStateName </methodName>
<params>
<param>
<value> <i4> 41 </i4> </value>
</param>
</params>
</methodCall>
23. Sincronização de usuários Joomla > Moodle
Plugin de
Plugins Inscrição
Módulos
joomdlehooks.php
Plugin de
Autenticação
XML-RPC externallib.php
helpers/content.php
Componente auth.php
25. Sincronização de usuários Joomla > Moodle
<install version="1.5" type="plugin" group="user">
! <name>User hooks - Joomdle</name>
! <author>Antonio Duran Terres</author>
! <authorEmail>antonio.duran.terres@gmail.com</
authorEmail>
! <license>GNU/GPL</license>
! <authorEmail>antonio.duran.terres@gmail.com</
authorEmail>
joomdlehooks.php
! <authorUrl>www.joomdle.com</authorUrl>
! <version>0.24</version>
! <description>Joomdle hooks for SSO</
description>
! <files>
! ! <filename plugin="joomdlehooks">
joomdlehooks.php
</filename>
! </files>
! <languages></languages>
! <params></params>
</install>
28. Sincronização de usuários Joomla > Moodle
function onAfterStoreUser ($user, ...)
{
joomdlehooks.php ....
JoomdleHelperContent::call_method (
"create_joomdle_user",
$username
);
}
29. Sincronização de usuários Joomla > Moodle
Plugin de
Plugins Inscrição
Módulos
joomdlehooks.php
Plugin de
Autenticação
XML-RPC externallib.php
helpers/content.php
Componente auth.php
31. Sincronização de usuários Joomla > Moodle
$request = xmlrpc_encode_request(
"joomdle_".$method,
array ($params) ,
array ('encoding' => 'utf8'));
$headers = array();
array_push($headers,"Content-Type: text/xml");
helpers/content.php
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $moodle_url);
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
curl_setopt($c, CURLOPT_POSTFIELDS, $request);
$file = curl_exec( $ch ); /* Run! */
32. Sincronização de usuários Joomla > Moodle
Plugin de
Plugins Inscrição
Módulos
joomdlehooks.php
Plugin de
Autenticação
XML-RPC externallib.php
helpers/content.php
Componente auth.php
34. Sincronização de usuários Joomla > Moodle
function create_joomdle_user($username) {
....
$auth = new auth_plugin_joomdle();
$id = $auth->create_joomdle_user($username); externallib.php
return $id;
}
auth.php
36. Sincronização de usuários Joomla > Moodle
function create_joomdle_user($username) {
... externallib.php
$user = create_user_record(
$username,
"", auth.php
"joomdle"
);
...
}
38. Sincronização de usuários Moodle > Joomla
Plugin de
Plugins Inscrição
Módulos
joomdle.php
Plugin de
Autenticação
XML-RPC
helpers/users.php auth.php
Componente
40. Sincronização de usuários Joomla > Moodle
function joomdle_user_created ($user)
{
...
auth_plugin_joomdle::call_method
("createUser", $userinfo);
...
}
auth.php
$request = xmlrpc_encode_request(
"joomdle.createUser",
array ($params),
$options
);
...
curl_exec( $ch ); /* run! */
41. Sincronização de usuários Moodle > Joomla
Plugin de
Plugins Inscrição
Módulos
joomdle.php
Plugin de
Autenticação
XML-RPC
helpers/users.php auth.php
Componente
43. Sincronização de usuários Joomla > Moodle
<install version="1.5" type="plugin" group="xmlrpc">
! <name>XML-RPC - Joomdle</name>
! <author>Antonio Duran Terres</author>
! <authorEmail>antonio.duran.terres@gmail.com</
authorEmail>
! <license>GNU/GPL</license>
! <authorEmail>antonio.duran.terres@gmail.com</
authorEmail>
! <authorUrl>www.joomdle.com</authorUrl>
! <version>0.23</version>
joomdle.php ! <description>Joomdle services for SSO</description>
! <files>
! ! <filename plugin="joomdle">
joomdle.php
</filename>
! </files>
! <languages></languages>
! <params>
<param name="moodle_ip" default="0" ... />
</params>
</install>
45. Sincronização de usuários Joomla > Moodle
function onGetWebServices()
{
global $xmlrpcStruct, $xmlrpcInt, ...;
/* Declara todas as funções XML-RPC */
return array(
'joomdle.createUser' => array(
joomdle.php
'function' =>
'plgXMLRPCJoomdleServices::createUser',
! ! 'docstring' => ...,
! ! 'signature' => array(array
($xmlrpcStruct, $xmlrpcStruct ))
! ! ),
...
);
}
47. Sincronização de usuários Joomla > Moodle
function createUser ($userinfo) {
/* Verifica IP de origem da chamada */
...
joomdle.php JoomdleHelperUsers::create_joomla_user(
$userinfo
);
...
}
48. Sincronização de usuários Moodle > Joomla
Plugin de
Plugins Inscrição
Módulos
joomdle.php
Plugin de
Autenticação
XML-RPC
helpers/users.php auth.php
Componente
50. Sincronização de usuários Joomla > Moodle
$user = new JUser();
helpers/users.php /* set user attributes here */
$user->save()
51. Sincronização de usuários Moodle > Joomla
Plugin de
Plugins Inscrição
Módulos
joomdle.php
Plugin de
Autenticação
XML-RPC
helpers/users.php auth.php
Componente
55. SSO Joomla > Moodle
Login
Authentication
joomdlehooks.php
56. SSO Joomla > Moodle
Login
Authentication
cURL Login
joomdlehooks.php land.php
57. SSO Joomla > Moodle
Login
Authentication
cURL Login
joomdlehooks.php land.php
58. SSO Joomla > Moodle
Login
Authentication
cURL Login
joomdlehooks.php land.php
61. Módulos
• Cursos disponíveis
• Meus cursos
• Minhas notas
• Calendário de eventos
• Mentores
• ABC
62. Estrutura dos módulos
Plugin de
Módulos Inscrição
Plugins
mod_joomdle_...
Plugin de
Autenticação
XML-RPC externallib.php
helpers/content.php
Componente auth.php