desenvolvimento para moodle desenvolvimento de plugin de relatório para moodle lino vaz moniz...
TRANSCRIPT
![Page 1: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/1.jpg)
Desenvolvimento para Moodle
Desenvolvimento de Plugin de Relatório para Moodle
Lino Vaz [email protected]
http://www.badiu.net/
Moodle Moot 2014
![Page 2: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/2.jpg)
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
![Page 3: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/3.jpg)
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
![Page 4: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/4.jpg)
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
![Page 5: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/5.jpg)
Banco de Dados do Moodle
Estrutura Básica do Plugin
badiu lang/en/report_badiu.php
settings.php version.php index.php
![Page 6: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/6.jpg)
lang/en/report_badiu.php
<?PHP $string['pluginname']='Badiu';$string['alou']='Alou só alegria!';?>
![Page 7: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/7.jpg)
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;?>
![Page 8: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/8.jpg)
version.php
<?PHP defined('MOODLE_INTERNAL') || die;
$plugin->version = 2014052500; $plugin->requires = 2012112900; $plugin->component = 'report_badiu';
?>
![Page 9: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/9.jpg)
index.php
<?php require("../../config.php");
echo get_string('alou', 'report_badiu'); ?>
![Page 10: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/10.jpg)
Instalação
Local:MOODLE_DIR_INSTALACAO/report
![Page 11: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/11.jpg)
Finalizar Instalação
![Page 12: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/12.jpg)
Acessar o Plugin
![Page 13: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/13.jpg)
Página Principal
![Page 14: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/14.jpg)
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();
?>
![Page 15: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/15.jpg)
Aplicação do Cabeçalho e Rodapé
![Page 16: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/16.jpg)
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
![Page 17: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/17.jpg)
Lista de Usuário
Adicionar String no Pacote de Língua
$string['id']='ID';$string['nome']='Nome';$string['email']='E-mail';
![Page 18: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/18.jpg)
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; }
![Page 19: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/19.jpg)
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);}
![Page 20: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/20.jpg)
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();
![Page 21: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/21.jpg)
Lista de Usuário
Página Principal com a Lista de Usuários
![Page 22: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/22.jpg)
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
![Page 23: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/23.jpg)
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; }} ?>
![Page 24: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/24.jpg)
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();
![Page 25: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/25.jpg)
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;
}
![Page 26: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/26.jpg)
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; }
![Page 27: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/27.jpg)
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();
![Page 28: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/28.jpg)
Formulário de filtro de usuário
Tela com Formulário de Filtro
![Page 29: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/29.jpg)
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
![Page 30: Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz linovazmoniz@gmail.com Moodle Moot](https://reader036.vdocuments.mx/reader036/viewer/2022081720/552fc15e497959413d8e5397/html5/thumbnails/30.jpg)
API do Moodle
API 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