Demonstração de Relatórios

Preview:

Citation preview

Desenvolvimento para Moodle

Desenvolvimento de Plugin de Relatório para Moodle

Lino Vaz Monizlinovazmoniz@gmail.comhttp://www.badiu.net/

Moodle Moot 2014

Sumário

Tipos de plugin

Estrutura básica de um plugin de relatório

Instalação do plugin

Cabeçalho e Rodapé do Thema

Listar usuário

Formulário de filtro de usuário

Tipos de Módulo/Plugin

Matrículamoodle/enrolAutenticaçãomoodle/authRelatório do cursomoodle/course/reporterRelatório de notamoodle/grade/repórter

Relatório no contexto do sistemamoodle/admin/report (até moodle 2.1)

moodle/report (a partir de moodle 2.2)

Exportação de notamoodle /grade/exportTema (interface gráfica)moodle/themeFormato de cursomoodle/course/format

Tipos de Módulo/Plugin

Tipo de questãomoodle/question/typeAtividademoodle/modCampos para base de dados moodle/mod/data/fieldTipo de Atividade tarefamoodle/mod/assignment/typeRelatório de questionáriomoodle/mod/quiz/reportBlocos moodle/blocksCampo de perfil de usuáriomoodle/user/profile/fieldPlugin deversosmoodle/local

Banco de Dados do Moodle

Estrutura Básica do Plugin

badiu lang/en/report_badiu.php

settings.php version.php index.php

lang/en/report_badiu.php

<?PHP $string['pluginname']='Badiu';$string['alou']='Alou só alegria!';?>

settings.php

<?php defined('MOODLE_INTERNAL') || die;

defined('MOODLE_INTERNAL') || die; $ADMIN->add(

'reports', new admin_externalpage(

'badiu', get_string('pluginname', 'report_badiu'), "$CFG->wwwroot/report/badiu/index.php“

) );

$settings = null;?>

version.php

<?PHP defined('MOODLE_INTERNAL') || die;

$plugin->version = 2014052500; $plugin->requires = 2012112900; $plugin->component = 'report_badiu';

?>

index.php

<?php require("../../config.php");

echo get_string('alou', 'report_badiu'); ?>

Instalação

Local:MOODLE_DIR_INSTALACAO/report

Finalizar Instalação

Acessar o Plugin

Página Principal

Adicionar Cabeçalho e Rodapé do Thema

<?php require("../../config.php");

//Cabeçalho do thema $context = get_context_instance(CONTEXT_SYSTEM ,1); $PAGE->set_context($context); $PAGE->set_url('/report/badiu/index.php'); $PAGE->navbar->add(get_string('pluginname','report_badiu'),

new moodle_url("$CFG->httpswwwroot/report/badiu/index.php")); $PAGE->navbar->add(get_string('lista_usuario','report_badiu')); $PAGE->set_title(get_string('lista_usuario','report_badiu')); $PAGE->set_pagelayout('report'); $PAGE->set_heading(get_string('lista_usuario','report_badiu')); //imprimir cabeçalho echo $OUTPUT->header(); echo get_string('alou', 'report_badiu'); //imprimir rodapé echo $OUTPUT->footer();

?>

Aplicação do Cabeçalho e Rodapé

Lista de Usuário

Adicionar string no pacote de língua

Extrair lista de usuário do banco de dados

Imprimir lista de usuário

Lista de Usuário

Adicionar String no Pacote de Língua

$string['id']='ID';$string['nome']='Nome';$string['email']='E-mail';

Lista de Usuário

Extrair Lista de Usuário do Banco

function get_usuarios(){ global $DB; global $CFG; $sql="SELECT id,firstname,email FROM {$CFG->prefix}user "; $lista=$DB->get_records_sql($sql); return $lista; }

Lista de Usuário

Imprimir Lista de Usuário

function imprimir_usuarios($lista){ $table = new html_table(); $table->head = array(

get_string('id', 'report_badiu'),get_string('nome', 'report_badiu'),get_string('email', 'report_badiu')

); $table->align = array('left', 'left','left'); $table->width = '95%'; $table->class = 'generaltable'; $table->data = array(); foreach ($lista as $usr) { $table->data[] = array($usr->id,$usr->firstname,$usr->email); } echo html_writer::table($table);}

Lista de Usuário

Lista de usuário na Página Principal index.php

//imprimir cabeçalho echo $OUTPUT->header(); //extrair lista de usuários $lista=get_usuarios(); //imprimir lista de usuarios imprimir_usuarios($lista); //imprimir rodapé echo $OUTPUT->footer();

Lista de Usuário

Página Principal com a Lista de Usuários

Formulário de Filtro do Usuário

Adicionar string no pacote de língua

Criar formulário

Instanciar formulário

Capturar parâmetro

Passar parâmetro para SQL

Formulário de filtro de usuário

Criar Formulário index_form.php

<?php require_once $CFG->libdir.'/formslib.php';class usuario_form extends moodleform { function definition() { global $param; $mform =& $this->_form; $renderer =& $mform->defaultRenderer(); $mform->addElement('header', '',get_string('pesquisar_usr','report_badiu'), ''); $mform->addElement('text', 'nome', get_string('nome','report_badiu'),'size="20"'); $mform->setType('nome', PARAM_TEXT); $mform->setDefault('nome', $param->nome); $mform->addElement('text', 'email', get_string('email','report_badiu'),'size="20"'); $mform->setType('nome', PARAM_TEXT); $mform->setDefault('email', $param->email);

$this->add_action_buttons(true,get_string('pesquisar','report_badiu')); } function validation($data, $files) { $errors = parent::validation($data, $files); return $errors; }} ?>

Formulário de filtro de usuário

Instanciar Formulário

//importar index_form.phprequire("$CFG->dirroot/report/badiu/index_form.php");

//instanciar form$form= new usuario_form();

//imprimir form $form->display();

Formulário de filtro de usuário

Capturar Parâmetro

function get_form_parametros(){

$param= new object();

$param->nome=optional_param('nome', NULL,PARAM_TEXT);

$param->email=optional_param('email', NULL,PARAM_TEXT);

return $param;

}

Formulário de filtro de usuário

Adicionar Filtro SQL no WHERE

function get_usuarios($param){ global $DB; global $CFG; $wsql= get_filtro_sql($param); $sql="SELECT id,firstname,email

FROM {$CFG->prefix}user WHERE id > 0 $wsql ";

$lista=$DB->get_records_sql($sql); return $lista; }

Formulário de filtro de usuário

Juntar Tudo na Página Principal index.php

//imprimir cabeçalho echo $OUTPUT->header(); //receber parâmetros do form $param = get_form_parametros(); //instanciar form $form= new usuario_form(); //imprimir form $form->display(); //extrair lista de usuários $lista=get_usuarios($param); //imprimir lista de usuarios imprimir_usuarios($lista); //imprimir rodapé echo $OUTPUT->footer();

Formulário de filtro de usuário

Tela com Formulário de Filtro

CÓDIGO FONTE DO PLUGIN BADIU

Compatível com a versão 2.2 ou superior do Moodle

Versão Descrição Link1.0 Estrutura básico do plugin http://badiu.net/download/badiu/badiu_1.0.zip

1.1 Adiciona cabeçalho e rodapé do thema

http://badiu.net/download/badiu/badiu_1.1.zip

1.2 Relatório de lista de usuário cadastrado no Moodle

http://badiu.net/download/badiu/badiu_1.2.zip

1.3 Relatório de lista de usuário cadastrado no Moodle com formulário de filtro

http://badiu.net/download/badiu/badiu_1.3.zip

API do MoodleAPI Usado

Banco de dadoshttp://docs.moodle.org/dev/Data_manipulation_API

Formuláriohttp://docs.moodle.org/dev/Form_API

Stringhttp://docs.moodle.org/dev/String_API

Themahttp://docs.moodle.org/19/en/Theme_basics

Lino Vaz MonizTelefone

(61) 9937-8258

E-mail linovazmoniz@gmail.com

http://www.badiu.net

Skypebadiu.net

Recommended