@extends('aulavirtual.layout.master') @section('title', 'Educa Auge - Accede a los mejores cursos online para docentes') @section('styles') @endsection @section('content') @php $totalClases = optional($publicacion->sesiones)->sum(fn($s) => $s->detalles->count()); $completadas = (int) ($publicacion->clasescompletadas ?? 0); $porcentaje = $totalClases > 0 ? round(($completadas / $totalClases) * 100) : 0; @endphp
{{-- ========= ÁREA INFORMATIVA (no clases) ========= --}}
{{-- Bienvenida (coloca aquí tu video/imagen/texto) --}}

Bienvenida al curso

{{--

¡Bienvenido a tu formación en Grupo AUGE!

--}}

Este espacio ha sido creado para acompañarte en tu crecimiento como docente, con herramientas prácticas y estrategias que podrás aplicar desde la primera clase.

@php use Illuminate\Support\Str; $link = trim((string) data_get($publicacion, 'link_video')); $isYouTube = $link && Str::contains($link, ['youtube.com', 'youtu.be']); $embedUrl = null; if ($isYouTube) { // youtu.be/VIDEOID if (preg_match('~youtu\.be/([^?&/]+)~i', $link, $m)) { $vid = $m[1]; } // youtube.com/watch?v=VIDEOID elseif ( preg_match('~[?&]v=([^?&/]+)~i', parse_url($link, PHP_URL_QUERY) ?? '', $m) ) { $vid = $m[1]; } // youtube.com/embed/VIDEOID elseif (preg_match('~youtube\.com/embed/([^?&/]+)~i', $link, $m)) { $vid = $m[1]; } else { $vid = null; } if (!empty($vid)) { $embedUrl = 'https://www.youtube.com/embed/' . $vid . '?rel=0&modestbranding=1'; } } @endphp {{-- CSS/JS del player protegido siempre disponible para carga dinámica --}} @include('partials.video-player-protected', ['styleOnly' => true]) @if ($embedUrl) {{-- YouTube embebido --}}
@elseif (!empty($link)) @php $esDominioEducauge = str_contains($link, 'bucket.educaauge.com') || str_contains($link, 'storage.googleapis.com/bucket-auge-oficial'); @endphp @if ($esDominioEducauge) @php $secureGrabadaUrl = \App\Http\Controllers\VideoProxyController::generateSecureUrl($link); @endphp @include('partials.video-player-protected', [ 'videoSrc' => $secureGrabadaUrl, 'playerId' => 'grabada-player-inicial', ]) @else {{-- Archivo propio (storage/CDN) --}} @endif @else Horarios @endif
{{-- Estructura (coloca aquí tu contenido) --}}

Estructura Académica

{!! $publicacion->estructura_academica !!}
{{-- Horario (coloca aquí tu imagen/iframe de horario) --}}

Mi horario

@php $origen = $publicacion->live_course ?? ['titulo' => $publicacion->titulo]; @endphp

Aquí podrás encontrar las fechas de tus sesiones en vivo, simulacros y actividades importantes. Agrega los recordatorios a tu calendario para no perderte ninguna clase.

@php // Alias para no confundirnos $curso = $publicacion; $lives = $curso->all_lives ?? collect(); // Detectar si al menos UNA entrada tiene clase HOY (en vivo ahora o próxima hoy) $hasToday = false; foreach($lives as $lv) { $inf = data_get($lv, 'live') ?? []; if (data_get($inf, 'en_vivo_ahora') || data_get($inf, 'proximo_hoy')) { $hasToday = true; break; } } @endphp {{-- Renderizar todos los lives (si los hay) --}} @foreach($lives as $live) @php $infoLive = data_get($live, 'live') ?? []; @endphp @if ($hasToday) {{-- Mostrar sólo las entradas de HOY (puede haber más de una) --}} @if (data_get($infoLive, 'en_vivo_ahora') || data_get($infoLive, 'proximo_hoy')) @if (!empty($live['link_vivo']) && data_get($infoLive, 'en_vivo_ahora')) @else @if (data_get($infoLive, 'proximo_hoy'))
Próxima sesión : {{ data_get($infoLive, 'proximo_hoy') }} ({{ data_get($infoLive, 'hoy_nombre') }})
@endif @endif @endif @else {{-- No hay clases hoy en ninguno: mostrar próximos por live --}} @if (!empty($live['link_vivo']) && data_get($infoLive, 'en_vivo_ahora')) @endif @if (!empty($infoLive) && !data_get($infoLive, 'en_vivo_ahora')) @if (data_get($infoLive, 'proximo_hoy'))
Próxima sesión : {{ data_get($infoLive, 'proximo_hoy') }} ({{ data_get($infoLive, 'hoy_nombre') }})
@elseif (data_get($infoLive, 'siguiente_dia') && data_get($infoLive, 'siguiente_hora'))
No hay clases en vivo hoy Siguiente clase: {{ data_get($infoLive, 'siguiente_dia') }} {{ data_get($infoLive, 'siguiente_hora') }}
@else
No hay clases en vivo programadas.
@endif @endif @endif @endforeach Horarios {{-- tu contenido de horario --}}
{{-- ========= ÁREA DE CLASES (separado y oculto por defecto) ========= --}}
{{-- Modal bloqueo --}} {{-- Modal de archivos múltiples --}}
{{-- ========== JS EXISTENTE (alto dinámico) ========== --}} @endsection