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
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 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
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 habilitadoConteú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çãoEssa 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 instanciadaEsse í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