Integrazione Moodle - Registro On Line

Integrazione Moodle - Registro On Line

di Pietro Tamburrano -
Numero di risposte: 10
Salve a tutti,
sto utilizzando Moodle da diversi anni e quest'anno, visto il gran numero di richieste di attivazione di corsi, ho pensato alla possibilità di integrare in modo più stretto il registro on line LAMPSchool che stiamo usando (e che ho sviluppato io) con Moodle.
Fino ad ora mi sono limitato a creare degli elenchi per l'importazione degli utenti e dei gruppi globali; ora vorrei provare a interagire direttamente con il db sincronizzando le password e creando in automatico i corsi con l'iscrizione di docenti e alunni. Mi sono però scontrato con la mancanza di documentazione.
Qualcuno può indicarmi dove posso trovare documentazione sulle tabelle di Moodle e sul significato dei vari campi?


Media dei voti:  -
In riposta a Pietro Tamburrano

Re: Integrazione Moodle - Registro On Line

di Sara Cenni -

Ciao Pietro,

più che agire direttamente sulle tabelle di Moodle io ti consiglio di utilizzare i Webservice che Moodle espone (https://docs.moodle.org/dev/Web_services) . In questa pagina: https://docs.moodle.org/dev/Web_service_API_functions trovi i vari metodi tra cui core_course_create_courses (per creare i corsi), core_user_create_users (per creare gli utenti) e enrol_manual_enrol_users (per iscrivere gli utenti).

Ciao

Sara 

In riposta a Pietro Tamburrano

Re: Integrazione Moodle - Registro On Line

di Matteo Scaramuccia -

Ciao Pietro,
oltre ai web services ti consiglio di valutare anche lo sviluppo di un plug-in di autenticazione per Moodle, https://docs.moodle.org/dev/Authentication_plugins, perché ti permetterebbe di utilizzare una forma di Single Sign-On (SSO) dal Registro verso Moodle così da evitare di registrare le password anche su Moodle (è sempre meglio mantenere le password in un unico posto, per privacy ed eventuali casi di sincronia persa). Questo approccio ti permetterebbe di coprire gli scenari da Registro a Moodle ma non il viceversa se non sviluppi qualcosa di simile al plug-in di autenticazione anche per il Registro.

Puoi anche pensare di utilizzare l'autenticazione tramite DB esterno, https://docs.moodle.org/31/en/External_database_authentication, se c'è visibilità tra le due base dati. Con questo approccio innanzitutto non sviluppi nulla (sola configurazione) e, al contrario di prima, gli utenti posso entrare sia da Moodle sia dal Registro MA dovranno sempre re-imputare le credenziali al passaggio tra i due sistemi perché non c'è un sistema di SSO.

Esiste poi una possibilità che sembra una provocazione ma che invece potrebbe essere un grande contributo a questa Comunità: perché non rendere il Registro anche una attività/risorsa di Moodle (https://docs.moodle.org/dev/Plugin_types, https://docs.moodle.org/dev/Activity_modules, https://docs.moodle.org/dev/Blocks, )? Così facendo l'utente non percepirà i due sistemi, non dovrai curarti di gestire le anagrafiche e sincronizzarle tra loro.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Re: Integrazione Moodle - Registro On Line

di Pietro Tamburrano -

Ottimi consigli.

Per il momento ho iniziato a valutare l'uso dei web services e inizio ad ottenere i primi risultati (cambio password). Ho solo un piccolo problema: la funzione che mi consente di gestire il cambio password (core_user_update_users) ha la necessità di avere come parametro l'ID dell'utente. Non sono riuscito però a capire come ottenere l'id dell'utente conoscendo lo username. Potrei farlo leggendo direttamente dal database ma vorrei evitarlo e usare solo i web service.

In riposta a Pietro Tamburrano

Re: Integrazione Moodle - Registro On Line

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

In linea generale se è il sistema esterno che crea gli utenti tramite WS (core_user_create_users) di ritorno hai le id e gli username degli utenti creati, che potrai quindi utilizzare per successive chiamate. Per gli utenti esistenti potresti eventualmente caricare gli id nel sistema esterno.

Se non è praticabile la strada degli id perché ad esempio non si possono o non si vogliono caricare gli id nel sistema esterno per gli utenti già esistenti in Moodle, una funzione che forse potrebbe fare al caso tuo per cercare gli utenti in Moodle e ricavarne le informazioni è la "core_user_get_users".

In riposta a Andrea Bicciolo

Re: Integrazione Moodle - Registro On Line

di Pietro Tamburrano -

Per quest'anno la creazione degli utenti l'ho già fatta con l'esportazione di file csv dal registro e quindi ho dovuto ricavarmi l'ID che rea già stato assegnato con la funzione core_user_get_users_field.

Magari per l'anno prossimo prevedo la creazione dei nuovi utenti direttamente dal registro con il sistema che mi hai suggerito.

In riposta a Pietro Tamburrano

Re: Integrazione Moodle - Registro On Line

di Sara Cenni -

core_user_get_users_by_field dovrebbe consentire di recuperare l'id conoscendo lo username.

In riposta a Sara Cenni

Re: Integrazione Moodle - Registro On Line

di Pietro Tamburrano -

Grazie, ho risolto con core_user_get_users_by_id.

Ottengo l'ID e con l'ID poi posso cambiare la password con core_courses_update_users.

Diciamo che in questo modo ho risolto il problema della password. Infatti ogni volta che la password viene cambiata sul Registro, la stessa password viene impostata su Moodle.

Ora sono passato all'iscrizione degli utenti ai corsi.

In pratica voglio, per le materie e le classi selezionate:

1. Creare il corso (mi serve risalire all'Id della categoria dall'IdNumber che è letterale)

2. Iscrivere manualmente il docente (o i docenti) al corso (penso che non dovrei avere problemi)

3. Sincronizzare il gruppo globale della classe (i gruppi sono già presenti in moodle) sul corso, ma non sono riuscito a trovare delle funzioni che mi consentono di fare questo, anche se sui privilegi c'è la possibilità di selezionare tale azione.

In riposta a Matteo Scaramuccia

Re: Integrazione Moodle - Registro On Line

di Pietro Tamburrano -

La possibilità di integrazione del registro come modulo in Moodle è senz'altro interessante e potrebbe essere utilissima. Mi spaventa però, non conoscendo le basi per lo sviluppo di moduli Moodle, la mole di lavoro che potrebbe essere necessaria. Già il tempo che riesco a ricavare per queste piccole integrazioni è tempo "rubato" ad altre attività di sviluppo di moduli sul registro che mi stanno chiedendo da più parti.

Comunque, magari in tempi più tranquilii, l'idea è senz'altro da prendere in considerazione.

In riposta a Pietro Tamburrano

Re: Integrazione Moodle - Registro On Line

di Pietro Tamburrano -

Ho risolto il problema delle categorie con core_course_get_categories.

Rimane il problema dell'impostazione della sincronizzazione con una cohort del corso.

In riposta a Pietro Tamburrano

Re: Integrazione Moodle - Registro On Line

di Pietro Tamburrano -

Grazie ai vostri consigli ho risolto praticamente tutti i problemi ora dal registro riesco a:

  1. caricare automaticamente gli utenti, sia alunni che docenti;
  2. creare in modo automatico i corsi a richiesta dei docenti in base a classe e materia e iscrivere i docenti e gli alunni;
  3. rigenerare automaticamente password per gli alunni;
  4. sincronizzare gli iscritti ai corsi in caso di cambio di classe degli alunni e dei docenti.

In questo modo ho risparmiato ore e ore di lavoro.

Grazie di nuovo.