Piwik intégration MédiaWiki

De EjnTricks

L'application Piwik dispose d'une intégration dans MediaWiki sous la forme d'un plugin de cette application. Ainsi, il est possible d'auditer les pages accéder, sans avoir à modifier manuellement l'ensemble des pages. Le code Javascript étant injecté automatiquement dans les pages.


Hand-icon.png Votre avis

Current user rating: 81/100 (2 votes)

 You need to enable JavaScript to vote


System-Install-icon.png Installation

L'installation du plugin doit s'effectuer dans le répertoire extensions de MediaWiki. Du fait de l'installation réalisée depuis la version 1.8.1, le répertoire cible est donc /var/datas/mediawiki/extensions. Le paquet Fichier:Piwik-MW1.18-r91107.tar.gz est téléchargé depuis le site officiel des extensions.

#sudo wget -P /var/datas/mediawiki/extensions http://upload.wikimedia.org/ext-dist/Piwik-MW1.18-r91107.tar.gz
--2012-03-16 00:53:20--  http://upload.wikimedia.org/ext-dist/Piwik-MW1.18-r91107.tar.gz
Résolution de upload.wikimedia.org... 91.198.174.234
Connexion vers upload.wikimedia.org|91.198.174.234|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK
Longueur: 11514 (11K) [application/x-tar]
Sauvegarde en : «/var/datas/mediawiki/extensions/Piwik-MW1.18-r91107.tar.gz»

100%[==============================================================================================>] 11 514      --.-K/s   ds 0,07s

2012-03-16 00:53:21 (152 KB/s) - «/var/datas/mediawiki/extensions/Piwik-MW1.18-r91107.tar.gz» sauvegardé [11514/11514]

Une fois téléchargé, il faut décompresser le paquet. Les droits sont également modifiés afin de n'autoriser que l'utilisateur, exécutant le serveur Apache, a accéder aux fichiers.

#sudo tar -xzf /var/datas/mediawiki/extensions/Piwik-MW1.18-r91107.tar.gz -C /var/datas/mediawiki/extensions
#sudo rm /var/datas/mediawiki/extensions/Piwik-MW1.18-r91107.tar.gz
#sudo rm /var/datas/mediawiki/extensions/Piwik/README
#sudo chown -R www-data:www-data /var/datas/mediawiki/extensions/Piwik
#sudo chmod 750 /var/datas/mediawiki/extensions/Piwik
#sudo chmod 640 /var/datas/mediawiki/extensions/Piwik/*

A noter le fichier README est supprimé car inutile pour le fonctionnement de l'extension.

Les droits d'exécution, affecté au répertoire, permet à l'utilisateur de parcourir le contenu du répertoire, sans quoi l'extension ne serait pas accessible.


Puis, il faut le rendre disponible, comme indiqué en introduction de la page des plugins, en créant le lien sous /var/lib/mediawiki/extensions.

#sudo ln -s /var/datas/mediawiki/extensions/Piwik /var/lib/mediawiki/extensions/Piwik
#sudo chown -h www-data:www-data /var/lib/mediawiki/extensions/extensions/Piwik

Le contenu du répertoire /var/datas/mediawiki/extensions/Piwik doit être le suivant:

-rw-r-----  1 www-data www-data  1244 2011-11-14 17:16 Piwik.alias.php
-rw-r-----  1 www-data www-data 25704 2011-11-14 17:16 Piwik.i18n.php
-rw-r-----  1 www-data www-data  3326 2011-11-14 17:16 Piwik.php
-rw-r-----  1 www-data www-data  1873 2012-03-16 01:58 Piwik_specialpage.php


Run-icon.png Activation

Le fichier /etc/mediawiki/LocalSettings.php est ensuite modifié afin d'ajouter:

# Extension for Piwik
require_once("$IP/extensions/Piwik/Piwik.php");
$wgPiwikURL = "www.stats.jouvinio.net/piwik/";
$wgPiwikIDSite = "1";

Une ligne de commentaire est placée juste avant, afin de bien identifier son utilité.

Deux variables sont nécessaires pour l'utilisation du plugin.

Paramètre Valeur
$wgPiwikURL Contient l'URL d'accès à l'instance de Piwik.
$wgPiwikIDSite Identifiant du site audité.

L'identifiant du site se retrouve à partir de la page de configuration du site dans Piwik, en visualisation le code Javacript.


Dans le cadre de cette installation, l'identifiant du site est 1, récupéré depuis le code Javascript fourni pour injection dans les pages.

<!-- Piwik --> 
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://www.stats.jouvinio.net/piwik/" : "http://www.stats.jouvinio.net/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://www.stats.jouvinio.net/piwik/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->


Icon-Configuration-Settings.png Configuration

Plusieurs options de configuration sont disponibles pour ce plugin. La majorité ont une valeur par défaut mise en place dans le script Piwik.php

Il est donc possible de configurer:

Paramètre Valeur
$wgPiwikIDSite Identifiant du site dans Piwik
$wgPiwikURL URL du site. Doit se terminer par /.
$wgPiwikIgnoreSysops Permet de ne pas auditer les accès pour les utilisateur "système".
$wgPiwikIgnoreBots Permet d'ignorer l'audit des accès par les robots d'indexation.
$wgPiwikCustomJS Permet d'ajouter un code Javascript spécifique.

En général, cela sera vide.

$wgPiwikUsePageTitle Permet d'activer l'extraction du titre de la page, utilisé au niveau des rapports.
$wgPiwikActionName Permet d'indiquer "l'URL" racine du site. Dans le cadre de ce wiki.
$wgPiwikSpecialPageDate Permet d'indiquer la date à utiliser pour les rapports, présenté dans la page spéciale disponible.
$wgGroupPermissions Permet d'activer des sécurités d'accès à la page spéciale.
$wgAvailableRights Permet de référencer le nouveau droit sous MediaWiki.

La surcharge de ces configurations s'effectue dans le fichier LocalSettings.php, dans le répertoire /etc/mediawiki pour cette installation. Dans le cadre de ce wiki, disponible sous http://www.jouvinio.net/wiki, les paramétrages mis en place sont:

Paramètre Valeur Description
$wgPiwikURL www.stats.jouvinio.net/piwik/ URL d'accès de Piwik sur la machine.
$wgPiwikIDSite 1 Le site possède l'identifiant 1 au niveau de Piwik
$wgPiwikSpecialPageDate today Par défaut, les valeurs présentées sont celle du jour.
$wgPiwikUsePageTitle true Utilisation du regroupement par page activé.
$wgPiwikActionName wiki/ Racine d'accès au wiki.

Les lignes injectées dans le fichier sont:

# Extension for Piwik
require_once("$IP/extensions/Piwik/Piwik.php");
$wgPiwikURL = "www.stats.jouvinio.net/piwik/";
$wgPiwikIDSite = "1";
$wgPiwikSpecialPageDate = "today";
#$wgGroupPermissions['Administrators']['viewpiwik'] = true;
$wgPiwikUsePageTitle = true;
$wgPiwikActionName = "wiki/";


Bug-icon.png Bug

Le code original du plugin comporte une anomalie entraînant un problème d'affichage au niveau de la page spéciale sous MediaWiki.


Le message d'erreur Le format de date doit être: YYYY-MM-DD, or 'today' or 'yesterday' ou n'importe quel mot clef supporté par la fonction strtotime (visitez http://php.net/strtotime pour plus d'informations) indique un problème de format d'une date. Il se trouve que c'est la date envoyée dans la requête du widget. Le code fautif se trouve dans le fichier Piwik_specialpage.php, dans le répertoire /var/datas/mediawiki/extensions/Piwik.

<iframe src="http://{$wgPiwikURL}index.php?module=Widgetize&amp;action=iframe&amp;columns[]=nb_visits&amp;moduleToWidgetize=VisitsSummary&amp;
actionToWidgetize=getEvolutionGraph&amp;idSite={$wgPiwikIDSite}&amp;period=day&amp;
date=last30
&amp;disableLink=1" marginheight="0" marginwidth="0" frameborder="0" height="250" scrolling="no" width="100%"></iframe>

La valeur last30 n'est pas valide. En regardant le code d'affichage des deux autres widgets, le paramètre devrait être pris depuis la variable $wgPiwikSpecialPageDate. Le code devient alors

<iframe src="http://{$wgPiwikURL}index.php?module=Widgetize&amp;action=iframe&amp;columns[]=nb_visits&amp;moduleToWidgetize=VisitsSummary&amp;
actionToWidgetize=getEvolutionGraph&amp;idSite={$wgPiwikIDSite}&amp;period=day&amp;
date={$wgPiwikSpecialPageDate}
&amp;disableLink=1" marginheight="0" marginwidth="0" frameborder="0" height="250" scrolling="no" width="100%"></iframe>


Process-Icon.png Utilisation

Au sein du wiki, une page spéciale est disponible en fonction des droits de l'utilisateur connecté. Cette page expose quelques Widget de l'application, permettant d'avoir accès à quelques indicateurs directement depuis le wiki. Cependant, il faut s'être authentifié à Piwik au préalable. Attention, cette page n'est plus disponible à partir de la version 2.4.0.



Si aucune connexion n'est réalisée préalablement, les différents zones sont vides.


Update icon.png Update

2.4.0 2.4.2


Viewer icon.png Voir aussi

Documentation officielle: http://www.mediawiki.org/wiki/Extension:Piwik_Integration


Untar-icon.png Package installé

Plugin installé: Piwik-MW1.18-r91107.tar.gz

Patch de la page spéciale: Piwik SpecialPage Patch.tar.gz