Você está na página 1de 20

Desenvolvimento para Moodle

Desenvolvimento para Moodle


Estrutura do banco de dados e principais API

Lino Vaz Moniz


linovazmoniz@gmail.com Moodle Moot 2013

Banco de Dados do Moodle

Tabelas do Core do Sistema mdl_context mdl_config mdl_modules mdl_capabilities mdl_role mdl_role_capabilities mdl_log

Banco de Dados do Moodle

Tabelas do Usurio

mdl_user mdl_user_preferences mdl_user_info_category mdl_user_info_data mdl_user_info_field

Banco de Dados do Moodle

Tabelas do Curso

mdl_course mdl_course_categories mdl_course_modules mdl_course_sections

Banco de Dados do Moodle

Tabelas da Matrcula

mdl_role_assignments mdl_enrol (verso 2.x) mdl_user_enrolments (verso 2.x) Tabelas de referencia mdl_context mdl_role mdl_user

Banco de Dados do Moodle

Tabelas de Nota

mdl_grade_items mdl_grade_grades mdl_grade_letters

Banco de Dados do Moodle

Layout da Tabela de Matrcula

mdl_role_assignments id bigint(10) NOT NULL AUTO_INCREMENT roleid bigint(10) NOT NULL (FK mdl_role) contextid bigint(10) NOT NULL (FK mdl_context) userid bigint(10) NOT NULL (FK mdl_user)

Banco de Dados do Moodle

Efetuar Matrcula com Comando SQL Verso 1.9

Recuperar Id do contexto do curso SELECT id FROM mdl_context WHERE contextlevel=50 AND instanceid=? Efetuar matrcula INSERT INTO mdl_role_assignments (roleid,contextid,userid) VALUES (?,?,?)

http://moodlesql.blogspot.com.br/2010/07/matricular-usuario-no-curso-do-moodle.html

Banco de Dados do Moodle

Efetuar Matrcula com Comando SQL Verso 2.x

Recuperar identificador mtodo de Inscrio do curso SELECT id FROM mdl_enrol WHERE courseid=? AND enrol='manual' Vincular usurio ao mtodo de inscrio INSERT INTO mdl_user_enrolments (status,enrolid,userid,timestart,timeend,timecreated,timemodified) VALUES (?,?,?,?,?,?,?) Recuperar Id do contexto do curso SELECT id FROM mdl_context WHERE instanceid=? AND contextlevel=50 Efetuar matrcula INSERT INTO mdl_role_assignments (roleid,contextid,userid,timemodified) VALUES (?,?,?,?)
http://moodlesql.blogspot.com.br/2010/07/matricular-usuario-no-curso-do-moodle.html? showComment=1317436246579#c1869475564775276003

Banco de Dados do Moodle

Relatrio de Matrcula pelo Comando SQL

Perfil (mdl_role) 1 Administrator 2 -Course creator 3 Teacher (Tutor) 4 - Non-editing teacher 5 Student (Aluno) 6 Guest 7 - Authenticated user

SELECT u.id, u.firstname,u.lastname FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id WHERE e.contextlevel=50 AND rs.roleid=5 AND e.instanceid=?

Banco de Dados do Moodle

Tabela de domnio do contexto

SISTEMA USURIO CATEGORIA DE CURSO CURSO MDULO BLOCO

10 30 40 50 70 80

API do Moodle

Principais APIs
Banco de dados http://docs.moodle.org/dev/Data_manipulation_API Permisso http://docs.moodle.org/dev/Access_API Formulrio http://docs.moodle.org/dev/Form_API String http://docs.moodle.org/dev/String_API Thema http://docs.moodle.org/19/en/Theme_basics Autenticao http://docs.moodle.org/dev/Authentication_API http://moodlephp.blogspot.com.br/2012/06/moodle-e-um-framework-de-ensino-online.html

API do Moodle

Importar Bibliotecas do Core

require_once("MOODLE_DIR_INSTALL/config.php"); http://moodlephp.blogspot.com.br/2010/11/usar-bibliotecasde-funcoes-do-sistema.html

API do Moodle

Variveis Globais

require_once("MOODLE_DIR_INSTALL/config.php");

global $CFG; global $DB; ( a partir da verso 2.x) global $COURSE; global $USER;
function get_course(){ global $CFG; global $DB; //s aplica na verso 2.x global $COURSE; $sql ="SELECT id,fullname,shortname FROM {$CFG->prefix}course WHERE id =$COURSE->id"; return $DB->get_record_sql($sql);// para verso 2.x //return get_record_sql($sql);// para verso 1.9 }

API do Moodle

Manipulao de Banco de Dados

Manipular Tabela mdl_teste


//adicionar registro function save($dto) { global $CFG; global $DB; return $DB->insert_record('teste', $dto); } //alterar registro function edit($dto) { global $CFG; global $DB; return $DB->update_record('teste', $dto); } //excluir registro function delete_by_id($id) { global $CFG; global $DB; return $DB->delete_records_select('teste', "id=$id"); }

Arquitetura Modular do Moodle

Tipos de Mdulo/Plugin

Matrcula moodle/enrol Autenticao moodle/auth Relatrio do curso moodle/course/reporter Relatrio de nota moodle/grade/reporter Relatrio no contexto do sistema moodle/admin/report / moodle/report Exportao de nota moodle /grade/export Tema (interface grfica) moodle/theme Formato de curso moodle/course/format

Arquitetura Modular do Moodle

Tipos de Mdulo/Plugin

Tipo de questo moodle/question/type Atividade moodle/mod Campos para base de dados moodle/mod/data/field Tipo de Atividade tarefa moodle/mod/assignment/type Relatrio de questionrio moodle/mod/quiz/report Blocos moodle/blocks Campo de perfil de usurio moodle/user/profile/field Plugin deversos moodle/local

Programar para Moodle

Diretrizes de Desenvolvimento

!!

Usar API do Moodle Evitar hacker do cdigo

!!

Implementar/alterar funcionalidades atravs de plugin !!Usar API do Moodle


!! !!

Usar sistema de permisso do Moodle Seguir padronizao de nomes Seguir padro de Internacionalizao de idioma Alterar interface grfica usando plugin do thema

!!

!!

!!

Conhea meus Blogs

Moodle SQL - Para Desenvolvedor e Programador do Moodle http://moodlesql.blogspot.com


!!

Moodle PHP - Para Programador do Moodle http://moodlephp.blogspot.com


!!

Moodle Educ - Para Administrador e Tutor do Moodle http://moodleeduc.blogspot.com


!!

Moodle DI - Para Professor e Pesquisador (reflexes acadmicas) http://moodledi.blogspot.com


!!

Badiu GMoodle Sistema de Gesto do Moodle http://gmoodle.blogspot.com.br/


!!

Lino Vaz Moniz Telefone (61) 9937-8258 E-mail linovazmoniz@gmail.com Skype badiu.net

Você também pode gostar