Re-procesa los 724 avatares col_*.png (imágenes horizontales con foto+texto)
recortándolos cuadrados centrados en la cara antes de mostrarlos como avatar
circular. Resuelve la queja del #39 sobre las fotos "stretcheadas".
- face_crop_avatar.py: Haar cascade frontal+profile, padding 0.6×, fallback
inteligente para imágenes horizontales (recorta lado izquierdo), reduce
side cuando padding no cabe (no invade lado del texto)
- regen_avatars.php: borra thumbnails viejos + regenera con la nueva imagen
para todos los attachments de uploads/autores/joomla/
Resultado: 100 caras detectadas + 624 fallbacks (mayoría placeholders sin
foto real) + 0 fail. Attachment IDs preservados.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Usado para resolver issue #39 — 736 avatares de autor importados desde
joomla-php83/images/quienes_somos/col_*.png. Crea attachments WP con
wp_insert_attachment + wp_generate_attachment_metadata y asigna foto_perfil
a cada user_id según matching exacto (login==slug) o strong (login es token).
Preserva foto_perfil ya asignado. TSV de entrada esperado en
/tmp/avatar_assignments.tsv con columnas: aid, login, posts, source, filename.
Ficheros pre-copiados a uploads/autores/joomla/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- scripts/fix_image_paths.php: reescribe src/href "images/..." en wp_posts
a "/fea/wp-content/uploads/..." cuando el fichero existe en uploads.
Cubre comillas dobles/simples, urldecode antes de chequear filesystem.
Resuelto contra issue #34 (458 posts, 465 refs) y completado con #36
(124 posts, 128 refs tras recuperar 127 assets del backup producción).
- tools/e2e/: pipeline 3-tier para validar WP local con coste mínimo en
tokens de Claude — Playwright (Tier 1, deterministas) + Gemma 4 vision
en LM Studio (Tier 2, bajo demanda) + Claude solo lee report.md.
Issue de diseño #37, suite inicial en sites/feadulta.json (13 URLs).
- .gitignore: excluir tools/e2e/node_modules y out/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- fea-homepage.php: nuevo shortcode [fea_prefooter] — 3 columnas (Ediciones |
Noticias de alcance | Publicidad) sobre el footer. Imagen noticias_2025.jpg
apunta a wp-content/uploads/recursos/ (fix ruta Joomla rota). Columna central
y vídeo de la semana son dinámicos (último post de las categorías respectivas).
- scripts/import_new_k2_items.py: importa 169 K2 items nuevos (id > 17873)
- scripts/fix_imported_k2_metas.py: asigna metas/cats/Polylang a esos 169 posts
- scripts/import_new_cartas.py: importa 8 cartas nuevas (ew4r_content id > 9043,
catid 27/40/41) y asigna _carta_id a los artículos K2 por fecha
- scripts/import_new_content.py: importa 58 ítems ew4r_content no-carta
(multimedia, noticias, tablón, etc.) con mapping catid→WP term
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Incluye: mu-plugins custom (fea-homepage, carta-semana), scripts de
migración/traducción/deploy, documentación de auditoría, análisis de
cartas y HTML de evangelios exportados desde Joomla.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>