Curso filho
mod_childcourse adiciona uma atividade Moodle que funciona como um atalho dentro de um curso pai. Ao clicar, o usuário é redirecionado para um curso filho e (opcionalmente) o plugin executa inscrição automática, mapeamento de grupos e sincronização incremental de conclusão e notas.
O que o plugin resolve (na prática)
O Moodle pode vincular cursos de várias formas, mas a maioria das soluções fica frágil quando você precisa de acesso controlado, mapeamento consistente de grupos, e rastreamento confiável. Este módulo adiciona a camada que faltava: regras de inscrição + sincronização com estado dentro de uma única atividade.
- Supports Backup/Restauração.
- Pode ocultar o curso filho de “Meus cursos / Visão geral” para reduzir a poluição visual.
- Ao excluir, escolha se deseja desinscrever usuários inscritos pelo vínculo ou manter as inscrições.
Como funciona
O módulo armazena configuração na tabela da instância e acompanha o mapeamento/estado operacional em tabelas dedicadas. No acesso, ele opcionalmente inscreve e mapeia grupos, depois redireciona o usuário. A sincronização roda por agendamento (e pode ser forçada manualmente).
- O usuário abre a atividade “Curso filho”.
- Se habilitado: a inscrição é executada (papel preservado, se configurado).
- Opcional: mapeamento de grupos (grupo fixo ou grupos herdados).
- Redireciona para o curso filho (mesma aba ou nova aba).
- Ação de sincronização manual (quando o usuário tem permissão) para sincronização incremental imediata.
- Gerenciar instâncias por uma página de gestão do curso (requer
moodle/course:update). - Índice página listando todas as instâncias dentro do curso.
view.php- página principal da atividade (estudante é redirecionado; professor vê um dashboard)manage.php- lista/gerencia instâncias no cursoindex.php- lista instâncias do módulo no curso
Regras de conclusão da atividade
Quando a conclusão do Moodle está definida como Automática, a atividade pode se marcar como concluída usando regras adicionais baseadas no curso filho.
enablecompletion = 1 para que regras baseadas em conclusão funcionem.
Sincronização (notas e conclusão)
A sincronização foi projetada para ser incremental. Em vez de recalcular tudo, o plugin acompanha o estado e atualiza apenas o que mudou.
\mod_childcourse\task\sync_task roda por padrão a cada
15 minutos (veja db/tasks.php) e executa sincronização incremental
para todas as instâncias.
- Útil após mudanças de configuração.
- Útil para depuração ou suporte.
- Não exige esperar o agendamento do cron.
Suporte mobile (Moodle App)
No Moodle App, a atividade renderiza uma tela simples com um único botão para abrir o curso filho. Ao clicar, executa o mesmo fluxo de inscrição + acesso da versão web.
Estrutura de dados (tabelas)
O plugin usa tabelas dedicadas para manter a configuração limpa e a sincronização escalável.
{childcourse}{childcourse_map}{childcourse_state}Suporte
- Versão do Moodle
- Passos para reproduzir
- Qual instância de atividade (IDs do curso pai + curso filho)
- Se autoinscrição / grupos / preservação de papel estavam habilitados
- Logs de cron / tarefa (se for sobre sincronização)
- Habilite autoinscrição quando quiser uma experiência de “acesso em um clique”.
- Use mapeamento de grupos para manter coortes consistentes entre cursos pai/filho.
- Prefira sincronização incremental em sites grandes (evite o hábito de sincronização completa manual).
- Teste regras de conclusão em ambiente de homologação antes de levar para produção.
- Sem modificações no core.
- UX de atividade única dentro do curso pai.