Base de dados externa de atualização do curso completo

Meu cenário;

Um usuário no Moodle completa um curso. Gostaria de atualizar um database externo uma vez que isso acontecesse. A minha compreensão é que o evento course_completed é acionado sempre que o cron job é executado.

Qual é a melhor abordagem para atualizar um database externo com alguns valores simples, por exemplo, nome de usuário / ID, CourseID e talvez Data de conclusão dos cursos concluídos?

Eu prefiro não cortar a conclusão / cron.php para fazer isso, mas sim, se eu tiver que!

Você precisará criar um plugin local.

http://docs.moodle.org/dev/Local_plugins

Crie o plugin em / local / myplugnname

Crie um arquivo events.php

/local/mypluginname/db/events.php 

Com isso

 $handlers = array ( 'course_completed' => array ( 'handlerfile' => '/local/mypluginname/lib.php', 'handlerfunction' => 'local_mypluginname_course_completed', 'schedule' => 'cron', 'internal' => 1, ), 

Dê uma olhada aqui para mais informações http://docs.moodle.org/dev/Events_API#Handling_an_event

Você precisará de um arquivo version.php para instalar o plugin e adicionar o manipulador de events.

Em seguida, crie uma function

 function local_mypluginname_course_completed($eventdata) 

dentro

 /local/mypluginname/lib.pgp 

Isso será chamado quando o cron é executado

Para descobrir o conteúdo de $ eventdata, veja

 events_trigger('course_completed', $this->get_record_data()); 

dentro

 /completion/completion_completion.php 

Para atualizar um database remoto, veja o código na autenticação db

 /auth/db/auth.php 

Algo como

 $mydb = ADONewConnection('mysql'); $mydb->Connect($dbhost, $dbuser, $dbpass, $dbname, false); $mydb->Execute($insertsql); $mydb->Close();