Desenvolvimento para Moodle
Desenvolvimento de Plugin de
Matrícula para Moodle 2
Lino Vaz Moniz
linovazmoniz@gmail.com
http://www.badiu.net/
Moodle Moot Floripa 2014
10/10/2014
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
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
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 ...).
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
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 {...}
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
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';
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')));
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;
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’
Teste de Funcionamento
Instalação
 Faça download do plugin casca
http://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/enrol
Verifique 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
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.
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
Teste de Funcionamento
Habilitar o Plugin
 Habilite o plugin clicando no olho fechado
Teste de Funcionamento
Habilitar o Plugin
 Visualização do plugin habilitado
Teste de Funcionamento
Configuração Global do Plugin
 Visualização do plugin habilitado
Conteúdo dessa
tela fica no
arquivo
settings.php
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
Teste de Funcionamento
Criar Instância do Plugin no Curso
 Selecione o método de inscrição
Essa opção é colocada
pela função
get_newinstance_link
do lib.php
Teste de Funcionamento
Criar Instância do Plugin no Curso
 Configurar a regra de inscrição
Teste de Funcionamento
Criar Instância do Plugin no Curso
 Regra de inscrição instanciada
Esse ícone é colocado
pela função
get_action_icons do
lib.php.
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
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
Lino Vaz Moniz
Telefone
(61) 9937-8258
E-mail
linovazmoniz@gmail.com
http://www.badiu.net
Skype
badiu.net
Download

Demonstração de Relatórios