<?php
// cursos.php
// Página de listado de todos los cursos disponibles

// Define BASE_PATH
if (!defined('BASE_PATH')) {
    define('BASE_PATH', dirname(__FILE__));
}

// Configuraciones iniciales
require_once 'includes/config.php';
require_once 'includes/db.php';
require_once 'includes/functions.php';
require_once BASE_PATH . '/includes/config-tracking.php';

// Adicione após os includes básicos
require_once 'includes/unique-visits-tracker.php';

// Track visita única
$uniqueVisitsTracker->trackUniqueVisit(null, '/cursos', 'Cursos Gratuitos');

// Define variables para el header
$pageTitle = 'Todos los Cursos Gratuitos';
$metaDescription = 'Explora nuestra biblioteca completa de cursos gratuitos. Aprende nuevas habilidades, mejora tu carrera y transforma tu vida profesional.';
$metaKeywords = 'cursos gratuitos, educación online, aprendizaje, desarrollo profesional, catálogo de cursos';
$currentPage = 'cursos';

// Incluye el header
require_once 'includes/header.php';

// Procesa búsqueda
$searchQuery = isset($_GET['q']) ? sanitizeInput($_GET['q']) : '';

// Busca las páginas de landing activas (cursos)
try {
    $query = "SELECT id, title, slug, excerpt, featured_image, created_at, author_id FROM pages 
               WHERE type = 'landing' AND published = 1";
    
    // Añadir filtro de búsqueda si existe
    if (!empty($searchQuery)) {
        $query .= " AND (title LIKE :search OR excerpt LIKE :search OR content LIKE :search)";
    }
    
    $query .= " ORDER BY sequence ASC, created_at DESC";
    
    $db->query($query);
    
    // Vincular parámetros de búsqueda si existen
    if (!empty($searchQuery)) {
        $db->bind(':search', "%{$searchQuery}%");
    }
    
    $landingPages = $db->resultSet();
    
} catch (Exception $e) {
    logError("Error al cargar cursos: " . $e->getMessage());
    $landingPages = [];
}

// Función para obtener el autor
function getAutorCurso($autorId) {
    global $db;
    
    if (empty($autorId)) {
        return 'Admin';
    }
    
    try {
        $db->query("SELECT username FROM admins WHERE id = :id");
        $db->bind(':id', $autorId);
        $result = $db->single();
        
        return $result ? htmlspecialchars($result['username']) : 'Admin';
    } catch (Exception $e) {
        return 'Admin';
    }
}
?>

<!-- Hero Section -->
<section class="cursos-hero">
    <div class="container">
        <h1 class="cursos-title">Explora Cursos Gratuitos</h1>
        <p class="cursos-description">Accede a contenido de calidad preparado por expertos y transforma tu futuro profesional sin ningún costo.</p>
        
        <!-- Buscador de cursos -->
        <div class="search-box">
            <form action="cursos.php" method="GET" class="search-form">
                <div class="input-group">
                    <input type="text" name="q" class="form-control search-input" placeholder="Buscar cursos..." value="<?php echo htmlspecialchars($searchQuery); ?>">
                    <button type="submit" class="btn btn-search">
                        <i class="fas fa-search"></i>
                    </button>
                </div>
            </form>
        </div>
    </div>
</section>

<!-- Landing Pages Section (Cursos) -->
<section class="cursos-section">
    <div class="container">
        <?php if (empty($landingPages)): ?>
            <div class="no-results">
                <img src="/assets/img/no-results.svg" alt="No se encontraron cursos" class="no-results-img">
                <h3>No se encontraron cursos</h3>
                <?php if (!empty($searchQuery)): ?>
                    <p>No hay resultados para tu búsqueda: "<?php echo htmlspecialchars($searchQuery); ?>"</p>
                    <a href="cursos.php" class="btn btn-primary">Ver todos los cursos</a>
                <?php else: ?>
                    <p>Actualmente no hay cursos disponibles. ¡Vuelve pronto!</p>
                <?php endif; ?>
            </div>
        <?php else: ?>
            <!-- Resultados encontrados -->
            <div class="cursos-header">
                <h2 class="section-title"><?php echo !empty($searchQuery) ? 'Resultados para: "' . htmlspecialchars($searchQuery) . '"' : 'Todos los Cursos'; ?></h2>
                <p class="results-count"><?php echo count($landingPages); ?> curso(s) encontrado(s)</p>
            </div>
            
            <div class="row">
                <?php foreach ($landingPages as $page): ?>
                    <div class="col-md-6 col-lg-3 mb-4">
                        <a href="<?php echo SITE_URL . '/pages/' . $page['slug']; ?>" class="landing-card">
                            <?php if (!empty($page['featured_image'])): ?>
                                <img src="<?php echo htmlspecialchars($page['featured_image']); ?>" alt="<?php echo htmlspecialchars($page['title']); ?>" class="landing-image">
                            <?php else: ?>
                                <img src="/assets/img/landing-placeholder.jpg" alt="<?php echo htmlspecialchars($page['title']); ?>" class="landing-image">
                            <?php endif; ?>
                            
                            <div class="landing-overlay">
                                <h3 class="landing-title"><?php echo htmlspecialchars($page['title']); ?></h3>
                                <p class="landing-description">
                                    <?php echo substr(htmlspecialchars($page['excerpt'] ?? ''), 0, 80); ?>...
                                </p>
                                <div class="landing-meta">
                                    <span class="landing-author">
                                        <i class="fas fa-user"></i> 
                                        <?php 
                                            // Obtener el autor
                                            $autor = getAutorCurso($page['author_id'] ?? null);
                                            echo htmlspecialchars($autor);
                                        ?>
                                    </span>
                                    <span class="landing-date">
                                        <i class="fas fa-calendar-alt"></i> 
                                        <?php 
                                            $date = new DateTime($page['created_at']);
                                            echo $date->format('d/m/Y');
                                        ?>
                                    </span>
                                </div>
                            </div>
                        </a>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>
    </div>
</section>

<!-- CTA Section -->
<section class="cta-section">
    <div class="container">
        <h2 class="cta-title">¿No encuentras lo que buscas?</h2>
        <p class="cta-text">
            Regularmente añadimos nuevos cursos a nuestra plataforma. Únete a nuestra comunidad para ser el primero en conocer las novedades.
        </p>
        <a href="https://chat.whatsapp.com/LdHGlsh02XXBt9alIK8ZD5" class="cta-button" target="_blank">
            <i class="fab fa-whatsapp me-2"></i> Únete a nuestra comunidad en WhatsApp
        </a>
    </div>
</section>

<!-- Estilos específicos para la página de cursos -->
<style>
    :root {
        --primary-color: #4F46E5;
        --secondary-color: #7C3AED;
        --accent-color: #EC4899;
        --dark-color: #1F2937;
        --light-color: #F8FAFC;
        --text-color: #1F2937;
        --border-color: #E5E7EB;
        --success-color: #10B981;
        --gradient: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    }
    
    .cursos-hero {
        background: var(--gradient);
        padding: 4rem 0;
        color: white;
        text-align: center;
    }
    
    .cursos-title {
        font-size: 2.5rem;
        font-weight: 700;
        margin-bottom: 1rem;
    }
    
    .cursos-description {
        font-size: 1.1rem;
        max-width: 800px;
        margin: 0 auto 2rem;
        opacity: 0.9;
    }
    
    .search-box {
        max-width: 600px;
        margin: 0 auto;
    }
    
    .search-input {
        border-radius: 30px;
        padding: 0.75rem 1.5rem;
        border: none;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    }
    
    .btn-search {
        border-radius: 0 30px 30px 0;
        background: white;
        color: var(--primary-color);
        border: none;
        padding: 0.75rem 1.5rem;
    }
    
    .cursos-section {
        padding: 4rem 0;
        background-color: #f9fafb;
        min-height: 400px;
    }
    
    .cursos-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 2rem;
        flex-wrap: wrap;
    }
    
    .section-title {
        font-size: 1.75rem;
        font-weight: 700;
        margin-bottom: 0;
    }
    
    .results-count {
        color: #6B7280;
        font-weight: 500;
    }
    
    /* Utilizar los mismos estilos que index.php para las landing cards */
    .landing-card {
        position: relative;
        border-radius: 1rem;
        overflow: hidden;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
        margin-bottom: 2rem;
        transition: all 0.3s ease;
        height: 300px;
        display: block;
        text-decoration: none;
    }
    
    .landing-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
    }
    
    .landing-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .landing-overlay {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
        padding: 2rem 1.5rem;
        color: white;
    }
    
    .landing-title {
        font-size: 1.5rem;
        font-weight: 700;
        margin-bottom: 0.5rem;
        color: white;
    }
    
    .landing-description {
        color: rgba(255, 255, 255, 0.9);
        font-size: 0.9rem;
        margin-bottom: 0.75rem;
    }
    
    .landing-meta {
        display: flex;
        justify-content: space-between;
        font-size: 0.8rem;
        color: rgba(255, 255, 255, 0.8);
    }
    
    .landing-author, .landing-date {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
    
    .landing-author i, .landing-date i {
        font-size: 0.9rem;
    }
    
    .no-results {
        text-align: center;
        padding: 3rem 1rem;
    }
    
    .no-results-img {
        max-width: 200px;
        margin-bottom: 2rem;
    }
    
    .no-results h3 {
        font-weight: 600;
        margin-bottom: 1rem;
    }
    
    .no-results p {
        color: #6B7280;
        margin-bottom: 1.5rem;
    }
    
    .cta-section {
        padding: 5rem 0;
        background: var(--gradient);
        color: white;
        text-align: center;
    }
    
    .cta-title {
        font-size: 2rem;
        font-weight: 700;
        margin-bottom: 1.5rem;
    }
    
    .cta-text {
        font-size: 1.1rem;
        max-width: 700px;
        margin: 0 auto 2rem;
        opacity: 0.9;
    }
    
    .cta-button {
        display: inline-block;
        background: white;
        color: var(--primary-color);
        font-weight: 600;
        padding: 1rem 2rem;
        border-radius: 0.5rem;
        text-decoration: none;
        transition: all 0.3s ease;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    }
    
    .cta-button:hover {
        transform: translateY(-3px);
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
        color: var(--primary-color);
    }
    
    @media (max-width: 768px) {
        .cursos-title {
            font-size: 2rem;
        }
        
        .cursos-header {
            flex-direction: column;
            align-items: flex-start;
            gap: 0.5rem;
        }
        
        .landing-title {
            font-size: 1.2rem;
        }
        
        .landing-meta {
            flex-direction: column;
            gap: 0.5rem;
        }
    }
</style>

<?php
// Define variables personalizadas para el footer
$customScripts = ['/assets/js/cursos.js'];

// Incluye el footer
require_once 'includes/footer.php';
?>