quinta-feira, 14 de abril de 2011

Extrair o Primeiro Acesso de um Participante no Curso do Moodle com Programação PHP

    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. 

    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   

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  é um parâmetro obrigatório";exit;}
if(empty($course)){echo "Id do curso  é um parâmetro obrigatório";exit;}

3° Passo

Faça a  consulta no banco de dados:

$sql="SELECT MIN(time) AS firstaccess FROM {$CFG->prefix}log WHERE userid=$user AND course=$course";

Se estiver usando  Moodle 2.0 , use esse código:
$access=$DB->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.

 $access=get_record_sql($sql);
 $access=$DB->get_record_sql($sql);

4° Passo
Imprima a data na tela:

Verifique se o usuário nunca acessou o curso:

if(empty($access->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->firstaccess);

Código Completo
<?    
require_once("../config.php");
    
     //receber parârmetro
    $user=$_GET['user'];
    $course=$_GET['course'];

    //crítica de dados
     if(empty($user)){echo "Id do usuário  é um parâmetro obrigatório";exit;}
     if(empty($course)){echo "Id do curso  é um parâmetro obrigatório";exit;}
 
 //extrair primeiro acesso
 
 $sql="SELECT MIN(time) AS firstaccess FROM {$CFG->prefix}log WHERE userid=$user AND course=$course";

//para Moodle 2.0
 $access=$DB->get_record_sql($sql);

 //para Moodle 1.9
// $access=get_record_sql($sql);
 
 //mensagem caso ainda não tenha acesado
if(empty($access->firstaccess)){echo "O usuário ainda não acessou o curso";exit;}

//imprimir data
echo date("d/m/Y H:i",$access->firstaccess);
    
?>

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&course=1
Substitua os parâmetro pelo id do curso e id do usuário pelos dados da sua pesquisa


Download

Descompacte  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.  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.
  


segunda-feira, 11 de abril de 2011

GMoodle X-Link – Bloco do Moodle que Gera Link Dinâmico

    GMoodle X-Link é um bloco  HTML do Moodle que pode gerar link dinâmico. É um bloco normal igual ao bloco HTML. A única diferença é que substitui todas as ocorrências @ID_USR pelo id  do usuário logado e @ID_CURSO pelo id do curso em que o usuário está navegando. Gera link com parâmetros personalizados. 

    Vamos imaginar uma situação em que você precisa gerar um link dentro do ambiente de um curso que aponta para um sistema externo ou mesmo para  o próprio  Moodle. Um link que deve enviar dois parâmetro:
  • id do curso do curso
  • id do usuário que está logado
Desse modo, o url do link será:
http://www.qualquersite.com.br?user=15&curso=3
Nesse exemplo, 15  é id do usuário e  3 é o  id do curso. Para tornar esse link dinâmico, substitua o valor dos parâmetros pelo texto especial.
  • @ID_USR – para id do usuário
  • @ID_CURSO  - para id do curso
Aplicando isso no link, o url deverá ficar assim:
http://www.qualquersite.com.br?user=@ID_USR&curso=@ID_CURSO
    Assim, esse link será diferente para cada usuário que logar e para cada ambiente do curso em que estiver navegando.  Coloque o link no bloco GMoodle X-Link.   A programação do bloco substitui o texto especial pelo valor correspondente.

    Vamos ver na prática como funciona o bloco GMoodle X-Link. Para isso, vamos fazer um exercício. Como o bloco não faz  parte da instalação padrão do Moodle, é necessário instalá-lo. Para isso, siga as instruções no link: http://moodlephp.blogspot.com/2011/04/instalar-bloco-ou-modulo-no-moodle.html


1° Passo – Acesse o Moodle
Logue no Moodle como tutor ou administrador. Acesse o ambiente do curso ou da página principal onde pretende criar o bloco.

2° Passo – Ative o modo de edição

    Clique no botão ativar edição na parte superior direito da página. Feito isso, a opção para adicionar  o bloco será exibido no lateral da página.

3° Passo – Selecione o bloco GMoodle X-Link
    No menu de seleção para adicionar bloco, selecione a opção GMoodle X-Link.


Ao selecionar, será adicionada uma instância do bloco na página.
Se essa opção não aparecer, significa GMoodle X-Link não foi instalado ainda.  Neste caso, siga as instruções de instalação no link: http://moodlephp.blogspot.com/2011/04/instalar-bloco-ou-modulo-no-moodle.html


4° Passo – Adicionar conteúdo no bloco
    Clique no ícone de edição do bloco.


Feito isso, será exibido o formulário de edição de conteúdo.

5° Passo – Crie um link

Preencha o formulário com um título qualquer. No conteúdo, coloque qualquer coisa. Nessa demonstração, vamos criar um link.
Digite o texto do link, selecione-o  e clique no ícone do link. Feito isso, será aberta uma janela para colocar o URL do link. 

6° Passo – Coloque URL do link
Coloque o URL com texto especial no valor do parâmetro como mostra a figura abaixo.


Você pode passar ambos os parâmetros ou apenas um.  O texto especial será substituído pelo valor do id na hora de execução. 

7° Passo – Salvar a configuração
Clique no botão Salvar mudanças. Feito isso, será redirecionado ao ambiente do curso. O conteúdo do bloco será exibido. Clique no link e verifique se texto especial foi realmente substituído por id. 


    Esse bloco é útil para fazer integração do Moodle com sistema externo. O usuário do Moodle pode acessar outro sistema passando o parâmetro id do usuário. Neste caso,  a integração deve ter sincronização do usuário. Esse bloco foi projetado pela empresa Badiu  para os usuários do Moodle (tutor, aluno , coordenador, administrador  etc.) acessarem relatórios gerenciais do Moodle no sistema GMoodle

domingo, 10 de abril de 2011

Instalar Bloco e Módulo no Moodle

O Procedimento para instalar um bloco ou Módulo no Moodle é muito simples.  A plataforma Moodle é um sistema Modular. A sua distribuição padrão traz um conjunto de blocos, plugins e módulos. Você pode customizar, ampliando as funcionalidades, adicionando novos blocos, módulos e plugins. 

Nesse post, vamos explicar como instalar o bloco GMoodle X-Link. Trata-se de um bloco de publicação de conteúdo HTML que gera link dinâmico. Foi desenvolvido pela empresa Badiu para integrar Moodle com GMoodle – Sistema de Gestão do Moodle. Pode ser utilizado para integrar Moodle com qualquer outro sistema por meio de link. Veja mais detalhes no link: http://moodlephp.blogspot.com/2011/04/gmoodle-x-link-bloco-do-moodle-que-gera.html

O procedimento para instalar o bloco GMoodle X-Link é mesmo para instalar qualquer bloco no Moodle.

1°   Passo – Download
Faça download GMoodle X-Link  de acordo com a versão do seu Moodle

Para Moodle 1.8 e 1.9:
Para Moodle 2.0:
   
    É necessário ressaltar que na versão 2.0 do Moodle a estrutura dos blocos mudou muito. Pois, blocos projetados para versão 1.8 ou 1.9 não funcionam na versão 2.0.

2º  Passo – Descompacte o arquivo

Descompacte o arquivo. Feito isso, certifique há uma pasta gmoodle_xlink. Dentro dessa pasta há os seguintes arquivos/pasta:
  • lang
  • block_gmoodle_xlink.php
  • e.t.c
3° Passo – Coloque o arquivo no sistema do Moodle
Coloque a pasta gmoodle_xlink  dentro da pasta blocks da instalação do Moodle. A pasta blocks fica na raiz da instalação do Moodle. Está  no mesmo nível de hierarquia que as pastas admin,course, mod como mostra a figura a baixo.

Tratando-se da instalação de um módulo, basta colocar dentro da pasta mod. Se for um plugin de autenticação, deve ser colocada dentro da pasta auth. Bem, já deu para notar como é a arquitetura Modular do Moodle.

4° Passo – Instalar no sistema

Logue no Moodle como administrador, clique em  Avisos no bloco de administração do site.

Feito isso, o bloco GMoodle X-Link  será automaticamente detectado. Basta clicar no botão Continuar (versão 1.9) ou Atualizar (Versão 2.0)  no final da tela para finalizar a instalação.

Para instalação de um módulo, vale o mesmo  procedimento. 

5º - Confirmar a Instalação

    Para confirmar que o bloco foi instalado com sucesso, acesse o ambiente do curso ou da página principal do Moodle.  Em seguida, ative a edição. Vá para o lateral da página,  clique na opção para adicionar um bloco. Feito isso, confirme se o bloco GMoodle X-Link aparece na lista dos blocos, como mostra a figura abaixo.


Se aparecer na lista, significa que a instalação foi efetuada com sucesso.  Tratando-se de um módulo, confirme a instalação na opção para adicionar recurso ou atividade.

    Embora focamos na instalação do bloco GMoodle X-Link, o procedimento para instalar um bloco ou módulo é o mesmo. Caso você tenha necessidade de ampliar as funcionalidades do seu Moodle já sabe como proceder. Agora lhe desejo bom trabalho para ampliara as funcionalidades do seu Moodle.