Customizar relatório global de nota do plugin mreport

Customizar relatório global de nota do plugin mreport

por Lino Vaz Moniz -
Número de respostas: 0

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/