v1.1.12-beta (28/05/2026 - Card ponte 1.1.x -> 1.2.x): Chiusura formale del ciclo 1.1.x con riallineamento documentale. Confermato che le implementazioni tecniche delle versioni
v1.1.11-beta (21/05/2026 - Chiusura sessione giornaliera): Completata normalizzazione tipografica cross-file: rimozione duplicati font in
v1.1.10-beta (21/05/2026 - Sessione odierna): Consolidata la sessione semantica su menu/atom con analisi ON/OFF, hardening policy footer-aware in
v1.1.9-beta (20/05/2026 - In progress): Verifica font caricati e ottimizzazione asset runtime completate con esito conforme sul criterio C.SC.1.1 (nessun font errato rilevato dal validatore). Formalizzazione criterio C.SC.1.1 nel changelog operativo. Aggiornamento del documento
v1.1.8-beta (19/05/2026): Avvio nuova iterazione operativa con aggiornamento metadata autore nei file contesto, introduzione licenza GPLv2 + update server in
v1.1.7-beta (13/05/2026): Versione non avviata a livello operativo; registrata esclusivamente per allineamento metadata/versioning su
v1.1.6-beta (06-11/05/2026): Iterazione chiusa su ottimizzazione footer/breadcrumb con introduzione particella dati istituto, i18n dedicata, hardening CSS runtime e rivisitazione non funzionale dell'override del modulo breadcrumbs Joomla.
v1.1.5-beta (06/05/2026): Promozione metadata versione/data su
v1.1.4-beta (12-13/03/2026): Completamento operativo e hardening post-rilascio: allineamento colori/token runtime, fix definitivo finder (outline/focus/box-shadow), estensione normalizzazione sezioni
v1.1.3-beta (03/03/2026: Sessione di consolidamento operativo: Task 2 chiuso, Task 4 verificato come completato (sincronizzazione file/versioni) e checklist di chiusura release confermata.
v1.1.2-beta (24-25/02/2026): Sessione strutturata in 2 blocchi: 24/02 predisposizione operativa e 25/02 aggiornamento completo Task 2 (ottimizzazioni `com_finder` + particles), con fix dinamici bottoni/colore, allineamento finder-modale, aggiornamento versione particella e verifica sync/import chain.
v1.1.1-beta (23/02/2026): Ripresa milestone su attività non completate nella versione precedente. Confermata base tecnica di v1.1.0-beta (hero + i18n), con focus operativo su Task 2-4 rimasti aperti e preparazione sprint della prossima settimana.
v1.1.0-beta (17-18/02/2026): Task 1 completato in 2 fasi - Fase 1 (17/02): Hero section Bootstrap Italia per install templates (5 iterazioni: rimozione RocketTheme, fix contrasto light/dark, migrazione hero inline CSS, fix hover bottoni, no CDN conflicts). Fase 2 (18/02): Internazionalizzazione completa (5 costanti lingua it-IT/en-GB), bug fix critico hero non visualizzata (soluzione: caricamento lingua PHP + passaggio variabili), fix contrasto bottoni dark mode (!important), cleanup costanti obsolete. Task 2-4 pending
1.1.9/1.1.10/1.1.11 restano valide: la perdita ha riguardato esclusivamente il tracciamento versioning/metadata su templateDetails.xml e gantry/theme.yaml. Avviata transizione operativa al ramo 1.2.x.v1.1.11-beta (21/05/2026 - Chiusura sessione giornaliera): Completata normalizzazione tipografica cross-file: rimozione duplicati font in
gantry/theme.yaml, uniformita preset in gantry/presets.yaml (body/menu a 1rem) e allineamento blueprint admin in blueprints/styles/fonts.yaml con selezione guidata dei soli font canonici.v1.1.10-beta (21/05/2026 - Sessione odierna): Consolidata la sessione semantica su menu/atom con analisi ON/OFF, hardening policy footer-aware in
bootstrapitalia-semantic-audit.html.twig, semplificazione UI del blueprint atom (enabled + alert operativo), allineamento documentale e promozione del documento tecnico in .github/semantic-audit-compliance.md.v1.1.9-beta (20/05/2026 - In progress): Verifica font caricati e ottimizzazione asset runtime completate con esito conforme sul criterio C.SC.1.1 (nessun font errato rilevato dal validatore). Formalizzazione criterio C.SC.1.1 nel changelog operativo. Aggiornamento del documento
.github/joomla_override_conventions.md con lezioni apprese dall'audit override e inventario mod_breadcrumbs. Refactor breadcrumb con separazione reale tra layer layout e layer override Joomla, nuovo file scss/bootstrapitalia-joomla/_bi-breadcrumbs.scss con header standard e import dedicato nella chain Joomla. Rimane in pianificazione il solo blocco data-element.v1.1.8-beta (19/05/2026): Avvio nuova iterazione operativa con aggiornamento metadata autore nei file contesto, introduzione licenza GPLv2 + update server in
templateDetails.xml e creazione del documento .github/DISTRIBUTION-STRATEGY.md. Allineamento chirurgico di 7 override com_users a Joomla 5/6 (fallback legend, guard description, renderControlFields). Audit 21 file override + standardizzazione header uniformi. Rimozione 3 file identici a core.v1.1.7-beta (13/05/2026): Versione non avviata a livello operativo; registrata esclusivamente per allineamento metadata/versioning su
templateDetails.xml e gantry/theme.yaml.v1.1.6-beta (06-11/05/2026): Iterazione chiusa su ottimizzazione footer/breadcrumb con introduzione particella dati istituto, i18n dedicata, hardening CSS runtime e rivisitazione non funzionale dell'override del modulo breadcrumbs Joomla.
v1.1.5-beta (06/05/2026): Promozione metadata versione/data su
templateDetails.xml e gantry/theme.yaml, consolidamento pianificazione tecnica su footer/menu/install/about e verifiche concatenate per i prossimi task.v1.1.4-beta (12-13/03/2026): Completamento operativo e hardening post-rilascio: allineamento colori/token runtime, fix definitivo finder (outline/focus/box-shadow), estensione normalizzazione sezioni
_bi-* e particles, coerenza release/changelog confermata.v1.1.3-beta (03/03/2026: Sessione di consolidamento operativo: Task 2 chiuso, Task 4 verificato come completato (sincronizzazione file/versioni) e checklist di chiusura release confermata.
v1.1.2-beta (24-25/02/2026): Sessione strutturata in 2 blocchi: 24/02 predisposizione operativa e 25/02 aggiornamento completo Task 2 (ottimizzazioni `com_finder` + particles), con fix dinamici bottoni/colore, allineamento finder-modale, aggiornamento versione particella e verifica sync/import chain.
v1.1.1-beta (23/02/2026): Ripresa milestone su attività non completate nella versione precedente. Confermata base tecnica di v1.1.0-beta (hero + i18n), con focus operativo su Task 2-4 rimasti aperti e preparazione sprint della prossima settimana.
v1.1.0-beta (17-18/02/2026): Task 1 completato in 2 fasi - Fase 1 (17/02): Hero section Bootstrap Italia per install templates (5 iterazioni: rimozione RocketTheme, fix contrasto light/dark, migrazione hero inline CSS, fix hover bottoni, no CDN conflicts). Fase 2 (18/02): Internazionalizzazione completa (5 costanti lingua it-IT/en-GB), bug fix critico hero non visualizzata (soluzione: caricamento lingua PHP + passaggio variabili), fix contrasto bottoni dark mode (!important), cleanup costanti obsolete. Task 2-4 pending
Checklist obbligatoria di chiusura versione:
prima di chiudere o promuovere una release seguire
.github/versioning_closure.md
(versione/data, source of truth metadata, changelog index, link e case-sensitive).
Card ponte v1.1.12-beta - Chiusura ciclo 1.1.x e passaggio a 1.2.xv1.1.12-beta
28/05/2026
Nota di ricostruzione versioning: risultano persi due allineamenti di versionamento a livello metadata, ma non le implementazioni tecniche delle sessioni
1.1.9, 1.1.10 e 1.1.11.
L'anomalia ha impattato esclusivamente il tracciamento su templateDetails.xml e gantry/theme.yaml.
Status: completata. Definito il ponte di chiusura ramo
1.1.x e avviata la transizione operativa verso 1.2.x.
✅ Operazioni registrate oggi (28/05/2026)
- Riallineamento struttura documentale: consolidata la documentazione canonica in
.github/docs/con archivio storico in.github/docs/legacy/. - Pulizia root documentale: rimosso alias root non necessario di
instruction_v3; mantenuto.github/instruction.mdcome baseline storica immutabile. - Hardening governance: aggiornati i documenti di migrazione/freeze per esplicitare eccezioni, policy legacy e percorso canonico operativo.
- Deduplicazione legacy: rimossa la copia esatta
Gap_analysis_V3.mdda legacy, mantenendo il solo documento canonico.github/docs/06_analysis/01_gap_analysis_v3.md. - Governance Atom CDN conservativa: mantenuto il default
2.18.1negli atombootstrapitalia-cdnebootstrapitalia-icons; la migrazione BI3 richiede il riallineamento coordinato di classi, markup e riferimenti documentali prima di qualunque cambio di versione runtime. - Chiusura ciclo: formalizzata la fine del versionamento
1.1.xin questo changelog e apertura del prossimo ciclo su1.2.x.
Decisione operativa: da questo punto in avanti le nuove attivita vengono tracciate nel ramo di versione
1.2.x.
Sessione v1.1.11-beta - Normalizzazione Tipograficav1.1.11-beta
21/05/2026
Status: completata. Sessione giornaliera chiusa con allineamento tipografico su theme, preset e blueprint admin.
Nota retrospettiva (28/05/2026): nel ripristino storico sono risultati mancanti due allineamenti di versionamento/metadata, ma le modifiche funzionali di
1.1.9/1.1.10/1.1.11 non sono andate perse.
I disallineamenti hanno riguardato solo i punti di tracciamento in templateDetails.xml e gantry/presets.yaml.
🎯 Obiettivo Versione
- Rimuovere residui legacy: censire e valutare la permanenza della chiave
titillium-webquando e gia presente la famiglia canonicaTitillium Web. - Verificare coerenza naming Roboto Mono: controllare riferimenti tra
roboto-monoe forma leggibileRoboto Monoper evitare mismatch nei richiami. - Verificare coerenza naming Lora: controllare riferimenti tra
loraeLorain configurazioni e stili. - Confermare impatti runtime: validare che il naming finale non introduca regressioni su compilazione SCSS, rendering frontend e fallback font.
✅ Implementazioni registrate (21/05/2026)
- Pulizia definitiva chiavi font duplicate: in
gantry/theme.yamlrimossi i blocchi legacy duplicati (titillium-web,roboto-mono,lora) mantenendo solo le famiglie canonicheTitillium Web,Roboto MonoeLora. - Allineamento preset tipografici: in
gantry/presets.yamlconfermata uniformita su tutti i preset conbody-font/heading-font/menu-fontaTitillium Webebody-font-size/menu-font-sizea1rem. - Policy preset documentata: aggiunta nota operativa in testa a
gantry/presets.yamlper fissare i default e i casi d'uso specifici diLoraeRoboto Mono. - Uniformita blueprint admin: aggiornato
blueprints/styles/fonts.yamlcon guidance d'uso e campi convertiti aselect.selectcon opzioni canoniche bloccate (Titillium Web,Lora,Roboto Mono).
Follow-up consigliato: eseguire solo verifica visuale finale in frontend (tipografia headings/body/menu) dopo svuotamento cache Gantry/Joomla.
Sessione v1.1.10-beta - Consolidamento Semantic Auditv1.1.10-beta
21/05/2026
Status: sessione odierna completata. Consolidati hardening semantico, validazione comparativa e documentazione.
✅ Implementazioni registrate (21/05/2026)
- Analisi comparativa ON/OFF atom: eseguita verifica con cache pulita e ricompilazione asset; confermata differenza di comportamento tra marker menu server-side e fallback atom su criteri semantici policy.
- Hardening policy footer-aware: aggiornato
particles/bootstrapitalia-semantic-audit.html.twigper ricerca prioritaria privacy/accessibilita nel footer e fallback mirato in area footer nei casi assenti. - Data-element ricerca (oggi): confermata integrazione nella particella
particles/bootstrapitalia-modale-ricerca.html.twigdei markersearch-modal-button,search-modal-inputesearch-submitper allineamento ai gatherer di ricerca. - Data-element breadcrumb (ieri): tracciato il precedente inserimento del marker
breadcrumbinhtml/mod_breadcrumbs/default.php, mantenuto come base server-side stabile per la conformita semantica. - Semplificazione UI blueprint atom: ridotto
particles/bootstrapitalia-semantic-audit.yamla toggleenabled+ alert operativo per prevenire disattivazioni accidentali durante gli scan. - Allineamento documentale: documento tecnico rinominato/spostato in
.github/semantic-audit-compliance.mde aggiornato con esiti test, rischi, mitigazioni e soluzioni alternative valutate. - Changelog allineato: collegamento della card di sessione al documento tecnico in
.github.
Documento tecnico di sessione:
.github/semantic-audit-compliance.md
Planning v1.1.9-beta - Verifica Font e Ottimizzazione Assetv1.1.9-beta
20/05/2026
Status: in progress. Modulo font chiuso con esito conforme; resta aperta la sola implementazione dei
data-element.
🎯 Obiettivo Versione
- Override breadcrumbs aggiornato: aggiunto
data-element="breadcrumb"all’elemento<ol>per conformità ai requisiti Modello Comuni/Scuole e validatore automatico. Da ottimizzare/minimalizzare se la presenza della particella risulta non necessaria in produzione. - Verifica asset font: audit completo font caricati (percorsi, formati, CDN fallback).
- Ottimizzazione runtime: verificare caricamento font in produzione e performance baseline.
- Tracciamento issue: registrazione task urgenti per iterazione successiva.
⏳ Task In Progress
- Verifica font caricati: ispezione directory
fonts/e riferimenti CSS/SCSS.
📘 Criterio di conformita: C.SC.1.1 - Coerenza utilizzo font
- Requisito: headings (
h1-h6) e paragrafi (p) delle pagine in lingua italiana devono usare come defaultTitillium Web,LoraoRoboto Mono, con presenza deidata-elementprevisti dalla documentazione delle app di valutazione. - Verifica automatica: controllo dei selettori e dei
data-elementsu template/override per garantire che i font di default richiesti siano applicati all'interno di tutti gli heading e paragrafi analizzati. - Riferimenti: Requisiti e modalita di verifica - Scuole e Documentazione App di valutazione dell'adesione ai modelli.
Esito preliminare (19/05/2026): directory
fonts/ rilevata con 6 famiglie disponibili (lora, roboto_*, titillium_web). Nel workspace corrente non risultano al momento regole font-family leggibili nei sorgenti SCSS/CSS consultati: verifica definitiva da completare nella sessione operativa successiva sull'asset pipeline attiva del template.
Esito definitivo criterio C.SC.1.1 - Font (20/05/2026): superato. Nel report del validatore, per
https://iam.claudiorosselli.it/ risultano 0 elementi <h>/<p> con font errati e nessun font non conforme individuato.
Ambito residuo C.SC.1.1: rimane da completare esclusivamente la parte semantica sui
data-element richiesti dal validatore (service-type, overview, school-submenu, teaching-submenu, news-submenu, services-submenu, custom-submenu, school-locations, search-modal-button, search-modal-input).
Esito audit data-element (20/05/2026): i tentativi atom-only non hanno garantito il superamento dei gatherer headless del validatore; i log continuano a riportare assenza di
school-locations e timeout su selettori ricerca. Decisione operativa: passare al posizionamento server-side dei marker nei template/override reali, mantenendo l'Atom solo come supporto diagnostico/fallback.
✅ Implementazioni registrate (20/05/2026)
- Override locale particella menu Gantry: creato
particles/menu.html.twignel template per svincolare la semantica dal core Gantry (nucleus) e permettere gestione server-side dei markerdata-elementdirettamente nel rendering menu. - Marker menu server-side in Twig: introdotti nel rendering della particella menu i marker
menu,overview,school-locations,service-typee mappatura submenu (school-submenu,services-submenu,news-submenu,teaching-submenu, fallbackcustom-submenu). - Nuovo Atom di supporto semantico: introdotti
particles/bootstrapitalia-semantic-audit.yamleparticles/bootstrapitalia-semantic-audit.html.twigper applicare fallback non distruttivi aidata-elementrichiesti dal validatore, inclusa opzione di rendering statico minimo per crawler/headless. - Mappatura fallback data-element: coperti i marker
overview,school-submenu,services-submenu,news-submenu,teaching-submenu,custom-submenu,service-type,service-link,pager-link,search-modal-buttoneschool-locations; supportata anche mappatura manuale via selettori configurabili. - Riesecuzione audit e pivot strategico: validatore rieseguito piu volte con subset scuola completo; persistenza errori sui gatherer (
school-locations,search-modal-button,search-modal-input). Definita strategia definitiva: marker obbligatori da inserire nel markup server-side (override/template), Atom mantenuto come strumento ausiliario. - Consolidamento convenzioni override Joomla: aggiornato
.github/joomla_override_conventions.mdcon le lezioni apprese dall'audit del 19/05/2026, introducendo regola operativa obbligatoria (confronto, confronto, confronto), classificazioneTENERE / ELIMINARE, policy header uniformi e checklist di chiusura release. - Inventario override aggiornato: completato l'inventario attivo con
mod_breadcrumbse definita formalmente la distinzione tra layer sezione/layout e layer override Joomla. - Refactor architetturale breadcrumb: separata la responsabilita styling tra
scss/bootstrapitalia/_bi-breadcrumb.scss(solo sezione/layout) e layer modulo Joomla dedicato. - Normalizzazione naming SCSS override: rinominato il file modulo da
scss/bootstrapitalia-joomla/_breadcrumb.scssascss/bootstrapitalia-joomla/_bi-breadcrumbs.scss, allineandolo allo standard attivo dei file_bi-*. - Header metadata SCSS breadcrumb: aggiunto header descrittivo coerente con
_bi-finder.scsse_bi-user.scssper identificare chiaramente il file dedicato amod_breadcrumbs. - Import chain Joomla aggiornata: modificato
scss/bootstrapitalia-joomla.scsscon import esplicito dibootstrapitalia-joomla/bi-breadcrumbs, rendendo attivo il layer modulo dedicato nel flusso di compilazione Joomla. - Cleanup legacy breadcrumb: eliminato il precedente file
_breadcrumb.scssdopo migrazione completa delle regole utili e rimozione delle incongruenze legacy rispetto al markup moderno dell'overridehtml/mod_breadcrumbs/default.php.
Chiusura v1.1.8-beta - Audit Override e Standardizzazione Headerv1.1.8-beta
19/05/2026
Status: completata. Chiusa con riepilogo audit finale file override e standardizzazione header uniformi.
🎯 Obiettivo Versione
- Continuità operativa: avviare la nuova iterazione mantenendo coerenza con le baseline tecniche consolidate nella versione precedente.
- Tracciamento attività: usare questa card come riferimento unico per pianificazione e stato avanzamento dei prossimi task.
- Governance release: mantenere allineati metadata, changelog e checklist di chiusura versione.
✅ Implementazioni registrate (19/05/2026)
- Ottimizzazione metadata autore nei file contesto: allineamento intestazioni autore/documentazione nei file di ingresso template e componenti core di contesto (tra cui
component.php,index.php,error.php,offline.php,install.php,includes/theme.php). - Metadata distribuzione in
templateDetails.xml: confermata valorizzazione licenza con riferimento GPLv2 (<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2</license>) e aggiunta sezione update server (<updateservers>) verso il feed ufficiale del template. - Nuova documentazione distribuzione: creato il file
.github/DISTRIBUTION-STRATEGY.mdper formalizzare strategia di packaging/distribuzione e governance rilascio.
✅ Implementazioni registrate (19/05/2026) — sessione 2
- Allineamento override
com_usersa Joomla 5/6: applicati fix chirurgici su 7 file override seguendo strategia concordata (nessuna modifica alle classi CSS o al layout del template):html/com_users/reset/default.php: fallback titololabel → legend($fieldsetTitle), guard descrizione vuota, aggiuntorenderControlFields().html/com_users/reset/confirm.php: aggiunta guard descrizione (fallback erenderControlFields()già presenti).html/com_users/reset/complete.php: rifinitura guardtrim((string) $fieldset->description).html/com_users/remind/default.php: fallback$fieldsetTitle, aggiuntorenderControlFields().html/com_users/registration/default.php: fallback$fieldsetTitle, guard descrizione, aggiuntorenderControlFields().html/com_users/profile/edit.php: fallback$fieldsetTitle, guard descrizione, aggiunto<input type="hidden" name="option" value="com_users">nel submit (presente nel core, mancante nell'override).html/com_users/login/default_login.php: aggiuntorenderControlFields()dopoHTMLHelper::_('form.token'); le differenze strutturali (description dentro il form, classealert alert-info) sono personalizzazioni intenzionali mantenute.
- Rimozione override
html/layouts/joomla/system/message.php: il file era un residuo Gantry/Hydrogen per compatibilità Joomla 3 (meccanismoincludecondizionale al core per J4+, markup BS3 per J3). Non conteneva nessuna personalizzazione Bootstrap Italia reale. Eliminato: Joomla usa direttamente il proprio core layout, che è il comportamento corretto per un override che non ha nulla da sovrascrivere.
✅ Implementazioni registrate (19/05/2026) — sessione 3: Audit completo e standardizzazione header
- Audit sistematico file override PHP: condotta verifica completa di 21 file override in
html/com_finder/search/,html/com_users/login/,html/com_users/profile/,html/com_users/registration/,html/com_users/remind/,html/com_users/reset/,html/mod_breadcrumbs/mediante confronto sistematico riga-per-riga con file clone di Joomla 6.x (formato snapshot:*-20260519-HHMMSS.php). - Classificazione TENERE/ELIMINARE:
- TENERE (18 file): Tutti contenevano personalizzazioni reali Bootstrap Italia o logica Joomla 6.x specifica. Header aggiunti con anno 2009 (com_users) o 2021 (com_finder), autore Claudio Rosselli, percorso file, diciture standard (Override di / Joomla 6.x core).
- ELIMINARE (3 file): Rimossi (sia locale che remoto):
html/com_users/login/default.php(identico a core),html/com_users/profile/default.php(identico a core),html/com_users/registration/complete.php(wrong file — era reset/complete form, generato da backend override con view errata).
- Standardizzazione header uniformi: applicato formato coerente a tutti i 18 file TENERE. Header include: tag opening
<?php, commento author/year/file path, diciture standard (Override di [path] / Joomla 6.x core), dichiarazionidefinedsecurity, logic avvio. Risolti 5 header errati identificati nel controllo finale (wrong path reference, blank lines, URL impropri). - Verifiche finali SCSS: confermato
scss/bootstrapitalia/_bi-finder.scss(header 2026 presente) escss/bootstrapitalia/_bi-user.scss(header precedente validato) con tutte le classi custom in uso e nessun orfano.
Dettaglio audit breakdown:
com_finder/search/: 5 file TENERE (default.php, default_sorting.php, default_form.php, default_results.php, default_result.php)com_users/login/: 2 TENERE (default_login.php, default_logout.php) + 1 ELIMINARE (default.php)com_users/profile/: 4 TENERE (edit.php, default_params.php, default_custom.php, default_core.php) + 1 ELIMINARE (default.php)com_users/registration/: 1 TENERE (default.php) + 1 ELIMINARE (complete.php)com_users/remind/: 1 TENERE (default.php)com_users/reset/: 3 TENERE (default.php, confirm.php, complete.php)mod_breadcrumbs/: 1 TENERE (default.php)- Totale riassunto: 18 TENERE + 3 ELIMINARE (rimossi) = 21 file auditati
Nota informativa v1.1.7-beta - Allineamento Versioningv1.1.7-beta
13/05/2026
Status: informativa. Nessuna attività implementativa avviata in questa versione.
ℹ️ Dettaglio Registrazione
- Scopo: registrazione esclusiva del cambio versioning nei file metadata.
- Versione impostata:
<version>1.1.7-beta</version>. - Data impostata:
<creationDate>May 13, 2026</creationDate>. - Ambito: nessun task tecnico, nessuna modifica funzionale e nessun ciclo di sviluppo associato.
Chiusura v1.1.6-beta - Ottimizzazione Grafica Footer/Menuv1.1.6-beta
06-11/05/2026
Status: completata e archiviata. Chiusa dopo riallineamento delle implementazioni su footer/copyright e breadcrumb.
🎯 Obiettivo Versione
- Focus principale: ottimizzazione grafica del footer/menu in coerenza con la documentazione ufficiale Bootstrap Italia, replicando l'approccio già adottato con successo per navigation.
- Perimetro tecnico iniziale: revisione di
scss/bootstrapitalia/_bi-footer.scsse punti correlati di integrazione layout/particles. - Baseline progettuale footer: Bootstrap Italia - Menu di navigazione / Footer.
- Baseline progettuale breadcrumbs: Bootstrap Italia - Menu di navigazione / Breadcrumbs.
- Baseline progettuale header/navigation/menu: Bootstrap Italia - Menu di navigazione / Header.
📌 Requisiti Normativi Footer
- indirizzo, codice fiscale/partita IVA, contatti (compresa la posta elettronica certificata);
Nota operativa: i contenuti normativi saranno definiti nella fase di planning v1.1.6-beta e poi integrati nel footer finale in conformità alle linee guida ufficiali.
✅ Implementazioni registrate (07/05/2026)
- Particella copyright istituto: consolidata la particella
bootstrapitalia-copyright-istitutocon aggiornamenti su Twig/SCSS e import nel main entrypointscss/bootstrapitalia.scss. - I18n particella: aggiunte e collegate le chiavi lingua dedicate nei file
language/it-IT/it-IT.tpl_bootstrapitalia.inielanguage/en-GB/en-GB.tpl_bootstrapitalia.ini, con utilizzo|transnel Twig. - Fix output contatti: risolto il caso di rendering senza spazio dopo i due punti per email/PEC tramite spaziatura non separabile nel markup della particella.
- Hardening CSS runtime: aggiunto fallback mirato in
custom/css-compiled/custom.cssper garantire visibilita di separatori e linea centrale anche in assenza di compilazione SCSS completa. - Riordino dipendenze SCSS: riorganizzato
scss/bootstrapitalia.scssin blocchi logici (Foundation, Layout Sections, Shared Components & Helpers, Particles) per migliorare leggibilita e manutenzione. - Ottimizzazione breadcrumb sezione: aggiornato
scss/bootstrapitalia/_bi-breadcrumb.scsscon miglioramenti su stato attivo, separatori, focus, scorrimento orizzontale mobile e supporto al wrapper del modulo. - Override modulo Joomla: rivisitato l'override in
html/mod_breadcrumbs/default.phpin ottica markup/stile, mantenendo invariata la logica applicativa e aggiungendo la semantica del breadcrumb corrente.
✅ Implementazioni registrate (11/05/2026) — Tokenizzazione SCSS e pulizia configurazione
- Tokenizzazione completa hardcoded values: eliminati tutti i valori numerici hardcoded dai file di sezione e particella SCSS, sostituiti con token C3 centralizzati in
scss/configuration/_dimensions.scssescss/configuration/_z-index.scss. File coinvolti:_bi-header.scss,_bi-navigation.scss,_bi-menu.scss,_bi-dropdownanimations.scss,_bootstrapitalia-logo.scss,_bootstrapitalia-icone-link.scss,_bootstrapitalia-modale-ricerca.scss. - Nuovi token
_dimensions.scss: aggiunti token per Header Layout, Menu Dimensions (inclusi$menu-col-width,$menu-border-width,$menu-border-opacity-*), Logo, Socials e Search Modal (padding, border, opacity, scale, font-weight, letter-spacing, line-height). - Nuovi token
_z-index.scss: aggiunti$z-local-content: 1,$z-local-background: -1per stacking context locale dei componenti; aggiunto alias$search-modal-overlay-z-indexpuntante a$z-modal. - Rimozione dead code
scss/mixins/_nav.scss: eliminati il placeholder%dropdown-columne il mixinmain-nav-colors, entrambi privi di utilizzo nel progetto. Mantenutomain-nav-indicatorsancora in uso in_bi-menu.scss. - Eliminazione
scss/configuration/_nav.scss: file contenente solo$menu-col-width, token spostato in_dimensions.scss(sezione Menu Dimensions); rimosso l'@import "nav"dascss/configuration/_base.scss. - Fix regressione
$search-modal-overlay-z-index: variabile rimossa da_dimensions.scsssenza essere definita in_z-index.scss; risolto aggiungendo l'alias nel file corretto. - Fix YAML
bootstrapitalia-icone-link.yaml: aggiunto campotextmancante sottoicone.items; default impostato a stringa vuota per delegare la traduzione al fallback|transnel Twig.
Nota backup: a seguito di ripristino manuale, questa sezione traccia lo stato realmente presente nel workspace al 07/05/2026.
✅ Implementazioni registrate (11/05/2026 - Sessione 2) — Tokenizzazione footer/copyright/top/offcanvas
- Tokenizzazione footer/copyright/istituto: eliminati 8 hardcoded da
_bi-footer.scss,_bi-copyright.scsse_bootstrapitalia-copyright-istituto.scss. Nuovi token introdotti:$istituto-font-size,$istituto-divider-border-width,$istituto-divider-border-opacity,$istituto-mobile-font-size; sostituite due istanze dioutline: 2px / outline-offset: 2pxcon$focus-outline-width/$focus-outline-offset. - Tokenizzazione systemmessages: sostituito
font-size: 1.25remcon nuovo token$systemmessages-close-button-font-sizenel pulsante chiusura joomla-alert. - Tokenizzazione top menu: nuovi token
$top-menu-parent-indicator-margin-left(5px) e$top-menu-parent-indicator-top(9px) aggiunti a_dimensions.scss; sostituite due istanze dioutline: 2px/outline-offset: 2pxcon token focus globali; sostituitofont-weight: 400con$font-weight-regular. - Offcanvas-toggle mobile-critical SKIP: mantenuti intatti
width: 44px; height: 44px, margini mobile0.75rem/1rem, etop: 1.7remin offcanvas-right — questi valori sono ottimizzati chirurgicamente per il layout mobile e non vanno modificati. Token$focus-outline-width/$focus-outline-offsetapplicati solo alla sezione non-mobile (:active/:focus/:focus-visible). - Nessun errore compilazione: tutti i 4 file SCSS aggiornati con validazione editor pulita;
$focus-outline-widthe$focus-outline-offsetgià definiti in_core.scss, quindi nessuna regressione di undefined variable.
Current v1.1.5-beta - Footer, Menu Particle, Install Alert e About Commercialev1.1.5-beta
06/05/2026
Status: current. Metadata versione/data allineati; task tecnici mantenuti come piano operativo della release corrente.
🎯 Task pianificati
- Task 1 - Ottimizzazione footer: completato. Applicata la sequenza operativa proposta su
scss/bootstrapitalia/_bi-copyright.scss,scss/bootstrapitalia/_bi-footer.scssescss/bootstrapitalia/_bi-breadcrumb.scss(cleanup selettori legacy non utilizzati, convergenza token dinamici, rifiniture accessibilita link/focus). - Task 2 - Menu particle / Navigation: completato. Consolidati allineamento header/menu/navigation con interventi su
scss/bootstrapitalia/_bi-menu.scss,scss/bootstrapitalia/_bi-navigation.scssescss/bootstrapitalia/_bi-dropdownanimations.scss(container coerenti, uppercase ripristinato, dropdown con sottovoci a colore scuro su fondo bianco e hover accent). - Task 3 - Install style: completato. Ottimizzato
install/templates/style.html.twigcon correzione layout hero/altezza e allineamento del margine wrapper per coerenza visiva in installazione/aggiornamento. - Task 4 - About commerciale: completato. Aggiornati i contenuti in
admin/templates/pages/about/about.html.twige completata esternalizzazione i18n su file lingua (language/it-IT/it-IT.tpl_bootstrapitalia.ini,language/en-GB/en-GB.tpl_bootstrapitalia.ini). - Aggiornamento non programmato - Bootstrap Italia 2.18.1: completato. Allineati fallback/versioni negli atom
particles/bootstrapitalia-cdn.html.twig,particles/bootstrapitalia-icons.html.twig,particles/bootstrapitalia-cdn.yaml,particles/bootstrapitalia-icons.yamle aggiornati i riferimenti CDN nelle pagine changelog. - Regressione rientrata - Preset/Switcher: ripristinato da backup
gantry/presets.yaml(file risultato vuoto). Confermato che il malfunzionamento dello switcher dipendeva dal preset mancante; mantenuti i miglioramenti difensivi su particella switcher (hardening CSS/JS e pulizia ridondanze Twig). - Nota manifest: verificare in
templateDetails.xmlche<file>install.php</file>sia presente e coerente con<scriptfile>install.php</scriptfile>.
🧩 Matrice coerenza task 1.1.5 - completata
- T1 Footer completato con cleanup preliminare su
_bi-copyright.scsse convergenza validata con_bi-breadcrumb.scss. - T2 Menu particle / Navigation completato: chiusa l'ottimizzazione su menu default Gantry con coerenza finale container/dropdown e rifiniture responsive di base validate.
- T3 Install style completato su
install/templates/style.html.twigcon fix di coerenza sul margine della hero wrapper. - T4 About commerciale completato in parallelo a T3 con esternalizzazione su language file per i18n/manutenibilita.
- Upgrade Bootstrap Italia 2.18.1 completato come intervento fuori piano task, con impatto su atom CDN/icons e documentazione changelog.
- Incidente preset rientrato: ripristino backup di
gantry/presets.yamle conferma root cause sulla perdita contenuto file (non legata alla versione CDN). - Ordine esecuzione adottato:
T1 -> T2 -> T3/T4con completamento dell'intero piano 1.1.5 nel perimetro tecnico definito.
🔗 Verifica concatenazioni (scope tecnico) - completata
- Catena Header/Menu/Navigation: verifica completata con coerenza confermata tra
scss/bootstrapitalia/_bi-header.scss,scss/bootstrapitalia/_bi-menu.scss,scss/bootstrapitalia/_bi-navigation.scssescss/bootstrapitalia/_bi-dropdownanimations.scssrispetto alle particellebootstrapitalia-logo,bootstrapitalia-icone-linkebootstrapitalia-modale-ricerca. - Catena Top/Offcanvas: verifica completata tra
scss/bootstrapitalia/_bi-top.scss,scss/bootstrapitalia/_bi-offcanvas.scssescss/bootstrapitalia/_bi-offcanvas-toggle.scssrispetto alle particellebootstrapitalia-preset-switcherebootstrapitalia-modale-login, con fix applicati su duplicazione_bi-top.scsse ripristino comportamento preset switcher ai breakpoint. - Nota operativa: esclusione delle particelle dal menu mobile offcanvas mantenuta intenzionalmente (nessuna azione richiesta).
🧭 Sequenza operativa proposta - completata
- Step A - Dal basso verso l'alto: completato su
_bi-copyright.scss,_bi-footer.scss,_bi-breadcrumb.scss, con risalita coerente a_bi-navigation.scss,_bi-header.scsse_bi-top.scss. - Step B - Cleanup residui package: completato in footer/copyright con rimozione riferimenti legacy a particelle non presenti nel pacchetto (in particolare selettori
.g-sociale.g-features2-particle). - Step C - Breadcrumb/Copyright: convergenza stilistica e semantica validata tra
_bi-breadcrumb.scsse_bi-copyright.scss(token dinamici + stati focus coerenti). - Step D - Footer Bootstrap Italia: rifinitura footer completata con allineamento componenti, spacing, accessibilita e token runtime.
- Riferimento ufficiale footer: usare come baseline progettuale la documentazione Bootstrap Italia Menu di navigazione / Footer - Introduzione.
- Riferimento ufficiale breadcrumbs: usare come baseline progettuale la documentazione Bootstrap Italia Menu di navigazione / Breadcrumbs.
- Riferimento ufficiale header/navigation/menu: usare come baseline progettuale la documentazione Bootstrap Italia Menu di navigazione / Header.
Nota: Task 1, Task 2, Task 3 e Task 4 risultano completati nella release corrente; la pianificazione 1.1.5 e ora completa sul perimetro tecnico definito.
Completamento v1.1.4-beta - Allineamento Colori, Hardening Finder e Particlesv1.1.4-beta
12-13/03/2026
Status: completato. Allineamento modello colori, bridge CSS custom properties, token runtime, hardening finder e normalizzazione estesa sezioni/particles applicati e verificati.
✅ Modifiche completate
- Allineamento preset base: aggiornato
scss/configuration/_colors.scssusandogantry/presets.yamlcome source of truth (accent, drawer/top/header/navigation e sezioni light). - Bridge runtime: creato
scss/configuration/_css-tokens.scsscon blocco:rootper esporre token semantici e Bootstrap (--base-*,--primary-*,--bs-primary,--well-background). - Import chain: aggiunto
@import "css-tokens";inscss/configuration/_base.scsscome ultimo import. - Preset switcher runtime: in
particles/bootstrapitalia-preset-switcher.html.twigaggiunti--base-text-colore--base-title-colorin entrambi i blocchi style (head + fallback inline). - Finder semantic fix: in
scss/bootstrapitalia-joomla/_bi-finder.scssil bottone calendario usa ora--primary-colore stato:activesu--primary-medium(coerente con semantica action). - Hardening bottoni dinamici: consolidata una catena unica per primary buttons con token condivisi
--bi-btn-primary-*e integrazione con variabili Bootstrap focus. - Fix definitivo finder advanced: eliminato il residuo statico blu su
btn-outline-primaryin focus/focus-visible con override della proprieta finalebox-shadownel contesto componente. - Estensione normalizzazione: allineati file sezione
scss/bootstrapitalia/_bi-*.scsse particles (_bootstrapitalia-modale-login.scss,_bootstrapitalia-logo.scss) ai token dinamici, mantenendo coerenza permodale-ricercaeicone-link. - Aggiornamento versioni particelle (metadata YAML): aggiornate le versioni delle particelle modificate nella sessione odierna, mantenendo lo storico delle release precedenti invariato (
icone-link v1.0.8,logo v1.0.5,modale-login v1.0.6,modale-ricerca v1.0.8,preset-switcher v1.0.5). - Centralizzazione documentale override: dismessi i README locali di
html/com_usersehtml/com_finder, consolidando convenzioni e note operative in.github/joomla_override_conventions.md. - Pulizia commenti SCSS release-friendly: rimossi i blocchi header documentali in
_bi-user.scss,_bi-finder.scsse_bi-systemmessages.scss, con documentazione centralizzata nei file.github.
🔎 Verifica eseguita
- Token runtime presenti: confermata presenza dei nuovi token nei due punti del preset switcher.
- Import attivo: confermato import
css-tokensnella chain configuration. - Finder coerente: confermata sostituzione dei riferimenti residuali con token action primari nel blocco filtri avanzati.
- Computed style validation: verificata la rimozione dei residui blu statici nei percorsi critici di focus del finder.
- Corrispondenza task-release: riallineata la sezione riassuntiva iniziale con lo stato reale della release e con le modifiche effettivamente completate.
- Integrità pacchetto: eseguito
python3 .github/scripts/regenerate-md5sums.pycon esito OK.
🔐 Chiusura micro-versione particle v1.0.4
- Valore storico preservato: la chiusura
v1.0.4resta valida come milestone storica nel contesto originale. - Evoluzione successiva tracciata: gli aggiornamenti funzionali/strutturali successivi sono registrati nella release corrente con bump coerente dei metadata YAML delle particelle coinvolte.
- Decisione di governance: nessuna rinumerazione retroattiva delle versioni passate; aggiornamento applicato solo alla sezione odierna.
Nota: la voce inizialmente pianificata (04/03/2026) è stata consolidata e chiusa con hardening finale nelle sessioni 12-13/03/2026.
Session Planning v1.1.3-beta - Definizione Task 2 e Chiusura Task 4v1.1.3-beta
03/03/2026
Status: Task 4 verificato come completato; Task 2 parzialmente chiuso con issue residua aperta sul bottone finder advanced.
🎯 Obiettivo Sessione
- Task 2: avanzamento quasi completo, ma non chiuso definitivamente per issue residua sul contorno del bottone advanced finder.
- Task 4: verifica di completamento confermata tramite storico (
v1.1.1-beta: validazione end-to-end) e governance versioning_closure.md. - Release readiness: consolidare checklist preflight (versioni, lint, md5, coerenza import chain).
- Chiusura versione (obbligatoria): applicare e completare versioning_closure.md.
Nota tecnica finder (03/03/2026 - aggiornamento stato): il problema NON risulta risolto: permane un contorno che richiama il colore base sul bottone advanced
btn-outline-primary (data-bs-target="#advancedSearch"). Issue mantenuta aperta e tracciata come carry-over in v1.1.4-beta.
✅ Verifiche eseguite (02/03/2026)
- Manifest integrità: eseguito
python3 .github/scripts/regenerate-md5sums.pycon esito OK. - Output MD5SUMS: file rigenerato con 287 entry; esclusioni applicate:
.github/,changelogs/,custom/,backup_*/,*.log. - Installer lint: eseguito
php -l install.phpcon esitoNo syntax errors detected.
🧾 Allineamento documentazione (02/03/2026)
- Allineamento complessivo completato: in data 02/03/2026 è stato completato l'allineamento di tutta la documentazione di progetto (file
.mdin.github/e contenuti changelog). - Struttura repository: aggiornato
.github/structure.mdcon allineamento file documentali e cartella.github/scripts/. - Governance chiusura release: introdotta checklist dedicata in .github/versioning_closure.md.
- Coerenza riferimenti: allineati link e naming case-sensitive dei documenti in
.github. - Continuità operativa: la prosecuzione dei task è pianificata per la giornata del 03/03/2026.
Nota: entry originariamente pianificata senza data; data valorizzata in data 02/03/2026.
Sessioni v1.1.2-beta - Predisposizione + Aggiornamento Task 2v1.1.2-beta
24-25 Febbraio 2026
Status: sezione predisposta per la prossima sessione di lavoro.
🧭 Sessione 24/02/2026 - Predisposizione
- Ripartenza ordinata: usare baseline
v1.1.1-betagià validata (preflight verde). - Focus operativo: avanzamento Task 2 e Task 3 con verifiche incrementali.
- Controllo rilascio: mantenere allineamento versioni/lint/md5 al termine sessione.
Nota: questa entry è un placeholder operativo per avvio attività nella sessione successiva.
✅ Sessione 25/02/2026 - Aggiornamento Operativo
- Finder form + modale ricerca: allineata variante UI intermedia su wrapper
awesomplete(coerenza visiva senza effetto boxed). - Dynamic color governance: introdotti token semantici C3 per finder in
scss/configuration/_colors.scss($finder-*-colorper explained/empty e azioni). - Explained query/empty state:
pespanportati a ereditarietà colore dinamica, con fallback semantici centralizzati. - Fix critico bottone outline: su
.btn-outline-primaryfinder adottate variabili native Bootstrap--bs-btn-*per garantire bordo/stati realmente dinamici a runtime. - Particles ottimizzate: allineamento comportamento/stile modale ricerca al finder su input-group e wrapper
awesomplete(variante intermedia coerente). - Versioning particella: aggiornata la versione della particella ricerca in metadata YAML (
particles/bootstrapitalia-modale-ricerca.yaml). - Import chain ripristinata: verificato e ripristinato
scss/bootstrapitalia-joomla.scsscon import necessari (configuration/base,mixins/base,bootstrapitalia-joomla/bi-finder). - Validazione: controlli statici su file SCSS aggiornati senza errori; verificata coerenza documentale con
instruction.mde convenzioni override.
Sprint Setup v1.1.1-beta - Ripresa Task Incompletiv1.1.1-beta
23 Febbraio 2026
Status: v1.1.1-beta consolidata per pre-release. Task 4 validato end-to-end, preflight rilascio in semaforo verde (versioni+lint+md5).
🎯 Obiettivo Versione
- Continuità: Nessuna regressione su hero section e internazionalizzazione introdotte in v1.1.0-beta
- Focus: Ripartenza dai task non completati (Task 2, Task 3, Task 4)
- Orizzonte: Impostazione backlog e base tecnica per lo sprint della prossima settimana
📌 Attività Riprese (Carry-over da v1.1.0-beta)
- Task 2 - Override com_finder: completamento implementazione e validazione end-to-end degli override ricerca Joomla
- Task 3 - Audit Design System: verifica coerenza metadata/import chain e cleanup duplicazioni residue in area SCSS
- Task 4 - Sincronizzazione file tra versioni: bootstrap implementato (snapshot pre-update, confronto post-update, backup file rimossi, cleanup orphan, whitelist path protetti, log operazioni)
✅ Avanzamento Task 4 (Fase 1)
- Preflight update: snapshot lista file release corrente letta da
MD5SUMSe salvata in tmp - Postflight update: diff vecchia vs nuova release e individuazione file orphan
- Sicurezza: validazione path dentro root template + esclusione automatica di
custom/e file*.log - Rollback manuale: backup preventivo in cartella
custom/sync-runtime/backup_YYYYMMDD_HHMMSS/prima della cancellazione - Audit trail: generazione log
custom/sync-runtime/install_cleanup_<version>_<timestamp>.logcon summary finale - MD5SUMS standardizzato: introdotto comando ufficiale
python3 .github/scripts/regenerate-md5sums.pyper rigenerazione release-safe del manifest - Policy esclusioni manifest: confermata esclusione di
.github/,changelogs/,custom/, backup e file*.logdal pacchetto distribuito
Nota di pianificazione: v1.1.1-beta è una release di allineamento e preparazione. Le attività carry-over sono confermate come priorità operative per la settimana successiva.
🔁 Consolidamento Task 4 (validazione reale)
- Test end-to-end riuscito: cleanup eseguito con output
10 eliminati, 0 protetti, 0 non trovati, 0 errorie log operativo generato. - Root cause verificata: il confronto basato solo su manifest non intercettava sempre file residui non tracciati; introdotto fallback su file system reale.
- Policy sicurezza aggiornata: protezione esplicita di
changelogs/nella whitelist per evitare cancellazioni accidentali durante lo sviluppo. - Policy permanente adottata: workflow documentato in
.github/instruction.mdcon regole dev/prod su cleanup, backup e log. - Produzione pronta: percorso runtime dedicato in
custom/sync-runtime/e checklist go-live formalizzata per staging → produzione. - Crediti installer aggiornati: header di
install.phpriallineato con attribuzione upstream (RocketTheme/Tiger12) + maintainer corrente e copyright custom. - Preflight rilascio ✅: versioni allineate
1.1.1-beta,php -l install.phpOK,MD5SUMSsenza mismatch.
Milestone v1.1.0 - Nuove Funzionalità e Miglioramentiv1.1.0-beta
17 Febbraio 2026
Status: Milestone aperta per implementazione nuove funzionalità. Riferimento package chiuso: v1.0.22+ (16/02/2026).
📝 Apertura Milestone
- Data apertura: 17 Febbraio 2026
- Base riferimento: v1.0.22-beta + v1.0.22+ cleanup (16/02/2026)
- Obiettivo: Implementazione funzionalità post-stabilizzazione architettura SCSS
- Nota architetturale: Pacchetto v1.0.22+ chiuso con pulizia dead code SCSS completata
✅ Task Completati
Task 1 Completato - 17-18/02/2026 (~120 minuti totali - 2 fasi)
- Task 1 - Personalizzazione Install Templates con Hero Section Bootstrap Italia:
- Stato: ✅ COMPLETATO (Fase 1: 5 iterazioni hero section il 17/02, Fase 2: i18n + bug fix il 18/02)
- Durata totale: ~120 minuti (~60 min Fase 1 + ~60 min Fase 2)
- Files modificati Fase 1:
install/templates/style.html.twig(145 righe) - Hero section completa CSS inlineinstall/templates/update.html.twig- Struttura hero con 1 bottoneinstall/templates/install.html.twig- Struttura hero con 2 bottoni
- Iterazione 1 - Rimozione RocketTheme:
- ❌ Rimosso: Background-image inline base64 RocketTheme PNG (~112 KB risparmiati)
- ❌ Rimosso: Link tiger12.com, container
.g5-rockettheme - ✅ Aggiunto: Struttura
.g5icon stili Bootstrap Italia custom - ✅ Aggiunto: Crediti Claudio Rosselli (iamawebmaster.com)
- Iterazione 2-4 - Fix Contrasto Light/Dark Mode:
- ⚠️ Problema: Border-left #0066cc 5px creava conflitto visivo con alert-info
- ✅ Fix: Rimosso border-left, margin 0, background transparent
- ⚠️ Problema: Bottoni bianchi su sfondo chiaro alert-info = scarso contrasto
- ✅ Fix: Override
.alert.alert-info .g5-button { color: #0066cc; } - ⚠️ Problema: Credits #666666 troppo scuro in modalità dark
- ✅ Fix: Colore neutro
#888888cross-theme
- Iterazione 5 - Migrazione Hero Section:
- 🔄 Decisione: Migrazione da
alert-infowrapper ait-hero-wrapperBootstrap Italia - ⚠️ Problema CDN: Bootstrap Italia CDN caricava globalmente, "infettava" backend Joomla
- ✅ Soluzione: Rimosso CDN, implementato hero section con CSS inline completo
- ✅ Struttura HTML:
section.it-hero-wrapper > .container > .row > .col-12 > .it-hero-text-wrapper - ✅ Elementi hero:
.it-category: Versione template (uppercase, tracking, opacity 0.9)h2: Titolo template (2rem, bold, white)p: Descrizione (nascosta mobile cond-none d-lg-block).it-btn-container: Container bottoni (flex, gap, center, wrap)hr: Separatore credits (border white opacity 25%).small: Footer credits (opacity 0.8, link white)
- ✅ Background: Gradient blu
linear-gradient(135deg, #0066cc 0%, #004d99 100%) - ✅ Fullwidth: Hero con margini negativi
margin: -15px -15px 0(riempie alert container) - ✅ Fix icone duplicate:
.alert-heading, .alert .icon { display: none !important; }
- 🔄 Decisione: Migrazione da
- Bottoni Hero - Contrasto e Hover:
- btn-light (primario):
- Default:
background: white; color: #0066cc; - Hover:
background: #f0f6ff; color: #004d99; transform: translateY(-2px); box-shadow
- Default:
- btn-outline-light (secondario):
- Default:
background: rgba(255,255,255,0.1); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.2) - Hover:
background: white; color: #0066cc; text-shadow: none; transform: translateY(-2px) - ✅ Fix: Background semi-trasparente + text-shadow per visibilità in dark mode
- Default:
- Transizioni:
transition: all 0.3s ease(smooth animations) - Effetto lift:
translateY(-2px)+box-shadow: 0 4px 12px rgba(0,0,0,0.15)
- btn-light (primario):
- Responsive Design:
- Mobile (<768px): Padding ridotto (2rem 1rem), h2 1.5rem, p 0.875rem
- Desktop: Paragrafo visibile con
d-none d-lg-block - Bottoni:
flex-wrapper stack verticale su mobile
- CSS Inline - No Dependencies:
- ✅ Zero dipendenze CDN (evita conflitti backend Joomla)
- ✅ Tutti gli stili inline (145 righe style.html.twig)
- ✅ Colori hardcoded Bootstrap Italia (#0066cc, #004d99, #f0f6ff)
- ✅ Grid system simulato con container/row/col-12 (no JS Bootstrap richiesto)
- Risultati Finali:
- ✅ Zero riferimenti RocketTheme/tiger12 nel codebase
- ✅ Hero section Bootstrap Italia visivamente coerente
- ✅ Contrasto perfetto light/dark mode (WCAG AA)
- ✅ Hover effects smooth e accessibili
- ✅ Nessun conflitto con backend Joomla (no CDN globale)
- ✅ Icone alert Joomla nascoste (no duplicazioni)
- ✅ Responsive completo mobile-first
- ✅ Performance ottimale: CSS inline minimo necessario
- Validazione:
- ✅
grep -c "tiger12\|rockettheme"= 0 matches - ✅
grep -c "it-hero-wrapper"= 2 matches (update + install) - ✅
grep -c "cdn.jsdelivr\|bootstrap-italia"= 0 matches (no CDN) - ✅ Test visivo: Contrasto bottoni OK in light/dark, hover animato, no icone duplicate
- ✅
Fase 2 - 18/02/2026 (~60 minuti): Internazionalizzazione e Bug Fix Critici
- Implementazione Internazionalizzazione (i18n):
- Obiettivo: Sostituire stringhe hardcoded hero section con costanti lingua traducibili
- Files lingua modificati:
language/it-IT/it-IT.tpl_bootstrapitalia.ini- Aggiunta sezione "Install Template Messages" (7 costanti iniziali)language/en-GB/en-GB.tpl_bootstrapitalia.ini- Traduzioni inglesi delle stesse costanti
- Costanti implementate (v1 - iniziali):
TPL_BOOTSTRAPITALIA_INSTALL_TITLE- "Template Installato" / "Template Installed"TPL_BOOTSTRAPITALIA_INSTALL_DESC- Descrizione configurazione templateTPL_BOOTSTRAPITALIA_INSTALL_BTN_CONFIGURE- "Configura Template" / "Configure Template"TPL_BOOTSTRAPITALIA_INSTALL_BTN_SAMPLE- "Installa Dati di Esempio" / "Install Sample Data"TPL_BOOTSTRAPITALIA_POWERED_BY- "Powered by"TPL_BOOTSTRAPITALIA_POWERED_BY_AUTHOR- "Claudio Rosselli" (poi rimossa - v2 cleanup)TPL_BOOTSTRAPITALIA_POWERED_BY_URL- "https://iamawebmaster.com" (poi rimossa - v2 cleanup)
- Template modificati (tentativo iniziale):
install/templates/update.html.twig- Sostituzione stringhe con{{'TPL_CONST'|t}}install/templates/install.html.twig- Sostituzione stringhe con{{'TPL_CONST'|t}}
- ⚠️ Bug Critico Scoperto - Hero Section Non Visualizzata:
- Sintomo: Dopo aggiunta costanti lingua con filtro Twig
|t, hero section completamente sparita (schermo bianco) - Contesto problematico: Install templates renderizzati in fase isolata Gantry, prima del bootstrap completo Joomla
- Root cause: Filtro Twig
|t(translation) non disponibile nel contesto di renderingThemeInstaller->render() - Diagnosi tecnica:
- ❌ Gantry
ThemeInstallernon carica automaticamente sistema lingua Joomla nel contesto Twig - ❌ Filtri Twig translation (
|t,|trans) non registrati in ambiente install isolato - ❌ Sistema lingua Joomla potenzialmente non completamente inizializzato durante install phase
- ✅
Factory::getLanguage()->load()+Text::_()funzionano correttamente lato PHP
- ❌ Gantry
- Sintomo: Dopo aggiunta costanti lingua con filtro Twig
- ✅ Soluzione Implementata - Caricamento Lingua Lato PHP:
- File modificato:
install.php(metodoBootstrapItaliaInstallerScript::postflight()) - Pattern architetturale: Caricamento lingua in PHP + passaggio variabili tradotte a Twig (approccio nativo Gantry)
- Implementazione tecnica (righe 75-98):
- Step 1: Caricamento esplicito file lingua
$lang = Factory::getLanguage(); $lang->load('tpl_bootstrapitalia', JPATH_SITE . '/templates/bootstrapitalia'); - Step 2: Creazione array traduzioni con
Text::_()$translations = array( 'install_title' => Text::_('TPL_BOOTSTRAPITALIA_INSTALL_TITLE'), 'install_desc' => Text::_('TPL_BOOTSTRAPITALIA_INSTALL_DESC'), 'btn_configure' => Text::_('TPL_BOOTSTRAPITALIA_INSTALL_BTN_CONFIGURE'), 'btn_sample' => Text::_('TPL_BOOTSTRAPITALIA_INSTALL_BTN_SAMPLE'), 'powered_by' => Text::_('TPL_BOOTSTRAPITALIA_POWERED_BY'), 'powered_by_author' => 'Claudio Rosselli', // Hardcoded v2 'powered_by_url' => 'https://iamawebmaster.com' // Hardcoded v2 ); - Step 3: Passaggio array come secondo parametro a render()
echo $installer->render('update.html.twig', $translations);
- Step 1: Caricamento esplicito file lingua
- Template Twig aggiornati:
- ❌ Rimosso:
{{'TPL_CONST'|t}}(filtro non disponibile) - ✅ Aggiunto:
{{ variable }}(interpolazione variabili diretta) - Esempio:
<h2>{{ name }} - {{ install_title }}</h2> - Footer:
{{ powered_by }} <a href="{{ powered_by_url }}">{{ powered_by_author }}</a>
- ❌ Rimosso:
- Hardcoding valori critici (v2 refinement):
- ⚠️ Problema riscontrato:
TPL_BOOTSTRAPITALIA_POWERED_BY_AUTHORvisualizzata come stringa costante letterale (non tradotta) - ✅ Decisione: Hardcode valori author/URL direttamente in PHP (nome/link autore non cambiano per lingua)
- ✅ Vantaggio affidabilità: Eliminata dipendenza da sistema lingua potenzialmente incompleto in install phase
- ✅ Risultato: Crediti sempre visualizzati correttamente indipendentemente da stato sistema lingua
- ⚠️ Problema riscontrato:
- Risultati test:
- ✅ Hero section visualizzata correttamente post-installazione e post-update
- ✅ Stringhe tradotte in italiano (lingua sistema default test)
- ✅ Cambio lingua Joomla riflesso correttamente in install templates
- ✅ Nessun errore PHP/Twig in console o log Joomla
- ✅ Credits "Powered by Claudio Rosselli" sempre visibili (hardcoded)
- File modificato:
- 🎨 Fix Contrasto Bottoni Dark Mode:
- Problema identificato: Bottone
btn-lightcon testo bianco su sfondo bianco in dark mode (contrasto zero) - Root cause: CSS specificity - stili tema Gantry sovrascrivevano inline CSS hero section
- File modificato:
install/templates/style.html.twig(riga 76) - Soluzione implementata:
.btn-light { background: white; color: #0066cc !important; /* Aggiunto !important per cross-theme consistency */ border: 1px solid white; } - Risultati validazione:
- ✅ Testo blu
#0066ccsempre visibile su sfondo bianco - ✅ Contrasto WCAG AA compliant in light e dark mode
- ✅
!importantforza blu text anche con override tema aggressivi - ✅ Hover effect mantenuto (
background: #f0f6ff; color: #004d99;)
- ✅ Testo blu
- Problema identificato: Bottone
- 🧹 Cleanup Codice - Costanti Non Utilizzate:
- Razionale: Dopo hardcoding author/URL in PHP, costanti lingua corrispondenti diventate obsolete
- Principio DRY: Eliminare duplicazione informazioni (hardcoded in PHP = no need lingua file)
- Files modificati:
language/it-IT/it-IT.tpl_bootstrapitalia.ini- Da 7 a 5 costanti attivelanguage/en-GB/en-GB.tpl_bootstrapitalia.ini- Da 7 a 5 costanti attive
- Costanti rimosse:
- ❌
TPL_BOOTSTRAPITALIA_POWERED_BY_AUTHOR="Claudio Rosselli" - ❌
TPL_BOOTSTRAPITALIA_POWERED_BY_URL="https://iamawebmaster.com"
- ❌
- Costanti attive finali (5 totali):
- ✅
TPL_BOOTSTRAPITALIA_INSTALL_TITLE - ✅
TPL_BOOTSTRAPITALIA_INSTALL_DESC - ✅
TPL_BOOTSTRAPITALIA_INSTALL_BTN_CONFIGURE - ✅
TPL_BOOTSTRAPITALIA_INSTALL_BTN_SAMPLE - ✅
TPL_BOOTSTRAPITALIA_POWERED_BY
- ✅
- Benefici cleanup:
- ✅ Codebase più pulita (no dead code)
- ✅ Manutenzione semplificata (informazioni author in un solo punto: install.php)
- ✅ Performance minima (2 costanti in meno da caricare/parsare)
- 📊 Riepilogo Modifiche Fase 2:
- Files modificati totali: 5
install.php(~24 righe aggiunte, metodo postflight)install/templates/update.html.twig(~7 sostituzioni stringhe → variabili)install/templates/install.html.twig(~8 sostituzioni stringhe → variabili)install/templates/style.html.twig(1 riga, aggiunto!important)language/it-IT/it-IT.tpl_bootstrapitalia.ini(sezione Install: 5 costanti finali)language/en-GB/en-GB.tpl_bootstrapitalia.ini(sezione Install: 5 costanti finali)
- Lezioni apprese:
- 📘 Pattern Gantry install context: PHP translation + variable passing (non Twig filters)
- 📘 Affidabilità install phase: Hardcode valori critici quando lingua system potrebbe essere incompleta
- 📘 CSS cross-theme:
!importantnecessario per forzare consistenza visiva in contesti isolati - 📘 DRY principle: Cleanup immediato informazioni duplicate dopo refactoring
- Risultati finali validati:
- ✅ Hero section Bootstrap Italia completamente funzionale (Fase 1 + Fase 2)
- ✅ Internazionalizzazione completa (it-IT, en-GB), estendibile ad altre lingue
- ✅ Contrasto perfetto WCAG AA in light/dark mode
- ✅ Zero dipendenze CDN (tutto inline CSS)
- ✅ Zero conflitti backend Joomla
- ✅ Codebase pulito (no dead code, no duplicazioni)
- ✅ Sistema lingua robusto (fallback hardcoded per valori critici)
- Files modificati totali: 5
📋 Prossimi Passi da Implementare
- Task 2 - Implementazione Override com_finder:
- File PHP:
html/com_finder/search/*.php(default, default_form, default_results, default_result, default_sorting) - File SCSS:
scss/bootstrapitalia-joomla/_bi-finder.scss - Obiettivo: Completare ottimizzazione componente ricerca Joomla con stili Bootstrap Italia
- Note: Base documentata in changelog v1.0.20-beta, implementazione completa da finalizzare
- File PHP:
- Task 3 - Audit Conformità Design System:
- Scope: Verificare file
scss/configuration/escss/mixins/ - Obiettivo: Assicurare conformità alle regole strutturali del design system (metadata, import chain, DRY principle)
- Checklist: Metadata headers coerenti, eliminazione duplicazioni, validazione import dependencies, test compilazione SCSS
- Riferimento: Standard definito in v1.0.22-beta (C3 Foundation Layer, Utility Layer Mixins)
- Scope: Verificare file
- Task 4 - Sistema Sincronizzazione File tra Versioni:
- Problema identificato: File obsoleti non vengono rimossi automaticamente durante upgrade/downgrade versioni
- Scenario critico: Se v1.1.0 elimina un file presente in v1.0.22, e si effettua downgrade a v1.0.22 seguito da re-upgrade a v1.1.0, il file obsoleto rimane nel filesystem
- Obiettivo: Implementare meccanismo automatico di pulizia file orphan durante installazione/aggiornamento template
- Architettura esistente da utilizzare:
- ✅
install.php: ClasseBootstrapItaliaInstallerScriptcon hooks preflight/postflight/update - ✅
MD5SUMS: File manifest esistente (110 righe) con formatofilepath\thashper ogni file template - ✅
templateDetails.xml: Sezione<files>con elenco folder/file ufficiali, versione corrente in<version>
- ✅
- Approccio implementativo suggerito:
- Fase Pre-Update: Nel metodo
preflight('update')leggere MD5SUMS esistente e salvare lista file versione precedente in sessione/cache - Fase Post-Update: Nel metodo
postflight('update')confrontare lista vecchia vs nuovo MD5SUMS + templateDetails.xml <files> - Cleanup Orphan: Eliminare file presenti in lista vecchia ma assenti in nuova versione (escluso whitelist custom/)
- Logging: Registrare operazioni in file log per audit trail e rollback manuale se necessario
- Fase Pre-Update: Nel metodo
- Considerazioni tecniche:
- T3 -> cleanup install.php con fallback sicuro su `theme.style`.
- T4 (già completato) -> revisione testi About con chiavi lingua dedicate.
- ⚠️ Whitelist preservazione: Cartella
custom/, file*.log, cache Gantry, configurazioni utente generate runtime - ⚠️ Validazione path: Verificare che path file da eliminare sia dentro
JPATH_SITE/templates/bootstrapitalia/(sicurezza) - ✅ Backup preventivo: Prima eliminazione, copiare file in
backup_YYYYMMDD_HHMMSS/temporaneo (rollback manuale possibile per 24h) - ✅ Log dettagliato: File
install_cleanup_VERSION.logcon timestamp, file eliminati, errori eventuale - ✅ MD5SUMS aggiornamento: Generare automaticamente nuovo MD5SUMS post-installazione se modificato manualmente
- File da modificare:
install.php- Aggiungere logica cleanup in metodipreflight()epostflight()(classe BootstrapItaliaInstallerScript esistente)MD5SUMS- Mantenere aggiornato ad ogni release (script automatico o manuale pre-packaging)templateDetails.xml- Sezione<files>già presente e completa, solo verificare coerenza con MD5SUMS
- Riferimenti tecnici:
- Joomla Extension Lifecycle Methods
- File
install.phprighe 1-125: Classe esistente da estendere con metodi cleanup - File
MD5SUMS: Formato esistente filepath + hash MD5 (110 righe template corrente)
⚠️ Task 4 - Priorità Alta: Sistema sincronizzazione file critico per evitare accumulo file obsoleti e conflitti tra versioni. Utilizzeremo infrastruttura esistente (install.php + MD5SUMS + templateDetails.xml).
🔄 Status: Milestone aperta, task pianificati in attesa di implementazione.