Closed dtrucs closed 9 months 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.
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 ⬇️ 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
.
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.
En plus des 2 existants, plusieurs templates HTML ont été ajoutés dans la version 3.8.1 :
customization/html/headerTop.html
: before the header sectioncustomization/html/headerBottom.html
: after the header section and before the content pagecustomization/html/footerTop.html
: before the footer section and after the content pagecustomization/html/footerBottom.html
: after the footer sectioncustomization/html/scriptsHeader.html
: in the of the documentcustomization/html/scriptsFooter.html
: just before the end tagIndiqués dans la documentation de customisation : https://github.com/GeotrekCE/Geotrek-rando-v3/blob/main/docs/customization.md#html--scripts
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).
"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)
Oui de mémoire dans mes tests, il se positionnant avant, mais peut-être que je m'embrouille.
À l'instar des templates de customisation
homeTop.html
ethomeBottom.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/549Il serait intéressant de pouvoir lister les différents besoins possibles:
headerTop
,headerBottom
,footerTop
,footerBottom
afin de couvrir le maximum la personnalisation dans la structure de page.detailsTop
,detailsBottom
?scriptsHeader
,scriptsFooter
afin de pouvoir insérer des scripts de mesure d'audience (autre que Google Analytics) et éventuellement d'autres scripts tiers (marketing ou autre).