SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
Joomla + Moodle
=

Joomdle
Julien Roubieu - julien@obiz.com.br
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




                                                   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
XML-RPC




Fonte: www.xmlrpc.com
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>
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




                                               Plugin de
                   Plugins                     Inscrição
Módulos
                joomdlehooks.php



                                              Plugin de
                                             Autenticação
                                   XML-RPC   externallib.php
          helpers/content.php

     Componente                                 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>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>
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, ...)
                    {
joomdlehooks.php      ....
                      JoomdleHelperContent::call_method (
                           "create_joomdle_user",
                          $username
                          );
                    }
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
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");
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! */
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
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);   externallib.php

    return $id;
}
                                                    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) {
  ...                                       externallib.php
  $user = create_user_record(
              $username,
              "",                              auth.php
              "joomdle"
  );
...
}
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 Moodle > Joomla




                                          Plugin de
                   Plugins                Inscrição
Módulos
                 joomdle.php



                                          Plugin de
                                         Autenticação
                               XML-RPC
          helpers/users.php                auth.php

     Componente
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);
  ...
}
                                             auth.php
$request = xmlrpc_encode_request(
    "joomdle.createUser",
    array ($params),
    $options
);
...
curl_exec( $ch );         /* run! */
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
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>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>
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(
joomdle.php
                       'function' =>
                'plgXMLRPCJoomdleServices::createUser',
                ! ! 'docstring' => ...,
                ! ! 'signature' => array(array
                ($xmlrpcStruct, $xmlrpcStruct ))
                ! ! ),
                   ...
                  );
                }
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 */
                  ...
joomdle.php     JoomdleHelperUsers::create_joomla_user(
                                       $userinfo
                                    );
                  ...
                }
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
Sincronização de usuários Joomla > Moodle




helpers/users.php
Sincronização de usuários Joomla > Moodle




                         $user = new JUser();
helpers/users.php        /* set user attributes here */
                         $user->save()
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
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




Login
        Authentication
SSO Joomla > Moodle




Login
          Authentication




        joomdlehooks.php
SSO Joomla > Moodle




Login
          Authentication




                           cURL Login
        joomdlehooks.php                land.php
SSO Joomla > Moodle




Login
          Authentication




                           cURL Login
        joomdlehooks.php                land.php
SSO Joomla > Moodle




Login
          Authentication




                           cURL Login
        joomdlehooks.php                land.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
Módulos




•   Cursos disponíveis
•   Meus cursos
•   Minhas notas
•   Calendário de eventos
•   Mentores
•   ABC
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
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
Integrações




JomSocial           VirtueMart
Community Builder   Tienda
XMAP                AcyMailing
AEC                 Joomfish
Obrigado




julien@obiz.com.br
blog.obiz.com.br
slideshare.net / obiz
www.eventials.com / jdbr11

Mais conteúdo relacionado

Destaque

A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...
A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...
A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...
Iandra Gasparini
 
Flc apr 2012_03_slides
Flc apr 2012_03_slidesFlc apr 2012_03_slides
Flc apr 2012_03_slides
Jose Viana
 
Horizon report 2014 flipped classroom
Horizon report 2014   flipped classroomHorizon report 2014   flipped classroom
Horizon report 2014 flipped classroom
Romero Tori
 

Destaque (20)

Instalacao Do Moodle
Instalacao Do MoodleInstalacao Do Moodle
Instalacao Do Moodle
 
Protostar como framework
Protostar como frameworkProtostar como framework
Protostar como framework
 
Joomla sample first tutorial.
Joomla sample first tutorial.Joomla sample first tutorial.
Joomla sample first tutorial.
 
Instalação moodle e mahara
Instalação moodle e maharaInstalação moodle e mahara
Instalação moodle e mahara
 
Building a Desktop Streaming console with Electron and ReactJS
Building a Desktop Streaming console with Electron and ReactJSBuilding a Desktop Streaming console with Electron and ReactJS
Building a Desktop Streaming console with Electron and ReactJS
 
A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...
A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...
A relevância do recrutamento, seleção e treinamento no desenvolvimento organi...
 
Cambio apariencia a menu joomla con css
Cambio apariencia a menu joomla con cssCambio apariencia a menu joomla con css
Cambio apariencia a menu joomla con css
 
Conferencia Moodlemoot2014 Venezuela
Conferencia Moodlemoot2014 VenezuelaConferencia Moodlemoot2014 Venezuela
Conferencia Moodlemoot2014 Venezuela
 
Joomla, o que é? Para que serve?
Joomla, o que é? Para que serve?Joomla, o que é? Para que serve?
Joomla, o que é? Para que serve?
 
Desktop Apps in a Javascript World - Electron
Desktop Apps in a Javascript World - ElectronDesktop Apps in a Javascript World - Electron
Desktop Apps in a Javascript World - Electron
 
Building a Desktop Streaming console with Node.js and WebKit
Building a Desktop Streaming console with Node.js and WebKitBuilding a Desktop Streaming console with Node.js and WebKit
Building a Desktop Streaming console with Node.js and WebKit
 
Recrutamento e Seleção - JAC Headhunters
Recrutamento e Seleção - JAC HeadhuntersRecrutamento e Seleção - JAC Headhunters
Recrutamento e Seleção - JAC Headhunters
 
Flc apr 2012_03_slides
Flc apr 2012_03_slidesFlc apr 2012_03_slides
Flc apr 2012_03_slides
 
Horizon report 2014 flipped classroom
Horizon report 2014   flipped classroomHorizon report 2014   flipped classroom
Horizon report 2014 flipped classroom
 
condominio ecológico autoconstruible
condominio ecológico autoconstruiblecondominio ecológico autoconstruible
condominio ecológico autoconstruible
 
Laboratório de Bibliometria: do Fator de Impacto até Boas Revisões Biblogr…
Laboratório de Bibliometria: do Fator de Impacto até Boas Revisões Biblogr…Laboratório de Bibliometria: do Fator de Impacto até Boas Revisões Biblogr…
Laboratório de Bibliometria: do Fator de Impacto até Boas Revisões Biblogr…
 
IEA - Meios eletrônicos interativos em Tecnologia Assistiva
IEA - Meios eletrônicos interativos em Tecnologia AssistivaIEA - Meios eletrônicos interativos em Tecnologia Assistiva
IEA - Meios eletrônicos interativos em Tecnologia Assistiva
 
Building Native Experiences with Electron
Building Native Experiences with ElectronBuilding Native Experiences with Electron
Building Native Experiences with Electron
 
Flipped Classroom - Interdidatica 2013
Flipped Classroom - Interdidatica 2013Flipped Classroom - Interdidatica 2013
Flipped Classroom - Interdidatica 2013
 
Tecnologias Digitais e Flipped Classroom
Tecnologias Digitais e Flipped ClassroomTecnologias Digitais e Flipped Classroom
Tecnologias Digitais e Flipped Classroom
 

Semelhante a Joomla + Moodle = Joomdle

Semelhante a Joomla + Moodle = Joomdle (20)

Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Moodle api tutorial
Moodle api   tutorialMoodle api   tutorial
Moodle api tutorial
 
Joomla e Moodle: Uma parceria que dá certo!
Joomla e Moodle: Uma parceria que dá certo!Joomla e Moodle: Uma parceria que dá certo!
Joomla e Moodle: Uma parceria que dá certo!
 
Joomla! CMS
Joomla! CMSJoomla! CMS
Joomla! CMS
 
Let's log!
Let's log!Let's log!
Let's log!
 
Joomla desenvolvimento
Joomla desenvolvimentoJoomla desenvolvimento
Joomla desenvolvimento
 
Joomla.
Joomla.Joomla.
Joomla.
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Desenvolimento de plugin_de_matricula_logica
Desenvolimento de plugin_de_matricula_logicaDesenvolimento de plugin_de_matricula_logica
Desenvolimento de plugin_de_matricula_logica
 
Autenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandAutenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemand
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
 
Framework Miolo
Framework MioloFramework Miolo
Framework Miolo
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
O que é um template?
O que é um template?O que é um template?
O que é um template?
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
Colóquio Drupal na Universidade do Minho
Colóquio Drupal na Universidade do MinhoColóquio Drupal na Universidade do Minho
Colóquio Drupal na Universidade do Minho
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 

Joomla + Moodle = Joomdle