# Changelog

## 2026-04-18 - Revisió final de consistència per a lliurament

### Auditoria tècnica
- Verificada de nou la sintaxi dels fitxers PHP del projecte principal i de les integracions CMS abans del lliurament.
- Comprovada la consistència entre el codi font de les extensions WordPress/Joomla i les còpies desplegades al servidor.
- Revisats els endpoints públics principals del projecte, de la documentació i de les tres integracions CMS.

### Ajustos finals
- Eliminades dependències de domini hardcodejat a la portada principal: els accessos CMS ara deriven la base pública a partir de `APP_URL`.
- Ajustat `scripts/publicar_documentacio.py` perquè les còpies locals del manual PDF i DOCX es publiquin a `/root/documentacion/`, en coherència amb l'organització actual del servidor.

### Documentació
- Revisada la documentació principal i els manuals per confirmar que continuen alineats amb la versió `1.1.2`, les URLs públiques actives i les funcionalitats reals de WordPress, MediaWiki i Joomla.

## 2026-04-16 - Auditoria exhaustiva i alineació global

### Anàlisi i verificació
- Revisat el projecte complet: aplicació principal, documentació web, manuals derivats i integracions de WordPress, MediaWiki i Joomla.
- Verificada la sintaxi dels fitxers PHP del projecte i comprovada la disponibilitat pública de l'aplicació, `documentacio.php`, manuals PDF/DOCX i extensions CMS desplegades.
- Detectades i corregides desalineacions de metadades entre la versió global del projecte, els paquets CMS i els XML generats per les integracions.

### Versions i traçabilitat
- Normalitzada la versió global del projecte a `1.1.2` a `config.php`, al manual d'usuari i a la documentació principal.
- Actualitzats els manifests del component Joomla a `1.1.2` per alinear el paquet instal·lable amb l'estat actual del projecte.
- Actualitzats els generadors XML de WordPress i MediaWiki perquè marquin els nous fitxers amb metadada `versio="1.1.2"`.
- Actualitzat també el fitxer XML de dades de MediaWiki per eliminar la deriva que encara mostrava `1.0.0`.

### Documentació
- Afinada la secció de WordPress de `documentacio.php` per reflectir que el frontend actual es mostra en amplada ampla i amb capçalera centrada.
- Afinada la secció de Joomla de `documentacio.php` per reflectir el redisseny visual propi de la vista pública.
- Regenerades les versions derivades del manual perquè wiki, PDF i DOCX tornin a quedar alineats amb la font Markdown actual.

## 2026-04-16 - Ampliació funcional de l'extensió WordPress

### Funcionalitat i UX
- Afegit un diagnòstic complet de fonts a `Gestió Monedes WP` per mostrar l'estat de MariaDB, CSV i XML, la disponibilitat de lectura/escriptura i el nombre de registres detectats.
- Incorporats nous controls de consulta al shortcode frontend: selector de font, ordenació per nom/valor/any/actualització, límit visible i filtre per mostrar només monedes amb imatge.
- Redissenyats tant el frontend del shortcode com el panell d'administració amb capçalera resum, targetes de diagnòstic, ajuda contextual i vista prèvia molt més completa.
- Enriquides les targetes de resultat i de vista prèvia amb valor destacat, metadades, descripció i última actualització quan la font la proporciona.

### Documentació
- Actualitzada la secció de WordPress de `documentacio.php` per descriure el diagnòstic de fonts, els nous filtres i la nova estructura de la integració.
- Ampliats `wordpress-plugin/README.md` i `readme.txt` amb les noves funcionalitats del plugin.
- Actualitzada la font Markdown del manual d'usuari per reflectir la nova versió de la integració WordPress abans de republicar la documentació derivada.

## 2026-04-16 - Ampliació funcional de l'extensió MediaWiki

### Funcionalitat i UX
- Afegit un diagnòstic complet de fonts a `Especial:GestioMonedes` per mostrar l'estat de MariaDB, CSV i XML, la disponibilitat de lectura/escriptura i el nombre de registres detectats.
- Incorporats nous controls de consulta a la pàgina especial: ordenació per nom/valor/any/actualització, límit visible i filtre per mostrar només monedes amb imatge.
- Reestructurat el resum superior perquè indiqui fonts operatives, registres visibles i volum total de la font seleccionada.
- Afegit un bloc d'ajuda contextual al formulari d'inserció per aclarir validació de camps, ús d'imatges i creació automàtica de fitxers CSV/XML.
- Enriquides les targetes de resultat amb metadada d'última actualització quan la font la proporciona.

### Documentació
- Actualitzada la secció de MediaWiki de `documentacio.php` per descriure el diagnòstic de fonts, els nous filtres i la nova estructura de la pàgina especial.
- Ampliat el `README.md` de l'extensió MediaWiki amb els nous punts forts funcionals i visuals.
- Actualitzada la font Markdown del manual d'usuari per reflectir la nova versió de la integració MediaWiki abans de republicar la documentació derivada.

## 2026-04-16 - Millora general de l'extensió MediaWiki

### Interfície i experiència d'ús
- Redissenyada la pàgina especial `Especial:GestioMonedes` amb una capçalera introductòria, panell resum, formulari de consulta més clar i un bloc d'inserció separat.
- Afegides mètriques contextuals per mostrar la font activa, el nombre de resultats i el total de països detectats.
- Visualització dels filtres actius en forma de pastilles per facilitar la interpretació de la cerca actual.
- Reestructurades les targetes de resultats amb imatge, valor destacat, país, any, identificador i descripció en un format més compacte i homogeni.
- Millorat l'estat buit de la pàgina especial quan no hi ha monedes disponibles o la cerca no retorna coincidències.
- Revisada la maquetació responsive de l'extensió perquè la vista funcioni correctament tant en escriptori com en mòbil.

### Documentació
- Actualitzada la secció de MediaWiki de `documentacio.php` per descriure la nova interfície, els blocs visuals i la validació dels requisits.
- Ampliat el `README.md` de l'extensió MediaWiki amb les noves funcionalitats, estructura i configuració.
- Actualitzada la font Markdown del manual d'usuari per reflectir la renovació de la integració MediaWiki abans de regenerar les versions wiki, PDF i DOCX.

## 2026-04-16 - Auditoria final de consistència

### Ajustos de documentació i responsive
- Corregit el comportament mòbil de `documentacio.php` perquè els diagrames Mermaid s'escalin al contenidor sense desbordar-se visualment.
- Ajustats els blocs de codi de `documentacio.php` i `importar_exportar.php` perquè facin salt de línia en pantalles estretes.
- Millorat el panell lateral de l'índex de documentació perquè quedi fixat durant l'scroll i amb desplaçament intern propi.

### Integració Joomla
- Redissenyada la vista pública del component `com_gestiomonedes` per donar-li una identitat visual pròpia i coherent amb la resta del projecte.
- Forçada la càrrega directa del CSS públic del component per evitar que la vista es renderitzés sense estils.
- Eliminat el soroll visual de Cassiopeia en aquesta vista: sidebar lateral oculta, amplada centrada i capçalera adaptada a l'extensió.
- Reorganitzats els blocs de capçalera, filtres i resultats amb targetes, mètriques ràpides i estat buit més presentable.
- Corregit el desbordament horitzontal en mòbil provocat per la retícula base de Joomla i pel text de marca del capçal.

### Consistència d'enllaços
- Unificada la referència pública de l'extensió MediaWiki a `Especial:GestioMonedes` dins de la documentació web, la pàgina d'importació/exportació i els fitxers documentals del projecte.

### Recursos públics
- Afegit un `favicon.ico` a la rel pública del domini per eliminar el `404` que apareixia en integracions com MediaWiki durant la revisió amb navegador.

## 2026-04-16 - Resincronització i republicació documental

### Documentació i publicació
- Revisada la documentació pública de `gestio_monedes` per unificar continguts entre la web tècnica, el manual en Markdown, la versió MediaWiki, el PDF i el DOCX.
- Corregida la portada de `documentacio.php` perquè presenti de manera coherent els enllaços al manual web, wiki, PDF i DOCX.
- Regenerats i republicats `manual_usuari_gestio_monedes.pdf` i `manual_usuari_gestio_monedes.docx`.
- Republicada la pàgina `Manual d'usuari de Gestió Monedes` a MediaWiki a partir de la font actual del manual.
- Afegida també la còpia local del manual PDF a `/root/manual_usuari_gestio_monedes.pdf` per mantenir la mateixa traça que ja existia amb el DOCX.

### Rutes i consistència
- Ampliat `scripts/sincronitzar_rutes_documentals.py` perquè també resincronitzi la ruta pública del manual en format DOCX.
- Verificat que els manuals i la documentació tècnica comparteixin les mateixes URLs públiques per a l'aplicació, la wiki, el PDF i el DOCX.

### Diagrames i renderització visual
- Eliminada la doble càrrega de Mermaid a `documentacio.php`, que podia degradar la renderització dels diagrames.
- Reforçat el carregador global de Mermaid a `views/footer.php` perquè només inicialitzi una vegada i reutilitzi el recurs local del projecte.
- Ajustats els estils de `.mermaid-container` a `assets/css/estils.css` per millorar la llegibilitat, l'espaiat i el comportament en pantalles estretes.
- Revisada en profunditat la maquetació responsive del projecte: portada principal, documentació, formularis i import/export.
- Corregits desbordaments de textos i contenidors amb ajustos a `grid`, `flex`, `min-width`, `table-layout` i salts de línia.
- Reestructurada la capçalera mòbil perquè la navegació continuï sent visible i usable sense quadrats buits ni talls de text.
- Ajustat el bloc d'accions ràpides de `documentacio.php` perquè no trenqui paraules de forma agressiva en pantalles petites.

## 2026-04-14 - Revisió general i millores

### Configuració i desplegament
- `config.php` ara admet variables d'entorn `GESTIO_MONEDES_*`.
- `config.php` ara també admet un fitxer privat `/etc/gestio_monedes/config.local.php` per desacoblar credencials i valors sensibles del codi del projecte.
- `APP_URL` es detecta automàticament a partir de l'entorn HTTP i es pot sobreescriure.
- `APP_DEBUG` controla la visualització d'errors en producció.
- La sessió s'inicialitza amb cookies `HttpOnly`, `SameSite=Lax` i `Secure` quan toca.

### Base de dades
- La connexió PDO intenta entrar directament a la BD existent abans de caure al mode de creació automàtica.
- El projecte queda preparat per treballar amb un usuari dedicat de MariaDB.

### CRUD i formularis
- Eliminat l'ús d'`extract()` al controlador principal.
- Millorada la validació de dades: anys fora de rang, descripcions massa llargues i valors numèrics amb coma decimal.
- Corregit el problema d'imatges òrfenes quan una pujada acabava en error de validació o d'escriptura.
- Ara es pot eliminar la imatge actual des del formulari d'edició.
- El formulari mostra el límit real de pujada configurat.

### Imatges i seguretat
- Validació d'imatges amb `finfo(FILEINFO_MIME_TYPE)` i `getimagesize()`.
- Les URLs d'imatges usen `rawurlencode()` per evitar problemes amb noms de fitxer.
- `uploads/.htaccess` reforçat per bloquejar execució de scripts i afegir `nosniff`.
- Si `uploads/` es crea en calent, el projecte intenta deixar-hi una protecció mínima.

### Importació i exportació
- Exportacions XML i CSV protegides amb CSRF i servides via `POST`.
- Importació XML reforçada amb `DOMDocument`, `LIBXML_NONET` i validació d'estructura.
- Importació CSV reforçada amb validació de capçalera, mida, extensió i MIME.
- Es reporten millor les files XML/CSV descartades per falta de camps obligatoris.
- La importació XML/CSV ja conserva també el camp `imatge` quan el fitxer l'inclou.

### Interfície
- Drag & drop real al formulari d'imatges.
- Previsualització d'imatges unificada al JS global.
- El llistat reutilitza una sola instància de `GestorImatge` per renderitzar les targetes.
- Redisseny global del tema cap a una interfície més clara, amb millor contrast i menys dependència d'estils inline.
- Netejades les referències a variables CSS antigues a les vistes principals (`llistat`, `formulari`, `detall`, `footer`, `import/export`).

### Documentació
- `documentacio.php` actualitzada amb entorn actual, millores aplicades i noves instruccions de desplegament.
- Afegit aquest `CHANGELOG.md` per deixar traça dels canvis tècnics.
- Refeta la presentació de la documentació: llistes amb marques visibles, millor espaiat, taules més netes i blocs de codi més llegibles.
- Afegida una descripció formal del projecte i del seu propòsit dins de la documentació principal.
- Afegits diagrames específics de propòsit i de fases de planificació.
- Creat el manual d'usuari en font Markdown, versió PDF i versió wiki a MediaWiki.
- Enllaçada la portada de MediaWiki amb el manual wiki i amb el manual PDF de `Gestió Monedes`.
- Reformat complet del manual PDF amb portada, índex visual, enllaços ràpids i hipervincles correctes cap a la wiki.
- Ampliada la pàgina wiki del manual perquè sigui més completa i navegable.
- Normalitzades les rutes documentals i del manual PDF perquè derivin de `APP_URL` i es puguin resincronitzar amb l'script `scripts/sincronitzar_rutes_documentals.py`.

### Extensió WordPress
- Creat el paquet `wordpress-plugin/gestio-monedes-wp` com a extensió instal·lable per a WordPress.
- Implementada una capa `GMWP_Source_Manager` per llegir i inserir dades a MariaDB, CSV i XML.
- Afegit un panell d'administració propi per configurar la font de dades, veure una previsualització i inserir noves monedes.
- Afegit el shortcode `[gestio_monedes_llistat]` per publicar el catàleg al frontend de WordPress amb filtres de cerca.
- Implementada la resolució i visualització d'imatges de les monedes al frontend i a la previsualització d'administració.
- Afegit `readme.txt` i `README.md` específics del plugin i preparada la generació del ZIP instal·lable.
- El plugin deixa d'emportar-se credencials MariaDB fixades al codi i pot reutilitzar la configuració privada del desplegament.

### Extensió MediaWiki
- Creada l'extensió `GestioMonedes` com a pàgina especial de MediaWiki.
- Implementada una capa `GestioMonedesSourceManager` per llegir i inserir monedes a MariaDB, CSV i XML.
- Afegida la pàgina especial `Special:GestioMonedes` amb filtres, resultats visualment maquetats i formulari d'inserció.
- Integrada la resolució d'imatges de les monedes dins de la wiki.
- Carregada l'extensió a `LocalSettings.php` i documentada dins de `documentacio.php`.

### Extensió Joomla
- Instal·lada una instància Joomla real a `https://fmehmood.cat/joomla/`.
- Creat el component `com_gestiomonedes` com a extensió instal·lable de Joomla.
- Implementada la capa `SourceManager` per llegir i inserir dades a MariaDB, CSV i XML.
- Afegit un frontend públic amb filtres i targetes de moneda amb imatge.
- Afegit un backend d'administració amb configuració efectiva, formulari d'inserció i vista prèvia amb miniatures.
- Creat un element del menú principal de Joomla per exposar el catàleg a una URL pública real.
- Afegides fonts de dades pròpies de Joomla a `data/monedes_joomla.csv` i `data/monedes_joomla.xml`.
- Actualitzada la documentació principal del projecte per incloure la integració Joomla.
