italia / design-comuni-wordpress-theme

Tema Wordpress per i siti dei comuni italiani
GNU Affero General Public License v3.0
33 stars 33 forks source link

Ancora errore di breadcrumb segnalate da asseveratori #436

Open fabricius4 opened 2 months ago

fabricius4 commented 2 months ago

Prerequisiti

Descrivi il problema

gli asseveratori hanno indicato errori sulle breadcrumb come di seguito:

  1. Buone pratiche - attributi obbligatori DOCUMENTO: La pagina https://www.comune.xxx.xx.it/documento_pubblico/documento-pubblico-inizio-mandato/ ha come breadcrumb Home/Documenti pubblici/Modulistica/Documento Pubblico Inizio Mandato mentre dovrebbe essere Home/Amministrazione/Documenti/Modulistica/Documento Pubblico Inizio Mandato nella pagina
  2. Buone pratiche - attributi obbligatori LUOGO: Nella pagina https://www.comune.xxx.xx.it/vivere-il-comune/luoghi/centro-storico/ la breadcrumb è "Home/Vivere il Comune/Centro Storico" mentre dovrebbe essere "Home/Vivere il Comune/Luoghi/Centro Storico" e così anche per gli altre pagine della sezione Luoghi nella pagina
  3. Buone pratiche - attributi obbligatori UFFICIO: La breadcrumb riporta "Home/Amministrazione/Ufficio Ragioneria" mentre dovrebbe essere "Home/Amministrazione/Ufficio/Ufficio Ragioneria" nella pagina

e così via. E' possibile risolvere definitivamente questo problema? Altrimenti c'è il rischio di non passare

Allego un solo screen come esempio

Includi link o screenshot

Immagine

Su quale sisitema operativo stai riscontrando il problema?

Windows

Su quale browser stai riscontrando il problema?

Qualsiasi

Che versione del tema stai utilizzando?

1.10

fabricius4 commented 2 months ago

questa la possibile soluzione che al momento funziona breadcrumb.php

enrimk commented 2 months ago

Difetto annoso (#398, #408).

La soluzione, a quanto pare, viene complicata da almeno un paio di fattori.

Il primo e principale è che la libreria BreadcrumbTrail è stata integrata inizialmente con delle modifiche che la snaturano e ne rompono il comportamento originario - come correttamente puntualizzato anche nel primo degli issue citati sopra. Con il corollario che tutte le ulteriori toppe e aggiunte per adattarla a tutti i singoli casi particolari confondono il quadro e non ne migliorano l'ordine del codice.

L'altro fattore, penso, è che ad oggi non sono state ancora definite al 100% tutte le pagine che compaiono nei path, come tipo di vista in Wordpress. Cos'è "Luoghi", o "Uffici"? Una page, un archivio? Interpretazione libera? E comunque, il problema tecnico dipende da scelte diverse in diversi punti, alcune ancora ambigue, ed è difficilmente risolvibile con una singola correzione a un singolo modulo (e infatti le correzioni qui sono... personali, e difficili da condividere su GH).

enrimk commented 2 months ago

Riassumendo: personalmente, ho risolto togliendo quasi tutte le customizzazioni a BreadcrumbTrail, e correggendone i parametri di configurazione. Ma funziona nel mio setup. Ad esempio, per me "Luoghi", "Eventi" ecc. sono archivi di post type, e i loro tipi, archivi di tassonomia.

fabricius4 commented 2 months ago
                case 'Vivere il comune' :
                    $this->items[] =  "<a href='".home_url("vivere-il-comune")."'>".__("Vivere il Comune", "design_comuni_italia")."</a>";
                    $this->items[] = "<a href='".home_url("vivere-il-comune/luoghi")."'>".__("Luoghi", "design_comuni_italia")."</a>";
                    $this->items[] = get_the_title();
                    return;
                    break; 

come si può adattare questo pezzo di codice a seconda che sia un evento o un luogo?

enrimk commented 2 months ago

come si può adattare questo pezzo di codice a seconda che sia un evento o un luogo?

Non si può, senza pasticciare e complicare ulteriormente. Per questo, io lì ho cavato via tutto o quasi, da qui a qui. Perché oltretutto, a ben guardare, è anche codice inutile. Ho lasciato giusto i casi delle U.O. e dell'Amministrazione, che sono gruppi "misti".

Per me i tipi luogo ed evento sono semplici archivi di tassonomie, che vengono gestite nativamente da BreadcrumbTrail, basta dichiararle nei parametri:

--- a/inc/breadcrumb.php
+++ b/inc/breadcrumb.php
@@ -139,1 +139,7 @@ class Breadcrumb_Trail {
-           'post_taxonomy'   => array(),
+           'post_taxonomy'   => array(
+               'notizia' => 'tipi_notizia',
+               'servizio' => 'categorie_servizio',
+               'documento_pubblico' => 'tipi_documento',
+               'luogo' => 'tipi_luogo',
+               'evento' => 'tipi_evento',
+           ),
enrimk commented 2 months ago

Per precisare: non c'è bisogno di gestire "Vivere il Comune" come un caso speciale, almeno per quento riguarda Eventi e Luoghi. Il path corretto è già stato dichiarato insieme ai rispettivi post_type; e BreadcrumbTrail, quando incontra quella componente dell'url, già la scompone e prova a linkarla alla pagina giusta.

fabricius4 commented 2 months ago

ti ringrazio per tutte le dritte. Come dicevi tu ho dovuto customizzare il file functions.php e relativi template implementando le nuova breadcrumb personalizzate; inc/breadcrumb.php e cosi via. Lavoraccio ma al momento sembra girare.