add context
This commit is contained in:
+138
@@ -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
|
||||
Reference in New Issue
Block a user