GeotrekCE / Geotrek-rando-v3

Geotrek public data website (version 3)
https://geotrek.fr/produit.html#rando
MIT License
16 stars 16 forks source link

Sections HTML/Scripts #588

Closed dtrucs closed 9 months ago

dtrucs commented 2 years ago

À l'instar des templates de customisation homeTop.html et homeBottom.html, il serait pertinent de pouvoir ajouter des sections HTML à divers endroits du site tel que par exemple le footer évoqué ici :https://github.com/GeotrekCE/Geotrek-rando-v3/issues/549

Il serait intéressant de pouvoir lister les différents besoins possibles:

camillemonchicourt commented 2 years ago

Oui intéressant, mais il faudrait préciser pour quoi faire. Par exemple pour le header, ce serait pour mettre des éléments au-dessus ou en dessous du Header existant ?

Pour les scripts, pourquoi pas, mais pour les outils de mesure d'audience, je pense qu'on aurait surtout intérêt à intégrer le script Matomo avec un paramètre associé. Si le paramètre Matomo est renseigné, alors on charge son script, si c'est celui de Google Analytics alors on charge celui de GA.

dtrucs commented 2 years ago

Apparté concernant Matomo ⬇️ : J'ai regardé l'intégration via un paramètre de config. L'identifiant attendu par Matomo est une URL donc la clé serait matomoURL à fournir afin d'injecter le script dans l'application.

Je constate aussi qu'aujourd'hui Matomo permet de granulariser les informations avec 4 options ⬇️ image Et selon ce qui est coché, le code à injecter est altéré. Donc, pour aller jusqu'au bout il conviendrait de créer le schéma suivant (noms des options à optimiser)

{  
  "matomo": {
     "url": "<matomo_url>",
     "options": {
       "allDomains": false,
       "groupByDomain": false,
       "allAliases": false,
       "noscript": false
    }
  }
}

Au delà du poids que prend cette configuration, je resence les limitations suivantes :

Pour toute la complexité que cela mène je pense que ça serait plus simple de laisser des templates scripts comme suggéré initialement et laisser les utilisateurs intégrer leurs propres scripts comme ils l'entendent. Cela apporte d'autres avantages :

Et pour les mêmes raisons, j'irai jusqu'à rendre la config googleAnalyticsId en deprecated.

babastienne commented 2 years ago

Pour compléter, c'est assez commun de détacher le produit des scripts tiers utilisés. De cette manière plusieurs avantages :

Pour ce qui est de "perdre" l'utilisateur avec une configuration complexe, je pense qu'il va surtout falloir effectuer un travail sur la documentation. Si on intègre une zone permettant d'importer n'importe quel script il faudra documenter plusieurs exemples possibles (avec GA, Matomo ou autre) pour que l'utilisateur qui lit la documentation sache toujours comment faire.

camillemonchicourt commented 2 years ago

En plus des 2 existants, plusieurs templates HTML ont été ajoutés dans la version 3.8.1 :

Indiqués dans la documentation de customisation : https://github.com/GeotrekCE/Geotrek-rando-v3/blob/main/docs/customization.md#html--scripts

camillemonchicourt commented 2 years ago

Il me semble que le bloc footerTop.html est affiché avant le homeBottom.html. Cela devrait être l'inverse.

A voir aussi si on peut avoir des templates qui ne sont affichés que sur les fiches détails, voir que sur les fiches détail de certaines catégories. Exemple : un footer dans les fiches détails des randos (pour un widget à afficher uniquement sur les fiches randos).

dtrucs commented 2 years ago

"Affiché avant" en terme de position ou de rendu ?

En position ça ne devrait pas être possible car le footerTop est littéralement avant le footer https://github.com/GeotrekCE/Geotrek-rando-v3/blob/main/frontend/src/components/Footer/Footer.tsx#L13

Le homeBottom dans la page home https://github.com/GeotrekCE/Geotrek-rando-v3/blob/main/frontend/src/components/pages/home/Home.tsx#L69 où on remarque quelques lignes + bas l'appel de <Footer />.

Si c'est en rendu, je ferai des vérifications.

Effectivement, ça serait fortement intéressant de pouvoir multiplier les injections dans les pages de contenus. Faudrait spécifier ça pour que soit générique et pertinent pour chaque type de contenu (et que ça soit en cohérence avec la future refacto des pages "détails", cf #510)

camillemonchicourt commented 2 years ago

Oui de mémoire dans mes tests, il se positionnant avant, mais peut-être que je m'embrouille.

dtrucs commented 9 months ago

Il est désormais possible de créer des custom html pour les pages details depuis la version v3.16.0 .