Projet

Général

Profil

SondesPiwik » Historique » Version 5

Version 4 (Christophe Deseure, 11/10/2011 14:31) → Version 5/10 (Arnaud FORNEROT, 01/04/2014 10:39)

h1. Mise en place d'une sonde dans une application

h2. Insertion __document de la sonde travail__

L'appel Une application doit être enregistrée sur le serveur piwik comme un site.
On renseigne un nom d'application et une url d'accès (ou plus).
En échange, on obtient l'identifiant piwik de l'application.

Il existe plusieurs moyens de remonter des statistiques côté client :
- en javascript : http://piwik.org/docs/javascript-tracking/
-
à l'aide d'une API PHP : http://piwik.org/docs/tracking-api/

h2. Utilisation du javascript

Côté application,
la sonde a besoin de 2 paramètres afin d'identifier le serveur piwik est à présent normalisé.

En premier lieu votre application doit être CASsifié pour récupérer
utiliser :
- son url sans
le profil protocole "http"
- l'identifiant
de l'utilisateur. l'application
En second lieu vous devez localiser dans votre application, Et, il faut pouvoir en désactiver l'utilisation.

Pour une sonde simple, consistant à enregistrer tout accès à une page spécifique, il suffit d'ajouter
un emplacement bloc de javascript.
Le client piwik va notamment envoyer l'url de la page et son titre
qui sera toujours exécuter sont comptabilisés dans l'onglet "Actions".
Pour une sonde donnée, la page peut varier car les paramètres fournis en GET sont présents.
De plus, le titre de la page peut ne pas être représentatif.
Je propose donc qu'une sonde redéfinisse ces valeurs afin d'avoir des remontées parlantes.

Cela donnerait (PIWIK_URL et ID_SITE étant des variables à gérer)
: comme un header ou un footer.

Et insérer le code php suivant

<pre>
include("/var/www/html/piwik/envoleProfil.php"); <!-- Piwik -->
echo "<script src='/piwik/envoleTrackeur.js.php?appli=monappli&profil=$profil'></script>"; <script type="text/javascript">
var pkBaseURL = ("https:" == document.location.protocol) ? "https://" : "http://";
pkBaseURL += PIWIK_URL;
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",ID_SITE);
piwikTracker.setDocumentTitle("...");
piwikTracker.setCustomUrl("...");
piwikTracker.trackPageView();
} catch( err ) {}
</script>
<!-- End Piwik Code -->
</pre>

*include("/var/www/html/piwik/envoleProfil.php");*
Permet
Pour prendre l'exemple de récupérer la procédure adoptée dans le profil cahier de l'utilisateur textes (cdt), les 2 variables sont à enregistrer dans la variable $profil

En fonction de l'application, l'emplacement que vous utiliserez pourrait
table "cdt_params".
Si elles
ne plus avoir l'objet phpCAS nécessaire au calcul de profil. sont pas fournies ou sont vides, les sondes sont inactives.
Dans ce cas, il vous suffira de Celles-ci sont récupérées ensuite en session par le réinitialiser via les commandes suivantes script "inc/sessions_params.php" :

<pre>
require_once('CAS-1.3.1/eoleCAS.php');
require_once('configCAS/cas.inc.php');

// Chargement client CAS
eolephpCAS::client(__CAS_VERSION, __CAS_SERVER, __CAS_PORT, __CAS_URL, false);
if (__CAS_VALIDER_CA)
if(mysql_num_rows($piwik_url_db)>0)
{
eolephpCAS::setCasServerCACert(__CAS_CA_LOCATION);

$row_piwik_url_db = mysql_fetch_assoc($piwik_url_db);
$_SESSION['piwik_url'] = trim($row_piwik_url_db['param_val']);
if(!empty($_SESSION['piwik_url']) && substr($_SESSION['piwik_url'], -1)!="/") $_SESSION['piwik_url'] .= "/"; //précaution
}
else $_SESSION['piwik_url'] = '';
if(mysql_num_rows($piwik_idsite_db)>0)
{
if (method_exists("eolephpCAS", "setNoCasServerValidation")){
eolephpCAS::setNoCasServerValidation();

$row_piwik_idsite_db = mysql_fetch_assoc($piwik_idsite_db);
$_SESSION['piwik_idsite'] = intval($row_piwik_idsite_db['param_val']);
}
} else $_SESSION['piwik_idsite'] = 0;
</pre>

*echo "<script src='/piwik/envoleTrackeur.js.php?appli=monappli&profil=$profil'></script>";*
Permet d’exécuter
Puis, la sonde en elle-même. ressemble à ceci dans le cas d'une consultation :

<pre>

En remplaçant monappli par if(!empty($_SESSION['piwik_url']) && !empty($_SESSION['piwik_idsite'])) //sonde active dès que les 2 paramètres sont valides
{
echo '
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = ("https:" == document.location.protocol) ? "https://" : "http://";
pkBaseURL += "'.$_SESSION['piwik_url'].'";
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",'.$_SESSION['piwik_idsite'].');
piwikTracker.setDocumentTitle("consultation/'.$row_RsClasse['nom_classe'].'");
piwikTracker.setCustomUrl("cdt/consulter.php");
piwikTracker.trackPageView();
} catch( err ) {}
</script>
<!-- End Piwik Code -->';
}
</pre>

L'utilisation du "/" dans
le véritable nom du titre ou de votre application.
Ce script exécutera
la sonde sur les serveurs page permet une catégorisation dans piwik potentiellement paramétrés sur votre serveur.
* Dans tout les cas le serveur piwik présent sur votre serveur.
* Un serveur centralisé soit au niveau académique, régionale, groupe d'école comme vous le souhaitez.
* Un serveur national qui regroupe l'ensemble des Envole
et l'affichage d'une arborescence.

h2. Paramétrer un serveur centralisé

Pour cela aller plus loin, on peut enregistrer aussi l'utilisation de liens externes et le chargement de fichiers mais dans ce cas, il vous suffira d'installer un Envole qui devra évidemment être visible sur faut veiller à priori à ce que le net et posséder un certificat valide. code javascript s'exécute après le chargement de la page.
Il vous suffira pas la suite dans l'ensemble des Envole sondée d'y paramétrer l'adresse du piwik centralisé. faut alors ajouter ceci :

<pre>

!!


piwikTracker.enableLinkTracking();
</pre>