diff --git a/CONTEXT.md b/CONTEXT.md new file mode 100644 index 0000000..ad18fab --- /dev/null +++ b/CONTEXT.md @@ -0,0 +1,138 @@ +# Contexto del Proyecto: CNT Sindikatua + +## ¿Qué es? +Tema de WordPress para el sitio web del sindicato **CNT** (Confederación Nacional del Trabajo) del País Vasco. Basado en el **Timber Starter Theme** con **Twig** como motor de plantillas. + +## Stack Tecnológico + +| Componente | Tecnología | +|---|---| +| **CMS** | WordPress | +| **Tema base** | Timber Starter Theme (v2) | +| **Motor de plantillas** | Twig (PHP) | +| **Frontend** | Bootstrap 5.3, Bootstrap Icons | +| **Fuente** | Yaro (custom) | +| **PHP** | Composer, PSR-4 autoloading | +| **Post Types** | `post` (noticias, campaña, conflictos laborales), `opinion`, `videos`, `documento` | +| **Plugins clave** | Polylang (multilenguaje ES/EU), ACF (Advanced Custom Fields), Contact Form 7, Routes | + +## Idiomas +Soporte **bilingüe**: Español (`/es`) y Euskera (`/eu`) mediante **Polylang**. + +## Estructura del tema + +``` +cnt-sindikatua/ +├── assets/ # CSS, JS, fuentes, imágenes +│ ├── fonts/yaro-font-family/ +│ ├── scripts/site.js +│ └── styles/ +├── src/ # Clases PHP (autoload PSR-4) +│ ├── StarterSite.php -> Clase principal del tema +│ ├── Comments.php -> Desactiva comentarios globalmente +│ └── SMTP.php -> Configuración de correo SMTP +├── views/ # Plantillas Twig +│ ├── layouts/base.twig -> Layout base (HTML, header, footer) +│ ├── partials/ -> Componentes reutilizables +│ └── templates/ -> Plantillas por página/taxonomía +├── functions.php -> Punto de entrada, inicializa todo +├── style.css -> Estilos + metadatos del tema +└── template-portada.php -> Template especial para portada +``` + +## Funcionalidades principales + +### 1. Portada dinámica +`template-portada.php` con contexto que incluye: +- Últimas noticias (`getLastsPostsNews`) +- Último artículo de opinión (`getLastPostOpinion`) +- Último post de campaña (`getLastPostCampana`) +- Último post de conflictos laborales (`getLastPostConflicts`) +- Botones de enlaces con imagen (`getBotonesEnlaces`) +- Slider de videos (`getVideosSlider`) + +### 2. Archivos personalizados con rutas (Routes) +Rutas definidas en `functions.php` con `upstatement/routes`: + +| Ruta ES | Ruta EU | Archivo PHP | +|---|---|---| +| `/es/noticias` | `/eu/berriak` | `archive-noticias.php` | +| `/es/noticias/conflictos-laborales` | `/eu/berriak/lan-gatazkak` | `archive-conflictos-laborales.php` | +| `/es/documentos` | `/eu/dokumentuak` | `archive-documentos.php` | + +Todas con soporte de paginación (`/page/:paged`). + +### 3. Páginas especiales +Cada una con su template Twig correspondiente: +- Acerca de CNT / CNT-ri buruz +- Afiliación / Afiliazioa +- Contactos / Kontaktua (con formulario CF7) +- Servicios / Zerbitzuak +- Industria +- Enlaces / Loturak +- Noticias / Berriak +- Opinión / Iritzia +- Videos / Bideoak +- Documentos / Dokumentuak +- Aviso Legal, Política de Privacidad, Política de Cookies + +### 4. Videos +- Custom post type `videos` +- Reproductor modal con iframe (YouTube/Vimeo) +- Slider en portada +- Embed generado automáticamente con `generar_embed_universal()` +- Script en `site.js` maneja apertura/cierre del modal (autoplay al abrir, stop al cerrar) + +### 5. Opinión +- Custom post type `opinion` +- Archive propio con paginación +- Sección destacada en portada + +### 6. SMTP +- Clase `SMTP.php` que configura `phpmailer_init` +- Configuración desde opciones de ACF (host, puerto, seguridad, credenciales, remitente) +- Almacenado como opciones de WordPress (`options_smtp_*`) + +### 7. Comentarios +- Totalmente desactivados en todo el sitio mediante `Comments.php` +- Oculta menú de comentarios en admin, redirige acceso directo, elimina soporte en post types + +### 8. Redes sociales +- Configurables desde ACF (opciones del tema) +- Hasta 4 iconos con imagen y URL +- Estilo SVG blanco en footer con efecto hover + +### 9. Búsqueda +- Excluye páginas marcadas con ACF `exclude_from_search` +- Filtro en `pre_get_posts` + +### 10. Header y Footer +- **Header**: Top bar (idiomas), logos configurables (ACF), menú principal con dropdown, menú hamburguesa (offcanvas) +- **Footer**: Logos, textos configurables, últimas noticias, último artículo de opinión, redes sociales, enlaces, listado de sedes + +### 11. Paginación +- Estilos personalizados con las clases CSS del tema +- Varios partials: `pagination.twig`, `pagination-custom.twig`, `pagination-custom-pages.twig` + +## Identidad visual +- **Color principal**: Rojo CNT (`--rojo-cnt: #dc2d30`) +- **Colores secundarios**: `--rojo-cnt-dark: #9d1b1d`, `--rojo-cnt-light: #d6453f` +- **Tipografía titular**: Yaro (YaroSt-Black) para headings y títulos especiales +- **Soporte SVG** en subidas de medios mediante filtro `upload_mimes` + +## Scripts JS +- `site.js`: Maneja el modal de videos (autoplay al abrir, stop al cerrar) +- Bootstrap JS: Menús, offcanvas, modals +- Dependencias cargadas desde `vendor/` via Composer + +## Migración +- Proyecto migrado desde **Joomla** a WordPress +- `MIGRATION.md` contiene instrucciones para limpieza de BBDD (tablas con prefijos legacy: `d8yd3_`, `bak_`, `gdkw3_`, `qwe9g_`) +- Categorías limpiadas durante migración: Blog, News, Review, tutorial, updates, Joomla!, Uncategorised, Helbideak, Service +- Categorías mantenidas: Berriak/noticias, Albisteak/noticias, Lan gatazkak/conflictos laborales, Industria, Acerca de CNT + +## Notas de desarrollo +- Versión de assets cacheada con `time()` para evitar caché del navegador en desarrollo +- Antiguo intento de reescritura de reglas para search pagination comentado en `StarterSite.php` +- Función `pll_current_language()` para integración ACF + Polylang +- Hook en CF7 para añadir título de página como campo oculto en formularios