Extrair o Primeiro Acesso de um Participante  no Curso do Moodle com Programação PHP
Autor: Badiu | Publicado: 2011-04-14T21:47:00-07:00

&nbsp;&nbsp;&nbsp; Este post apresenta a codificação PHP para extrair a data do primeiro acesso de um participante no curso do Moodle. Será apresentado código tanto para versão 1.9 quanto para versão 2.0 do Moodle.&nbsp;
&nbsp;&nbsp;&nbsp; Para explorar um pouco mais o comando SQL que efetiva a consulta do primeiro acesso no banco de dados, consulte o link: http://moodlesql.blogspot.com/2011/04/extrair-o-primeiro-acesso-do-aluno-no.html&nbsp;&nbsp;&nbsp; 

A código apresentado a seguir, faz uma consulta da data do primeiro acesso no banco de dados e imprime na tela. 

Então vamos iniciar a programação. Siga os passos a seguir.

1° Passo 
Importe a biblioteca de funções do Moodle:

require_once("../config.php");

2° Passo 
Receba os parâmetro do id do usuário e id do curso passados pelo método GET:

$user=$_GET['user'];$course=$_GET['course'];
Faça crítica de dados caso os parâmetros não forem passados:

if(empty($user)){echo "Id do usuário&nbsp; é um parâmetro obrigatório";exit;}if(empty($course)){echo "Id do curso&nbsp; é um parâmetro obrigatório";exit;}

3° Passo 
Faça a&nbsp; consulta no banco de dados:
$sql="SELECT MIN(time) AS firstaccess FROM {$CFG-&gt;prefix}log WHERE userid=$user AND course=$course";

Se estiver usando&nbsp; Moodle 2.0 , use esse código:
$access=$DB-&gt;get_record_sql($sql);
Para Moodle 1.9 e demais, use esse código:
$access=get_record_sql($sql);
Já deu para notar que a diferença da versão 1.9 para 2.0 é que as funções de acesso ao banco de dados são invocadas no objeto $DB na versão 2.0. Veja a diferença dos dois códigos destacado pela cor vermelha.

&nbsp;$access=get_record_sql($sql); &nbsp;$access=$DB-&gt;get_record_sql($sql);

4° Passo
Imprima a data na tela: 

Verifique se o usuário nunca acessou o curso:
if(empty($access-&gt;firstaccess)){echo "O usuário ainda não acessou o curso";exit;}
Caso tenha acessado, informe a data:

echo date("d/m/Y H:i",$access-&gt;firstaccess);
Código Completo&lt;? &nbsp;&nbsp;&nbsp; require_once("../config.php");&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; //receber parârmetro &nbsp;&nbsp;&nbsp; $user=$_GET['user'];&nbsp;&nbsp;&nbsp; $course=$_GET['course'];&nbsp;&nbsp;&nbsp; //crítica de dados&nbsp;&nbsp;&nbsp;&nbsp; if(empty($user)){echo "Id do usuário&nbsp; é um parâmetro obrigatório";exit;}&nbsp;&nbsp;&nbsp;&nbsp; if(empty($course)){echo "Id do curso&nbsp; é um parâmetro obrigatório";exit;}&nbsp;&nbsp;//extrair primeiro acesso &nbsp;&nbsp;$sql="SELECT MIN(time) AS firstaccess FROM {$CFG-&gt;prefix}log WHERE userid=$user AND course=$course";//para Moodle 2.0&nbsp;$access=$DB-&gt;get_record_sql($sql);&nbsp;//para Moodle 1.9// $access=get_record_sql($sql);&nbsp; &nbsp;//mensagem caso ainda não tenha acesadoif(empty($access-&gt;firstaccess)){echo "O usuário ainda não acessou o curso";exit;}//imprimir dataecho date("d/m/Y H:i",$access-&gt;firstaccess);&nbsp;&nbsp;&nbsp;&nbsp; ?&gt;

Implementar no Moodle
Para executar esse código no Moodle, crie uma pasta denominado _extra dentro da raiz da instalação do Moodle. Em seguida, crie um arquivo denominado user_first_access_course.php dentro dessa pasta. Digite o código php nesse arquivo. 

Feito isso, acesse o endereço: 
http://[endereço do moodle]/_extra/user_first_access_course.php?user=2&amp;course=1
Substitua os parâmetro pelo id do curso e id do usuário pelos dados da sua pesquisa


Download Moodle 2.0
&nbsp;Moodle 1.9 

Descompacte&nbsp; o arquivo e cole na pasta _extra na raiz do seu Moodle. Caso essa pasta não exista, crie-a. Agora faça o teste. 

Esse código foi testado na versão 2.0 e 1.9.11.&nbsp; Pode funcionar em qualquer versão do Moodle que use as funções do PDO para manipular a base de dados. Lembrando que nas versões inferiores a 2.0, as funções do acesso ao banco de dados não são invocados por meio de um objeto. 
&nbsp;&nbsp;