JoomdleJoomla + Moodle =
Julien Roubieu - [email protected]
Obiz - www.obiz.com.br - Integrador Open Source
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
Moodle
• Learning Management System
• GPL
• PHP / Mysql, PostreSQL, Oracle, MS SQL
• 50.000 sites, 37M usuários, 1M Comunidade
Moodle
• Inscrições
• Grupos e Papeis e usuários
• Atividades: Forum de discussão, Chat, Avaliações e notas, Wiki
• Arquitetura modular
• Temas
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
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
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
Joomdle - Administração
Joomdle - Administração
Joomdle - Administração
Joomdle - Administração
Joomdle - Administração
Arquitetura
Componentejoomdle
Módulosabc
coursesmy_courses
calendarmy_gradesmentees
Pluginsjoomdle
joomdlehooksjoomdlesession
search_...
Plugin de Autenticação
auth/joomdle
Plugin de Inscrição
enrol/joomdle
XML-RPC
XML-RPC
POST /RPC2 HTTP/1.0User-Agent: Frontier/5.1.2 (WinNT)Host: betty.userland.comContent-Type: text/xmlContent-length: 181
<?xml version="1.0"?>
<methodCall>
<methodName> examples.getStateName </methodName>
<params>
<param>
<value> <i4> 41 </i4> </value>
</param>
</params>
</methodCall>
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
Sincronização de usuários Joomla > Moodle
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdlehooks.php
helpers/content.php
externallib.php
auth.php
Sincronização de usuários Joomla > Moodle
joomdlehooks.php
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>[email protected]</authorEmail>! <license>GNU/GPL</license>! <authorEmail>[email protected]</authorEmail>! <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>
joomdlehooks.php
Plugin de usuário
onAuthenticate
onLoginUser
onLoginFailure
onLogoutUser
onBeforeStoreUser
onAfterStoreUser
onBeforeDeleteUser
onAfterDeleteUser
Sincronização de usuários Joomla > Moodle
joomdlehooks.php
Sincronização de usuários Joomla > Moodle
function onAfterStoreUser ($user, ...){
....JoomdleHelperContent::call_method ( "create_joomdle_user",
$username);
}
joomdlehooks.php
Sincronização de usuários Joomla > Moodle
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdlehooks.php
helpers/content.php
externallib.php
auth.php
Sincronização de usuários Joomla > Moodle
helpers/content.php
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");
$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! */
helpers/content.php
Sincronização de usuários Joomla > Moodle
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdlehooks.php
helpers/content.php
externallib.php
auth.php
Sincronização de usuários Joomla > Moodle
externallib.php
auth.php
Sincronização de usuários Joomla > Moodle
function create_joomdle_user($username) { .... $auth = new auth_plugin_joomdle(); $id = $auth->create_joomdle_user($username);
return $id;}
externallib.php
auth.php
Sincronização de usuários Joomla > Moodle
externallib.php
auth.php
Sincronização de usuários Joomla > Moodle
function create_joomdle_user($username) { ... $user = create_user_record( $username, "", "joomdle" );...}
externallib.php
auth.php
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdle.php
helpers/users.php auth.php
Sincronização de usuários Moodle > Joomla
Sincronização de usuários Joomla > Moodle
auth.php
Sincronização de usuários Joomla > Moodle
function joomdle_user_created ($user){ ... auth_plugin_joomdle::call_method ("createUser", $userinfo); ...}
$request = xmlrpc_encode_request( "joomdle.createUser", array ($params), $options);...curl_exec( $ch ); /* run! */
auth.php
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdle.php
helpers/users.php auth.php
Sincronização de usuários Moodle > Joomla
Sincronização de usuários Joomla > Moodle
joomdle.php
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>[email protected]</authorEmail>! <license>GNU/GPL</license>! <authorEmail>[email protected]</authorEmail>! <authorUrl>www.joomdle.com</authorUrl>! <version>0.23</version>! <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>
joomdle.php
Sincronização de usuários Joomla > Moodle
joomdle.php
Sincronização de usuários Joomla > Moodle
function onGetWebServices(){ global $xmlrpcStruct, $xmlrpcInt, ...;
/* Declara todas as funções XML-RPC */ return array( 'joomdle.createUser' => array( 'function' => 'plgXMLRPCJoomdleServices::createUser',! ! 'docstring' => ...,! ! 'signature' => array(array ($xmlrpcStruct, $xmlrpcStruct ))! ! ), ... );}
joomdle.php
Sincronização de usuários Joomla > Moodle
joomdle.php
Sincronização de usuários Joomla > Moodle
function createUser ($userinfo) {
/* Verifica IP de origem da chamada */ ...JoomdleHelperUsers::create_joomla_user( $userinfo ); ...}
joomdle.php
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdle.php
helpers/users.php auth.php
Sincronização de usuários Moodle > Joomla
Sincronização de usuários Joomla > Moodle
helpers/users.php
Sincronização de usuários Joomla > Moodle
$user = new JUser();/* set user attributes here */$user->save()
helpers/users.php
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
joomdle.php
helpers/users.php auth.php
Sincronização de usuários Moodle > Joomla
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
SSO Joomla > Moodle
SSO Joomla > Moodle
LoginAuthentication
SSO Joomla > Moodle
joomdlehooks.php
LoginAuthentication
SSO Joomla > Moodle
joomdlehooks.php
LoginAuthentication
cURL Loginland.php
SSO Joomla > Moodle
joomdlehooks.php
LoginAuthentication
cURL Loginland.php
SSO Joomla > Moodle
joomdlehooks.php
LoginAuthentication
cURL Loginland.php
SSO Joomla > Moodle
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
• Cursos disponíveis
• Meus cursos
• Minhas notas
• Calendário de eventos
• Mentores
• ABC
Módulos
Estrutura dos módulos
Componente
Módulos
Plugins
Plugin de Autenticação
Plugin de Inscrição
XML-RPC
mod_joomdle_...
helpers/content.php
externallib.php
auth.php
Sumário
Introdução ao Moodle
Apresentação do Joomdle
Sincronização de usuários (J-M e M-J)
Single Sign-On (SSO)
Módulos
Extensões
JomSocial
Community Builder
XMAP
AEC
Integrações
VirtueMart
Tienda
AcyMailing
Joomfish