Desenvolvimento:Documentação para programadores

De MoodleDocs

Esta página deve ser actualizada. Depois da actualização, por favor apague o a predefinição Update do código. Antes de modificar a página, verifique se a versão em inglês já foi actualizada


Como programar / implementar um módulo para o Moodle.

Para desenvolver um módulo para o Moodle existem passos e regras que necessitam ser respeitadas de forma a que a aplicação reconheça aquele grupo de ficheiros como um modulo.


Assim um módulo deve respeitar as seguintes regras:

- Todos os ficheiros que compõem o módulo devem estar num directório com um nome que não deverá conter números ou caracteres especiais e deve ser uma palavra única sem espaços. Esse directório deverá ficar localizado na pasta mod do moodle.

- Todos os ficheiros de código deverão ter a extensão .php

- Todos os ficheiros de modelo deverão ter a extensão .html

- Todos os acessos a base de dados deverão ser feitos usando as funções que constam do ficheiro dmllib.php existente na pasta lib do Moodle

- Todos os textos deverão ser manuseados através das funções pré-definidas pelo moodle (get_string() e print_string()). Assim é forçado que parte do código seja standard e facilite a tradução do texto para outras línguas. Estas funções buscam as palavras chave no ficheiro de língua localizado no directório /lang do módulo. Este ficheiro tem de ter o nome do módulo seguida da extensão .php.

- O nome do módulo é definido no ficheiro de língua atribuído o nome desejado à variável modulename. Para definir o plural deve-se atribuir o nome no plural à variável modulenames.

- Cada ficheiro de código deve incluir o ficheiro config.php do moodle require_once("../../config.php"); necessário para identificação do utilizador através de require_login() e isadmin(), isteacher(), iscreator() ou isstudent().

- Todos os arquivos de ajuda devem ser passíveis de tradução, colocando novos ficheiros de ajuda no directório adequado. Por ex. lang/pt/help

- Todos os textos dentro do Moodle, especialmente aqueles que são provenientes de utilizadores devem ser impressos usando a função format_text(). Isto assegura que o texto está filtrado e devidamente limpo.


Além disso os seguintes ficheiros são obrigatórios:

mod.html – um formulário inicial que será apresentado no moodle, serve para criar e modificar uma instância (objecto resultante do módulo, ex. inquérito X, inquérito Y, etc.) do módulo.

version.php – indica a versão do módulo e é útil para posteriormente fazer upgrades. Também deve indicar o intervalo de tempo em que o script cron.php do moodle actualiza os dados relativos ao módulo.

icon.gif – pequena imagem representativa do módulo

index.php – página que lista todas as instâncias existentes do módulo

view.php – página que permite ver uma instância em particular

lib.php – Neste ficheiro devem estar as seguintes funções (exemplo para um módulo chamado modulo):


Acrescenta-se ainda que também os seguintes métodos são de implementação obrigatória:

modulo_add_instance() – código para adicionar uma nova instância

modulo_update_instance() – código para actualizar uma instância

modulo_delete_instance() – código para apagar uma instância

modulo_user_outline() – código que lista resumo sobre o utilizador

modulo_user_complete() – código que fornece toda a informação do utilizador


Se o módulo necessitar de utilizar com uma base de dados, deve existir um directório db/ dentro do directório do módulo com um ficheiro mysql.php e/ou postgres.php e também um ficheiro mysql.sql e/ou postgres.sql consoante o SGBD sobre o qual a aplicação Moodle está a funcionar.

o ficheiro .php é utilizado para fazer actualizações na base de dados para a eventualidade de já existir uma versão anterior do mesmo módulo instalada no sistema.

o ficheiro .sql consiste nas instruções SQL que vão criar as tabelas na base de dados que o módulo irá usar. Todas as tabelas deverão ter como início do nome prefix_ seguido de um nome. O valor de prefix é depois atribuído pelo Moodle aquando da execução do código SQL.


A tabela principal devera ter o mesmo nome que o módulo (ex: prefix_modulo) e deve conter no mínimo os seguintes campos:

id – INT 10 autoincremental como indice primário

course – com o id do curso à qual a instância pertence

name – o nome completo de cada instância do módulo


As outras tabelas deve ser nomeadas seguindo a regra prefix_modulo_nome. Após cumprir todos estes passos, passa-se então à restante implementação do módulo.



Informação Adicional:

  • http://download.moodle.org/download.php/modules/NEWMODULE.zip - Trata-se de um "esqueleto" para um módulo, e pode ser servir de base para a implementação de novos módulos para o Moodle. Este foi desenvolvido pelos programadores do Moodle, sendo que não assumimos qualquer responsabilidade por qualquer erro que o mesmo possa conter. Os ficheiros de código estão comentados em inglês e não são da nossa autoria.

Ferramentas pessoais
Moodle » Documentation » Português
Outras línguas