A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento de Plugin de Relatório para Moodle

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento de Plugin de Relatório para Moodle"— Transcrição da apresentação:

1 Desenvolvimento de Plugin de Relatório para Moodle
Desenvolvimento para Moodle Desenvolvimento de Plugin de Relatório para Moodle Lino Vaz Moniz Moodle Moot 2014

2 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

3 Tipos de Módulo/Plugin
Matrícula moodle/enrol Autenticação moodle/auth Relatório do curso moodle/course/reporter Relatório de nota moodle/grade/repórter Relatório no contexto do sistema moodle/admin/report (até moodle 2.1) moodle/report (a partir de moodle 2.2) Exportação de nota moodle /grade/export Tema (interface gráfica) moodle/theme Formato de curso moodle/course/format

4 Tipos de Módulo/Plugin
Tipo de questão moodle/question/type Atividade moodle/mod Campos para base de dados moodle/mod/data/field Tipo de Atividade tarefa moodle/mod/assignment/type Relatório de questionário moodle/mod/quiz/report Blocos moodle/blocks Campo de perfil de usuário moodle/user/profile/field Plugin deversos moodle/local

5 badiu lang/en/report_badiu.php settings.php version.php index.php
Banco de Dados do Moodle Estrutura Básica do Plugin badiu lang/en/report_badiu.php settings.php version.php index.php

6 $string['pluginname']='Badiu'; $string['alou']='Alou só alegria!';
lang/en/report_badiu.php <?PHP $string['pluginname']='Badiu'; $string['alou']='Alou só alegria!'; ?>

7 <?php defined('MOODLE_INTERNAL') || die; $ADMIN->add(
settings.php <?php defined('MOODLE_INTERNAL') || die; $ADMIN->add( 'reports', new admin_externalpage( 'badiu', get_string('pluginname', 'report_badiu'), "$CFG->wwwroot/report/badiu/index.php“ ) ); $settings = null; ?>

8 <?PHP defined('MOODLE_INTERNAL') || die;
version.php <?PHP defined('MOODLE_INTERNAL') || die; $plugin->version = ; $plugin->requires = ; $plugin->component = 'report_badiu'; ?>

9 <?php require("../../config.php");
index.php <?php require("../../config.php"); echo get_string('alou', 'report_badiu'); ?>

10 Instalação Local: MOODLE_DIR_INSTALACAO/report

11 Finalizar Instalação 

12 Acessar o Plugin 

13 Página Principal 

14 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(); ?>

15 Aplicação do Cabeçalho e Rodapé


16 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

17 $string['email']='E-mail';
Lista de Usuário Adicionar String no Pacote de Língua $string['id']='ID'; $string['nome']='Nome'; $string[' ']=' ';

18 function get_usuarios(){ global $DB; global $CFG;
Lista de Usuário Extrair Lista de Usuário do Banco function get_usuarios(){ global $DB; global $CFG; $sql="SELECT id,firstname, FROM {$CFG->prefix}user "; $lista=$DB->get_records_sql($sql); return $lista; }

19 function imprimir_usuarios($lista){ $table = new html_table();
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(' ', '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-> ); } echo html_writer::table($table);

20 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();

21 Página Principal com a Lista de Usuários

22 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

23 Criar Formulário index_form.php
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', ' ', get_string(' ','report_badiu'),'size="20"'); $mform->setDefault(' ', $param-> ); $this->add_action_buttons(true,get_string('pesquisar','report_badiu')); } function validation($data, $files) { $errors = parent::validation($data, $files); return $errors; } ?>

24 Instanciar Formulário
Formulário de filtro de usuário Instanciar Formulário //importar index_form.php require("$CFG->dirroot/report/badiu/index_form.php"); //instanciar form $form= new usuario_form(); //imprimir form $form->display();

25 Capturar Parâmetro function get_form_parametros(){
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-> =optional_param(' ', NULL,PARAM_TEXT); return $param; }

26 Adicionar Filtro SQL no WHERE
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, FROM {$CFG->prefix}user WHERE id > 0 $wsql "; $lista=$DB->get_records_sql($sql); return $lista; }

27 Juntar Tudo na Página Principal index.php
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();

28 Tela com Formulário de Filtro
Formulário de filtro de usuário Tela com Formulário de Filtro

29 Compatível com a versão 2.2 ou superior do Moodle
CÓDIGO FONTE DO PLUGIN BADIU Compatível com a versão 2.2 ou superior do Moodle Versão Descrição Link 1.0 Estrutura básico do plugin 1.1 Adiciona cabeçalho e rodapé do thema 1.2 Relatório de lista de usuário cadastrado no Moodle 1.3 Relatório de lista de usuário cadastrado no Moodle com formulário de filtro

30 Banco de dados http://docs.moodle.org/dev/Data_manipulation_API
API do Moodle API Usado Banco de dados Formulário String Thema

31 Lino Vaz Moniz Telefone
(61) Skype badiu.net


Carregar ppt "Desenvolvimento de Plugin de Relatório para Moodle"

Apresentações semelhantes


Anúncios Google