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

Mappa LeafLet nel frontend di un luogo. #399

Open abmcr opened 10 months ago

abmcr commented 10 months ago

Prerequisiti

Descrivi il problema

Quando si visualizza un luogo nel relativo template viene visualizzata la mappa della sua posizione. Il tutto funziona alla perfezione a meno che, come credo succederà a molti, non si usino strategie per velocizzare le pagine e quindi plugin diversi che concatenano i javascript e ne fanno il defer. in quel caso, infatti, succede che la mappa non viene renderizzata perché il codice javascript del file template-parts/luogo/map.php viene scritti PRIMA delle varie librerie javascript e quindi non viene elaborato perché Jquery non è ancora stato caricato. Per risolvere il problema, io ho creato un file javascript che va a rimpiazzare quello contenuto nel file map.php originale, salvo poi accodare (wp_enque_script) il file javascript passandogli le variabili php. Lascio i file come sono stati fatti da me , magari può essere utile a qualcuno. Archivio.zip

Includi link o screenshot

No response

Su quale sisitema operativo stai riscontrando il problema?

Windows, macOS, Android, iOS, Linux

Su quale browser stai riscontrando il problema?

Qualsiasi

Che versione del tema stai utilizzando?

1.7.4

enrimk commented 10 months ago

Vero! Utilissimo!

Due annotazioni al volo.

La dipendenza dello script da jQuery forse potrebbe essere evitabile, visto che lì viene usata solo per accodarsi all'onload del documento; e sia perché viene rimandato il js, sia perchè ci sono alternative, può non essercene bisogno. La dipendenza da Leaflet ('dci-leaflet-js') invece è essenziale, ovviamente.

Per passare dati a uno script registrato (se non si vuole mettere tutto inline con _wp_add_inlinescript), un'opzione comoda e abbastanza standard è usare _wp_localize_script()_.

abmcr commented 10 months ago

@enrimk : ho usato wp_add_inline_script sulla base di questo

https://digwp.com/2019/07/better-inline-script/

alla fine sono molto simili