Vous êtes sur la page 1sur 24

Desenvolvimento para Moodle

Desenvolvimento de Plugin de
Matrcula para Moodle 2
Lino Vaz Moniz
linovazmoniz@gmail.com
http://www.badiu.net/
Moodle Moot Floripa 2014
10/10/2014

Sumrio

Funcionamento do Plugin de Matrcula


Tabelas que Gerenciam Matrcula no Banco de Dados
Criar um novo Plugin de Grade Curricular
Criar um Plugin Casca
Mapear Lgica do Core do Plugin
Teste de Funcionamento
O que fala adicionar

Funcionamento do Plugin de Matrcula

Um curso pode ter vrias regras de matrcula


Um regra uma instncia de um plugin
Um mesmo plugin pode ter mais de uma instncia

Tabelas que Gerenciam Matrcula no


Banco de Dados

Tabela

Descrio

mdl_config_plugins

Registra todos os plugins instalados e suas


configuraes globais

mdl_enrol

Registra as regras de matrcula (mtodo de


inscrio). Cada regra uma instncia de um
determinado plugin vinculado a um curso.

mdl_user_enrolments

Registra o vnculo do usurio a regra de inscrio.


Tambm configura o perodo de validade da matrcula

mdl_role_assignments

Registra a matricula do usurio 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 condio de inscrio com base na nota final de um
determinado curso;
Se o usurio acessar o curso, ele ser inscrito caso atender o
requisito de nota de aprovao configurado no plugin;

Requisitos Tcnicos
Seguir o padro do Moodle. Deve ser instalado e desinstalado
na prpria interface do Moodle;
Deve ser compatvel com qualquer verso do Moodle de famlia
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 cpia com o nome
badiugcurricular;
Apague todos os arquivos e funes que so especficas do
plugin self e no fazem parte do core do plugin:
Renomeie todos os arquivos / funes 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


(Prottipo sem funcionalidades)

Arquivo

Obrigatrio

Descrio

lang/en/enrol_badiugcurricular.php

Sim

Pacote de idioma

db/access.php

No

Controle de permisso

db/upgrade.php

No

Controle de atualizao

db/install.xml

No

Definio de tabelas a ser


criado no banco de dados

settings.php

Sim

Configurao global do plugin

version.php

Sim

Definio da verso do plugin

lib.php

Sim

Lgica de processamento do
plugin. Ponto de ligao do
plugin com o core do sistema

edit_form.php

No

Formulrio de configurao de
regra da matrcula

edit.php

No

Processa o formulrio

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'] = 'Mtodo de inscrio Badiu....";
$string['msgsglobalsetting'] = 'Coloque aqui o formulrio ....";
$string['status'] ='Ativo';

Mapear Lgica 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 Lgica do Core do Plugin

version.php

defined('MOODLE_INTERNAL') || die();
$plugin->version = 2014051200;
$plugin->requires = 2012112900;
$plugin->component = 'enrol_badiugcurricular';
$plugin->cron
= 600;

Mapear Lgica do Core do Plugin

lib.php

Classe / Funo/Arquivo

Tipo

Descrio

enrol_badiugcurricular_plugin

class

Classe a ser invocado pelo core do Moodle

get_newinstance_link

function

Habilita link na caixa de seleo do mtodo


de inscrio habilitadas para serem
instanciadas no curso

get_action_icons

function

Habilita cone ou link na instncia criada no


mtodo de inscrio

enrol_page_hook

function

Interface de acesso do aluno. Ponto de


controle para executar a regra da matrcula.
Essa funo invocada pelo core do Moodle
quando o aluno no 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

Instalao

Faa 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 administrao do site. A outra alternativa acessar o link
URL_MOODLE/admin/index.php

Teste de Funcionamento

Instalao Continuao

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

Clique no boto Atualizar base de dados do Moodle agora. Feito isso deve
ser exibido a tela com mensagem que a instalao foi realizada com sucesso.

Teste de Funcionamento

Habilitar o Plugin

Acesse o gerenciador do plugin de inscrio


navegando no bloco de administrao 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

Visualizao do plugin habilitado

Teste de Funcionamento

Configurao Global do Plugin

Visualizao do plugin habilitado

Contedo dessa
tela fica no
arquivo
settings.php

Teste de Funcionamento

Criar Instncia do Plugin no Curso

Acesse o gerenciador do mtodo de de


inscrio do curso

Outra alternativa acessar o seguinte


url:
MOODLE_URL/admin/settings.php?section=manageenrols

Teste de Funcionamento

Criar Instncia do Plugin no Curso

Selecione o mtodo de inscrio

Essa opo colocada


pela funo
get_newinstance_link
do lib.php

Teste de Funcionamento

Criar Instncia do Plugin no Curso

Configurar a regra de inscrio

Teste de Funcionamento

Criar Instncia do Plugin no Curso

Regra de inscrio instanciada

Esse cone colocado


pela funo
get_action_icons do
lib.php.

Teste de Funcionamento

Acesso do aluno ao curso

Regra de inscrio que ser exibida ao aluno


Essa mensagem
colocado pela funo
enrol_page_hook do
lib.php

Teste de Funcionamento

O que falta fazer

Adicionar novos campos no formulrio de cadastro da regra.


Campo curso
Campo nota de corte
Isso deve ser feita no arquivo edit_form.php e form.php

Processar a inscrio do aluno caso atenda o requisito da nota de corte


e exibir mensagem de recusa caso no atende a regra.
Isso deve ser feita na funo 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 funo cron do arquivo lib.php

Lino Vaz Moniz


Telefone
(61) 9937-8258
E-mail
linovazmoniz@gmail.com
http://www.badiu.net
Skype
badiu.net