24
Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz [email protected] http://www.badiu.net/ Moodle Moot Floripa 2014 10/10/2014

Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz [email protected] Moodle Moot

Embed Size (px)

Citation preview

Page 1: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Desenvolvimento para Moodle

Desenvolvimento de Plugin de Matrícula para Moodle 2

Lino Vaz [email protected]

http://www.badiu.net/

Moodle Moot Floripa 201410/10/2014

Page 2: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Sumário

Funcionamento do Plugin de Matrícula

Tabelas que Gerenciam Matrícula no Banco de Dados

Criar um novo Plugin de Grade Curricular

Criar um Plugin Casca

Mapear Lógica do Core do Plugin

Teste de Funcionamento

O que fala adicionar

Page 3: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Funcionamento do Plugin de Matrícula

Um curso pode ter várias regras de matrícula

Um regra é uma instância de um plugin

Um mesmo plugin pode ter mais de uma instância

Page 4: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Tabelas que Gerenciam Matrícula no Banco de Dados

Tabela Descrição

mdl_config_plugins Registra todos os plugins instalados e suas configurações globais

mdl_enrol Registra as regras de matrícula (método de inscrição). Cada regra é uma instância de um determinado plugin vinculado a um curso.

mdl_user_enrolments Registra o vínculo do usuário a regra de inscrição. Também configura o período de validade da matrícula

mdl_role_assignments Registra a matricula do usuário vinculado a um determinado contexto (categoria de curso, curso ...) e a um determinado perfil (aluno, tutor ...).

Page 5: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Criar um novo Plugin de Grade Curricular

Requisitos Funcionais Configurar condição de inscrição com base na nota final de um

determinado curso;

Se o usuário acessar o curso, ele será inscrito caso atender o requisito de nota de aprovação configurado no plugin;

Requisitos Técnicos Seguir o padrão do Moodle. Deve ser instalado e desinstalado

na própria interface do Moodle;

Deve ser compatível com qualquer versão do Moodle de família 2. De 2.0 a 2.7

Page 6: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Criar um Plugin Casca

Clonar um plugin já existente Acesse a pasta MOODEL_DIR_INSTALL/enrol Copie a pasta self e renomeie cópia com o nome

badiugcurricular;

Apague todos os arquivos e funções que são específicas do plugin self e não fazem parte do core do plugin:

Renomeie todos os arquivos / funções core do plugin mudando o nome self para badiugcurricular. Exemplo:

de: lang/en/enrol_self.php para: lang/em/enrol_badiugcurricular.php

de: class enrol_self_plugin extends enrol_plugin {...} para: class enrol_badiugcurricular_plugin extends enrol_plugin {...}

Page 7: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Arquivos de Plugin Casca (Protótipo sem funcionalidades)

Arquivo Obrigatório Descrição

lang/en/enrol_badiugcurricular.php Sim Pacote de idioma

db/access.php Não Controle de permissão

db/upgrade.php Não Controle de atualização

db/install.xml Não Definição de tabelas a ser criado no banco de dados

settings.php Sim Configuração global do plugin

version.php Sim Definição da versão do plugin

lib.php Sim Lógica de processamento do plugin. Ponto de ligação do plugin com o core do sistema

edit_form.php Não Formulário de configuração de regra da matrícula

edit.php Não Processa o formulário

Download do plugin casca: http://badiu.net/download/badiugcurricular/badiugcurricular_1.0.zip

Page 8: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

lang/en/enrol_badiugcurricular.php

$string['pluginname'] = 'Badiu Grade Curricular';

$string['msgshowonrequest'] = 'Método de inscrição Badiu....";

$string['msgsglobalsetting'] = 'Coloque aqui o formulário ....";

$string['status'] ='Ativo';

Page 9: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Mapear Lógica do Core do Plugin

settings.php

defined('MOODLE_INTERNAL') || die();

$settings->add(new admin_setting_heading('enrol_badiugcurricular_settings', '', get_string('msgsglobalsetting', 'enrol_badiugcurricular')));

Page 10: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Mapear Lógica do Core do Plugin

version.php

defined('MOODLE_INTERNAL') || die();

$plugin->version = 2014051200; $plugin->requires = 2012112900; $plugin->component = 'enrol_badiugcurricular'; $plugin->cron = 600;

Page 11: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Mapear Lógica do Core do Plugin

lib.php

Classe / Função/Arquivo Tipo Descrição

enrol_badiugcurricular_plugin class Classe a ser invocado pelo core do Moodle

get_newinstance_link function Habilita link na caixa de seleção do método de inscrição habilitadas para serem instanciadas no curso

get_action_icons function Habilita ícone ou link na instância criada no método de inscrição

enrol_page_hook function Interface de acesso do aluno. Ponto de controle para executar a regra da matrícula. Essa função é invocada pelo core do Moodle quando o aluno não está inscrito no curso e tentar acessar.

cron function Processar rotinas quando o cron do Moodle for executado

lang/en/enrol_badiugcurricular.php Arquivo Configure .o pacto de idioma. Deve ter o nome do plugin:$string['pluginname']=‘Nome do Plugin’

Page 12: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Instalação

Faça download do plugin cascahttp://badiu.net/download/badiugcurricular/badiugcurricular_1.0.zip

Descompacte o arquivo badiugcurricular_1.0.zip

Coloque a pasta badiugcurricular dentro da pasta MOODLE_DIR_INSTALL/enrolVerifique que dentro da pasta badiugcurricular tem arquivos version.php pasta lang etc.

Acesse o Moodle com senha de admin e clique no link Avisos no bloco de administração do site. A outra alternativa é acessar o link URL_MOODLE/admin/index.php

Page 13: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Instalação Continuação

Ao acessar o gerenciador de plugin, será exibido a seguinte tela

Clique no botão Atualizar base de dados do Moodle agora. Feito isso deve ser exibido a tela com mensagem que a instalação foi realizada com sucesso.

Page 14: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Habilitar o Plugin

Acesse o gerenciador do plugin de inscrição navegando no bloco de administração do site

Outra alternativa é acessar o seguinte url:MOODLE_URL/admin/settings.php?section=manageenrols

Page 15: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Habilitar o Plugin

Habilite o plugin clicando no olho fechado

Page 16: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Habilitar o Plugin

Visualização do plugin habilitado

Page 17: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Configuração Global do Plugin

Visualização do plugin habilitadoConteúdo dessa tela fica no arquivo settings.php

Page 18: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Criar Instância do Plugin no Curso

Acesse o gerenciador do método de de inscrição do curso

Outra alternativa é acessar o seguinte url:

MOODLE_URL/admin/settings.php?section=manageenrols

Page 19: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Criar Instância do Plugin no Curso

Selecione o método de inscriçãoEssa opção é colocada pela função get_newinstance_link do lib.php

Page 20: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Criar Instância do Plugin no Curso

Configurar a regra de inscrição

Page 21: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Criar Instância do Plugin no Curso

Regra de inscrição instanciadaEsse ícone é colocado pela função get_action_icons do lib.php.

Page 22: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

Acesso do aluno ao curso

Regra de inscrição que será exibida ao aluno

Essa mensagem é colocado pela função enrol_page_hook do lib.php

Page 23: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Teste de Funcionamento

O que falta fazer

Adicionar novos campos no formulário de cadastro da regra. Campo curso Campo nota de corte

Isso deve ser feita no arquivo edit_form.php e form.php

Processar a inscrição do aluno caso atenda o requisito da nota de corte e exibir mensagem de recusa caso não atende a regra. Isso deve ser feita na função enrol_page_hook do arquivo lib.php

Processar o cron no segundo plano matriculando automaticamente os alunos que atenderam os requisitos e enviar e-mail aos alunos

Isso deve ser feita na função cron do arquivo lib.php

Page 24: Desenvolvimento para Moodle Desenvolvimento de Plugin de Matrícula para Moodle 2 Lino Vaz Moniz linovazmoniz@gmail.com  Moodle Moot

Lino Vaz MonizTelefone

(61) 9937-8258

E-mail

[email protected]

http://www.badiu.net

Skype

badiu.net