add context

This commit is contained in:
2026-05-07 13:34:36 +00:00
parent 3e561184c2
commit f51a236044
+138
View File
@@ -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