reutilizar funções Moodle

reutilizar funções Moodle

por rogerio machado -
Número de respostas: 4

Estou dando meus primeiros passos em PHP e MYSQL, sei que via SQL dá pra tirar qualquer coisa do Moodle, mas qual seriam as funções que evitem esse retrabalho de consultas mais comuns?
Ex:
get_complete_user_data('id', $USER->id, NULL) retorna os dados do usuário.
enrol_get_my_courses() traz uma lista dos cursos em que o usuário logado está matriculado.
só com essas duas já dá pra ter um caminhão de variáveis para as consultas em SQL. Ok, mas tem já uma função do próprio Moodle que me traga a nota das atividades ou de um curso ?.

Estou tentando (sem sucesso) usar aquela funções que estão em:
$CFG->dirroot.'/grade/querylib.php'
e
$CFG->dirroot.'/grade/report/lib.php'

Toda vez que as "chamo", o script é interrompido, e sem emitir nenhuma mensagem de erro (que eu tenha percebido ao menos).

Segue o arquivo que estou usando (na hora do login sempre uso um login de aluno e esse arquivo está num diretório "_testes" na raiz da instalação do Moodle)

 

<?php
// precisa pra qualquer coisa, nao usar variáveis aqui
require_once('../config.php');


// require_course_login() // require_login() // require_logout() // get_complete_user_data()
require_once($CFG->libdir.'/moodlelib.php');


// isguestuser()
require_once($CFG->libdir.'/accesslib.php');


// enrol_get_my_courses()
require_once($CFG->libdir.'/enrollib.php');


// grade_get_course_grade()
require_once($CFG->dirroot.'/grade/querylib.php');

// grade_report -  é uma classe
require_once($CFG->dirroot.'/grade/report/lib.php');


require_login();
if (isguestuser()) {
require_logout();
}


$usu_id = $USER->id;
print_r(get_complete_user_data('id', $usu_id, NULL));
echo '<br> ###############usuario <hr>';


print_r(enrol_get_my_courses());
echo '<br> ##############cursos <hr>';
?>

Contagem das avaliações:  -
Em resposta à rogerio machado

Re: reutilizar funções Moodle

por Daniel Neis Araujo -
Imagem de Core developers Imagem de Plugin developers Imagem de Translators

Olá, Rogério

 

se você está interessado em recuperar informações sobre notas dos alunos, sugiro olhar a documentação da API de Notas (http://docs.moodle.org/en/Development:Grades)

 

Abraço,

Daniel

Contagem das avaliações:  -
Em resposta à Daniel Neis Araujo

Re: reutilizar funções Moodle

por rogerio machado -

As funções que estava tentando utilizar, são justamentes as propostas pelo link que você me enviou, mas como disse, elas interrompem o script, ou estou chamando elas da maneira errada? (ex:

elas não funcionam num login de aluno?

ou precisaria ter chamado outra função/comando antes disso?

Já recupero as notas via SQL, mas como havia mencionado, queria evitar o retrabalho.

Muito obrigado pelo link enviado, tem muita coisa pra se aprender lá

Contagem das avaliações:  -
Em resposta à rogerio machado

Re: reutilizar funções Moodle

por Daniel Neis Araujo -
Imagem de Core developers Imagem de Plugin developers Imagem de Translators

Olá, Rogério

 

se você está desenvolvendo código para o Moodle é importante habilitar o Debug. Vá no bloco "Administração", clique no link "Servidor" e depois em "Debugging". Lá, na primeira opção, escolha o nível "Desenvolvedor" e na segunda, marque a caixa para mostrar mensagens. Agora, ao invés de uma tela branca, você deve ver as mensagens de erro que o ajudarão a encontrar o problema.

Uma ferramente interessante para apoiar o desenvolvimento é o xdebug, que você pode ler mais sobre em http://www.xdebug.org/

 

Abraço,

Daniel

Contagem das avaliações:  -
Em resposta à Daniel Neis Araujo

Re: reutilizar funções Moodle

por rogerio machado -

Ok o modo "debug" do Moodle resolveu esse problema (mostrou que eu estava passando um valor errado como referência). Engraçado que; ao menos no meu entender o erro que ele passou a mostrar era um tipo de erro que deveria aparecer simplesmente por habilitar o opção "display_errors" no php.ini para o Apache, e isso já estava feito, tanto que em outros scripts que tenho os erros e os warnings são exibidos.

Obrigado pela ajuda

Ps: no anexo é apenas para uma referência, é um código que funciona, e o pesssoal aqui do fórum já deve de fazer o que está ali com as mãos nas costas.

Contagem das avaliações:  -