No lo he mirado a fondo, pero si te fijas en la tabla course_modules que es de donde probablemente se saca la info que contiene $cm (course module = modulo de curso), hay otro campo denominado section, que supongo contiene el id de la sección en la que está contenida dicha actividad.
Si vas con ese id a la tabla course_sections, comprobarás que existe un campo llamado visible que imagino indicará si esa sección está oculta o visible. En teoría, bastaría con añadir esa nueva esa comprobacíon antes de intentar mostrar cada módulo de actividad.
Cosas de Desarrolladores
No mostrar actividades visibles con tema Padre oculto
Este hilo de discusión ha sido cerrado por lo que no admite respuestas.