{{-- HEADER --}}

Moodle — Visualizar & Mapear

Busque os cursos do Moodle e associe ao cadastro local (Curso → Período → Disciplina → Aula).

{{-- AÇÕES --}} {{-- Erro --}} @if ($erro)
{{ $erro }}
@endif {{-- Loading --}}

Carregando do Moodle…

{{-- =============================== --}} {{-- CURSOS --}} {{-- =============================== --}}
@forelse ($moodleCourses as $course) @php $cid = $course['id']; $tree = $moodleTree[$cid] ?? ['avulsas' => [], 'periodos' => []]; $cursoLocalId = $mapCursos[$cid] ?? null; // Períodos e disciplinas do curso local selecionado $cursoLocalData = null; if ($cursoLocalId) { $cursoLocalData = collect($cursosLocais)->firstWhere('id', $cursoLocalId); } @endphp
{{-- ████ NÍVEL 1: CURSO (indigo) ████ --}}
{{-- Thumbnail do curso --}} @if (!empty($course['courseimage'])) Capa @endif
CURSO #{{ $cid }} @if (!empty($cursoLocalId)) @endif

{{ $course['fullname'] }}

@if (!empty($cursoLocalId)) @endif
{{-- Conteúdo do curso --}}
{{-- ████ NÍVEL 2: PERÍODOS (amber) ████ --}} @foreach ($tree['periodos'] as $periodo) @php $periodoSec = $periodo['section']; $pKey = $cid . '_' . $periodoSec['id']; $periodoLocalId = $mapPeriodos[$pKey] ?? null; // Disciplinas locais do período selecionado $discsLocalDoPeriodo = []; if ($periodoLocalId && $cursoLocalData) { foreach ($cursoLocalData['periodos'] ?? [] as $pLocal) { if ($pLocal['id'] === $periodoLocalId) { $discsLocalDoPeriodo = $pLocal['disciplinas'] ?? []; break; } } } @endphp {{-- Cabeçalho do Período --}}
@if (!empty($periodoSec['summaryImage'])) @else @endif {{ $periodoSec['name'] }} #{{ $periodoSec['id'] }} ({{ count($periodo['disciplinas']) }} disc.) @if (!empty($periodoLocalId)) @endif
@if (!empty($cursoLocalId))
@if (!empty($periodoLocalId)) @else @endif
@endif
{{-- ████ NÍVEL 3: DISCIPLINAS do período ████ --}} @forelse ($periodo['disciplinas'] as $disc) @php $dKey = $cid . '_' . $disc['id']; $modules = $disc['modules'] ?? []; $discLocalId = $mapDisciplinas[$dKey] ?? null; // Conteúdos locais da disciplina vinculada (para o select de aulas) $conteudosLocalDaDisc = []; if ($discLocalId && $cursoLocalData) { foreach ($cursoLocalData['disciplinas'] ?? [] as $dAll) { if ($dAll['id'] === $discLocalId) { $conteudosLocalDaDisc = $dAll['conteudos'] ?? []; break; } } if (empty($conteudosLocalDaDisc)) { foreach ($cursoLocalData['periodos'] ?? [] as $pScan) { foreach ($pScan['disciplinas'] ?? [] as $dScan) { if ($dScan['id'] === $discLocalId) { $conteudosLocalDaDisc = $dScan['conteudos'] ?? []; break 2; } } } } } @endphp
{{-- Cabeçalho Disciplina --}}
@if (!empty($disc['summaryImage'])) @endif #{{ $disc['id'] }} {{ Str::limit($disc['name'], 45) }} ({{ count($modules) }}) @if (!empty($discLocalId)) @endif
@if (!empty($cursoLocalId))
@if (!empty($discLocalId)) @elseif ($disc['name']) @endif
@endif
{{-- ████ NÍVEL 4: AULAS/MÓDULOS ████ --}} @if (!empty($modules))
@foreach ($modules as $mod) @php $modId = $mod['id'] ?? null; $isSaved = $modId && !empty($modulosSalvos[$modId]); $conteudoLocalId = $modId ? ($mapConteudos[$modId] ?? null) : null; @endphp
@if (!empty($mod['modicon'])) @else @endif @if ($isSaved) @endif {{ $modId }} {{ Str::limit($mod['name'], 40) }} {{ $mod['modname'] }} @if (!empty($mod['url'])) @endif
@if (!empty($discLocalId) && $modId)
@if (!empty($conteudoLocalId)) @else @endif
@endif
@endforeach
@endif
@empty
Nenhuma disciplina neste período.
@endforelse @endforeach {{-- ████ SEÇÕES AVULSAS (sem período) ████ --}} @if (!empty($tree['avulsas']))
Seções avulsas (sem período)
@foreach ($tree['avulsas'] as $avulsa) @php $aKey = $cid . '_' . $avulsa['id']; $avulsaLocalId = $mapDisciplinas[$aKey] ?? null; // Conteúdos locais da disciplina avulsa vinculada $conteudosLocalAvulsa = []; if ($avulsaLocalId && $cursoLocalData) { foreach ($cursoLocalData['disciplinas'] ?? [] as $dAv) { if ($dAv['id'] === $avulsaLocalId) { $conteudosLocalAvulsa = $dAv['conteudos'] ?? []; break; } } } @endphp
{{-- Cabeçalho Avulsa --}}
@if (!empty($avulsa['summaryImage'])) @endif #{{ $avulsa['id'] }} {{ Str::limit($avulsa['name'], 45) }} ({{ count($avulsa['modules']) }}) @if (!empty($avulsaLocalId)) @endif
@if (!empty($cursoLocalId))
@if (!empty($avulsaLocalId)) @elseif ($avulsa['name']) @endif
@endif
{{-- Módulos da seção avulsa --}} @if (!empty($avulsa['modules']))
@foreach ($avulsa['modules'] as $mod) @php $modId = $mod['id'] ?? null; $isSaved = $modId && !empty($modulosSalvos[$modId]); $conteudoLocalId = $modId ? ($mapConteudos[$modId] ?? null) : null; @endphp
@if (!empty($mod['modicon'])) @else @endif @if ($isSaved) @endif {{ $modId }} {{ Str::limit($mod['name'], 40) }} {{ $mod['modname'] }} @if (!empty($mod['url'])) @endif
@if (!empty($avulsaLocalId) && $modId)
@if (!empty($conteudoLocalId)) @else @endif
@endif
@endforeach
@endif
@endforeach @endif {{-- Vazio --}} @if (empty($tree['avulsas']) && empty($tree['periodos']))
Nenhum conteúdo encontrado neste curso.
@endif
@empty @if (!$carregando && !$erro)

Nenhum curso carregado

Clique em "Carregar do Moodle" para buscar os cursos do AVA.

@endif @endforelse