Este post mostra passo a passo de como customizar relatório geral de notas de todas as atividades e todos os cursos, usando plugin badiunetclient.
O plugin badiunetclient tem API que acessa relatórios do plugin badiunet
Para customizar o relatório, siga os seguintes passos:
1) No Moodle, tendo o plugin badiunetclient instalado, crie a pasta grade em:
MOODLE_DIR_INSTALL/local/badiunetclient/examples/mreport
2) Na pasta grade, crie o arquivo general.php trata-se de um arquivo para implementar o código de relatório. Você pode colocar esse aquivo em outra pasta ou até com outro nome.
3) Importar no arquivo config do Moodle
require_once("../../../../../config.php");
4) Importar no arquivo API relatório
require_once("$CFG->dirroot/local/badiunetclient/lib/locallib.php");
require_once("$CFG->dirroot/local/badiunetclient/lib/freport.php");
require_once("$CFG->dirroot/local/badiunet/lib/netlib.php");
5) Forçar que para acessar o relatório coloque o código a seguir. Você precisa estar logado como admin
require_login();
6) Processar a consulta de relatório
$netlib=new local_badiunet_netlib(); //instanciar a classe
$page = optional_param('page',0,PARAM_INT); //receber parametro de paginacao
$fc=new local_badiunetclient_locallib(); //instanciar a classe de API
$fc->addParamdefault('_key','badiu.system.core.report.dynamicp.index'); //parametro da chave de relatorio dinamico
$fc->addParamdefault('_dkey','badiu.moodle.mreport.grade.grade.index'); //parametro da chave do relatorio
$fc->addParamdefault('_datasource','servicesql'); //parametro padrao da fonte de dados
$fc->addParamdefault('parentid',$netlib->getModuleInstance()); // parametro de instancia do Moodle registrado na plataforma de servico
$fc->addParamdefault('_page',$page); //parametro de paginacao
$fc->exec(); //execucao de consulta
A função $fc->addParamdefault adiciona parâmetros de filtro. Além dos parâmetros passados, outros parâmetros podem ser passados. Uma forma de mapear esses parâmetros é navegar no relatório e copiar o querystring HTTP após fazer filtro.
7) Função que manta tabela de relatório
function makeTable($data) {
$utildata=new local_badiunet_utildata();
$table = new html_table();
$columns=$utildata->getVaueOfArray($data, 'message.content.badiu_table1.columns', true);
$rows=$utildata->getVaueOfArray($data, 'message.content.badiu_table1.rows', true);
$rowsviews=array();
if(is_array($rows) && is_array($columns)){
foreach ($rows as $row){
$newrow=array();
foreach ($columns as $kc => $vc){
$rkvalue=$utildata->getVaueOfArray($row, $kc);
$newrow[$kc]=$rkvalue;
}
array_push($rowsviews,$newrow);
}
}
$table->head =$columns;
$table->data=$rowsviews;
return html_writer::table($table);
}
8) Função que gera paginação
function pagingReport($data){
global $OUTPUT,$CFG;
$utildata=new local_badiunet_utildata();
$pageindex=$utildata->getVaueOfArray($data,'message.content.badiu_table1.pageindex', true);
$countrow=$utildata->getVaueOfArray($data,'message.content.badiu_table1.countrow', true);
$pagemaxrow=$utildata->getVaueOfArray($data,'message.content.badiu_table1.pagemaxrow', true);
$url=$CFG->httpswwwroot.'/local/badiunetclient/examples/mreport/user/my.php';
echo $OUTPUT->paging_bar($countrow, $pageindex,$pagemaxrow, $url);
}
9) Imprimir cabeçalho da página
$PAGE->set_context($context);
$PAGE->set_url('/local/badiunetclient/fcservice/index.php');
$PAGE->set_pagelayout('standard');
$PAGE->set_title('Relatorio de nota');
$PAGE->set_heading('Relatorio de nota');
$PAGE->navbar->add("Relatorio de nota", new moodle_url($CFG->httpswwwroot.'/local/badiunetclient/examples/mreport/grade/general.php'));
echo $OUTPUT->header();
10) Imprimir relatório e paginação
pagingReport($fc->getContent()); //paginacao
echo makeTable($fc->getContent()); //relatorio
pagingReport($fc->getContent()); //paginacao
10) Imprimir rodapé
echo $OUTPUT->footer();
11) Acesse o relatório no seguinte URL
MOODLE_URL/local/badiunetclient/examples/mreport/grade/general.php
12) Código completo para download
Para fazer download do código, clique aqui. Tendo o plugin badiunetclient instalado, coloque o código o arquivo (general.php) no seguinte endereço
MOODLE_DIR_INSTALL/
badiunetclient/examples/mreport/grade/