Para recuperar o id do último usuário que fez login no Moodle, basta fazer uma consulta SQL na tabela de log com o seguinte comando:
SELECT userid FROM mdl_log WHERE action='login' ORDER BY id DESC LIMIT 0,1
Segue a explicação de cada trecho do código:
- SELECT userid
Retorna id do usuário no campo userid.
- FROM mdl_log
Faz filtro na tabela de log do Moodle.
- WHERE action='login'
Filtra os registros do log cuja ação for login. Cada vez que um usuário entrar no Moodle, preenchendo o formulário de login e senha, o sistema faz lançamento de um registro na tabela de log com a ação login, ou seja, grava o termo login no campo action.
- ORDER BY id DESC
Ordena os registro pela ordem decrescente, ou seja, do último para o primeiro.
- LIMIT 0,1
Filtra apenas o primeiro registro, isto é, o último usuário que logou no Moodle. Se a sua base de dados for PostgreSQL, substitua esse comando para LIMIT 1 OFFSET 0. Esse comando pode variar em função do sistema de bando de dados.
Caso queira saber o nome e o e-mail do usuário que logou por último, execute o seguinte comando SQL:
SELECT u.id,u.firstname,u.lastname, u.email FROM mdl_log l INNER JOIN mdl_user u ON u.id=l.userid WHERE l.action='login' ORDER BY l.id DESC LIMIT 0,1
Esse comando é o mesmo que o anterior. A única diferença que é faz junção com a tabelade usuário para extrair nome e-mail do usuário.
Os comandos SQL foram testados na base de dado MySQL. Se estiver usando um outro banco de dados, o comando de paginação pode não funcionar. Neste caso, será necessário substituir comando LIMIT pelo comando correspondente do sistema do banco de dados em uso.
Mto obrigado! seu blog ta muito bom!
ResponderExcluirOlá, preciso de ajuda, dentro do moodle quando o aluno está logado criei um botão para ele visualizar as suas mensalidades e para visualizá-las basta eu enviar o e-mail desse aluno como parâmetro na minha url, estou passando esse campo $USER->email mas não está funcionando http://meusite.com.br/central.php?lf=$USER->email
ResponderExcluir