domingo, 14 de novembro de 2010

Listar Usuários Online do Moodle com Programação PHP


Para exibir os usuários online nos últimos 5 minutos com programação em PHP, siga os seguintes passos:


1° Passo
Importe a biblioteca de funções do Moodle:
require_once("../config.php");


2° Passo
Calcule a data em segundos de 5 minutos atrás:
$data=time()-(5*60);

3° Passo
Escreva o comando SQL para consultar os usuários online nos últimos 5 minutos:
$sql="SELECT DISTINCT u.id, u.firstname, u.lastname FROM {$CFG->prefix}user u INNER JOIN {$CFG->prefix}log l ON u.id = l.userid WHERE time >= $data " ;

4° Passo

Execute a consulta no Banco de Dados:
$users=get_records_sql($sql);    

5° Passo
Imprime na tela os usuários online:

$cont=0;   
    foreach ($users as $user){
        echo $user->id;
        echo " ";
        echo $user->firstname ." ".$user->lastname."<br>";
        $cont++;
    }
    
    echo $cont." usuario online";


Viu como é moleza. Agora juntando todo o código fica assim:

<?php
     require_once("../config.php");
     $data=time()-(5*60);
     $sql="SELECT DISTINCT u.id, u.firstname, u.lastname FROM {$CFG->prefix}user u INNER JOIN {$CFG->prefix}log l ON u.id = l.userid WHERE time >= $data " ;
     $users=get_records_sql($sql);
    
     $cont=0;   
    foreach ($users as $user){
        echo $user->id;
        echo " ";
        echo $user->firstname ." ".$user->lastname."<br>";
        $cont++;
    }
    
    echo $cont." usuario online";
?>
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_online.php dentro da pasta _extra. Coloque o código php nesse arquivo.

Feito isso, acesse o endereço: http://[endereço do moodle]/_extra/user_online.php

Download
Se estiver com preguiça de criar o arquivo e digitar o código, faça  download desse exemplo. Descompacte  o arquivo e cole na pasta _extra na raiz do seu Moodle. Caso a pasta _extra não exista ainda, crie-a. Agora faça o teste. 


Veja Também:
Listar Usuários Online do Moodle com Comando SQL

6 comentários:

  1. olá

    como fazer pra listar somente os cursos do usuario logado?

    em uma pagina separada ?

    ResponderExcluir
  2. bom dia!

    comigo não funcionou.

    fiz passo a passo, mas quando acesso a pagina ela fica em branco.

    o que seria?

    ResponderExcluir
  3. Que erro que deu?
    Ao rodar o código, ative o erro do Moodle para ver o que está acontecendo. Veja como fazer isso no link: http://moodlephp.blogspot.com/2011/03/ativar-exibicao-do-erro-no-moodle.html

    ResponderExcluir
  4. Este comentário foi removido pelo autor.

    ResponderExcluir
  5. Olá Lino! Gostaria de exibir os usuários logados que esteja em um determinado curso. O que devo adicionar a consulta?

    Abração!

    ResponderExcluir