Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Matomo/Pleade/XSLT

De AJLSM
Aller à la navigation Aller à la recherche

Matomo/Pleade/XSLT

[modifier | modifier le wikicode]

Dans Pleade, il est souvent pratique d'exposer dans le HTML les données métier nécessaires au tracking via des attributs data-* générés par XSLT.

Exemple : page de résultats

[modifier | modifier le wikicode]
<body
  data-search-term="{normalize-space($query)}"
  data-search-results="{count($results/result)}">
</body>

Exemple : résultat individuel

[modifier | modifier le wikicode]
<xsl:for-each select="$results/result">
  <div class="search-result">
    <a href="{@href}"
       data-doc-id="{@id}"
       data-cote="{@cote}">
      <xsl:value-of select="title"/>
    </a>
  </div>
</xsl:for-each>

Exemple : page document

[modifier | modifier le wikicode]
<body
  data-doc-id="{$docId}"
  data-cote="{$cote}"
  data-doc-type="{$docType}">
</body>

Injection d'un script XSLT minimal

[modifier | modifier le wikicode]
<script type="text/javascript">
  document.addEventListener('DOMContentLoaded', function () {
    var body = document.body;
    var docId = body.getAttribute('data-doc-id');
    var cote = body.getAttribute('data-cote');
    if (docId && window._paq) {
      _paq.push(['trackEvent', 'Document', 'Consultation', cote || docId]);
    }
  });
</script>

Bonne pratique

[modifier | modifier le wikicode]

Éviter d'écrire toute la logique Matomo dans le XSLT. Le plus robuste est :

  • XSLT pour produire les données dans le HTML
  • JavaScript dédié pour envoyer les événements