domingo, 14 de novembro de 2010

Matricular Usuário no Grupo/Turma do Moodle com Comando SQL

    Para cadastrar um usuário (aluno,tutor etc) em um grupo  grupo, ou seja, turma de um curso no Moodle sem ser pela interface gráfica é necessário executar o comando SQL diretamente na base de dados ou em uma linguagem de programação.
   
    Para matricular um aluno em um grupo de usuário, primeiro é necessário matriculá-lo no curso.  Em seguida, adicioná-lo a um grupo.  Neste post não abordamos como efetuar matrícula  no curso. Caso queira explorar isso, clique aqui e acesse o post que aborda esse assunto.

Antes de avançar é bom entender como o grupo de usuário é organizado no banco de dados do Moodle.
    Os registros do grupo  ficam em duas tabelas:
mdl_groups  - Tabela que armazena nome do grupo e curso que está vinculado
mdl_groups_members  - Tabela que armazena os membros de cada grupo

    O comando SQL que insere usuário no grupo é:
INSERT INTO mdl_groups_members (groupid,userid,timeadded) VALUES (?,?,?)

Passe os parâmetros:
     groupid – Id do grupo. Chave primária da tabela mdl_groups.
     userid- Id do usuário.  Chave primária da tabela mdl_user.
     timeadded – Data do cadastro. Data em formato numérico: timestamp em segundos. 


Para processar cadastro em lote é melhor executar o código dentro de uma linguagem de programação.

3 comentários:

  1. a matrcula de turma é em apenas uma tabela ?

    ResponderExcluir
  2. Primeiro inscreve o aluno no curso. Para isso siga instruções no link

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

    Em seguida, cadastre o aluno na turma fazendo um insert na tabela mdl_groups_members

    ResponderExcluir
  3. Estou com um problema no moodle 2.6
    Ao inserir a turma em mdl_groups a turma não aparece na lista de turmas (http://hostmoodle/group/index.php?id=ID_COURSE), porém aparece na visão geral (http://hostmoodle/group/overview.php?id=ID_COURSE).

    Ao inserir uma turma adicional pela interface do moodle as demais inseridas por SQL aparecem. Isto provavelmente deve ser uma flag em alguma tabela, porém não a encontrei.

    Alguém já passou por isto?

    ResponderExcluir