SondesPiwik » Historique » Version 1
Christophe Deseure, 11/10/2011 12:32
1 | 1 | Christophe Deseure | h1. Mise en place de sondes pour avoir des statistiques d'utilisation des applications |
---|---|---|---|
2 | 1 | Christophe Deseure | |
3 | 1 | Christophe Deseure | __document de travail__ |
4 | 1 | Christophe Deseure | |
5 | 1 | Christophe Deseure | Une application doit être enregistrée sur le serveur piwik comme un site. |
6 | 1 | Christophe Deseure | On renseigne un nom d'application et une url d'accès (ou plus). |
7 | 1 | Christophe Deseure | En échange, on obtient l'identifiant piwik de l'application. |
8 | 1 | Christophe Deseure | |
9 | 1 | Christophe Deseure | Côté application, la sonde a besoin de 2 paramètres afin d'identifier le serveur piwik à utiliser : |
10 | 1 | Christophe Deseure | - son url sans le protocole "http" |
11 | 1 | Christophe Deseure | - l'identifiant de l'application |
12 | 1 | Christophe Deseure | Et, il faut pouvoir en désactiver l'utilisation. |
13 | 1 | Christophe Deseure | |
14 | 1 | Christophe Deseure | Pour une sonde simple, consistant à enregistrer tout accès à une page spécifique, il suffit d'ajouter un bloc de javascript. |
15 | 1 | Christophe Deseure | Le client piwik va notamment envoyer l'url de la page et son titre qui sont comptabilisés dans l'onglet "Actions". |
16 | 1 | Christophe Deseure | Pour une sonde donnée, la page peut varier car les paramètres fournis en GET sont présents. |
17 | 1 | Christophe Deseure | De plus, le titre de la page peut ne pas être représentatif. |
18 | 1 | Christophe Deseure | Je propose donc qu'une sonde redéfinisse ces valeurs afin d'avoir des remontées parlantes. |
19 | 1 | Christophe Deseure | |
20 | 1 | Christophe Deseure | Cela donnerait (PIWIK_URL et ID_SITE étant des variables à gérer) : |
21 | 1 | Christophe Deseure | |
22 | 1 | Christophe Deseure | <pre> |
23 | 1 | Christophe Deseure | <!-- Piwik --> |
24 | 1 | Christophe Deseure | <script type="text/javascript"> |
25 | 1 | Christophe Deseure | var pkBaseURL = ("https:" == document.location.protocol) ? "https://" : "http://"; |
26 | 1 | Christophe Deseure | pkBaseURL += PIWIK_URL; |
27 | 1 | Christophe Deseure | document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E")); |
28 | 1 | Christophe Deseure | </script><script type="text/javascript"> |
29 | 1 | Christophe Deseure | try { |
30 | 1 | Christophe Deseure | var piwikTracker = Piwik.getTracker(pkBaseURL+"piwik.php",ID_SITE); |
31 | 1 | Christophe Deseure | piwikTracker.setDocumentTitle("..."); |
32 | 1 | Christophe Deseure | piwikTracker.setCustomUrl("..."); |
33 | 1 | Christophe Deseure | piwikTracker.trackPageView(); |
34 | 1 | Christophe Deseure | } catch( err ) {} |
35 | 1 | Christophe Deseure | </script> |
36 | 1 | Christophe Deseure | <!-- End Piwik Code --> |
37 | 1 | Christophe Deseure | </pre> |
38 | 1 | Christophe Deseure | |
39 | 1 | Christophe Deseure | Pour prendre l'exemple de la procédure adoptée dans le cahier de textes (cdt), les 2 variables sont à enregistrer dans la table "cdt_params". |
40 | 1 | Christophe Deseure | Si elles ne sont pas fournies ou sont vides, les sondes sont inactives. |
41 | 1 | Christophe Deseure | Celles-ci sont récupérées ensuite en session par le script "inc/sessions_params.php" : |
42 | 1 | Christophe Deseure | |
43 | 1 | Christophe Deseure | <pre> |
44 | 1 | Christophe Deseure | if(mysql_num_rows($piwik_url_db)>0) |
45 | 1 | Christophe Deseure | { |
46 | 1 | Christophe Deseure | $row_piwik_url_db = mysql_fetch_assoc($piwik_url_db); |
47 | 1 | Christophe Deseure | $_SESSION['piwik_url'] = trim($row_piwik_url_db['param_val']); |
48 | 1 | Christophe Deseure | if(!empty($_SESSION['piwik_url']) && substr($_SESSION['piwik_url'], -1)!="/") $_SESSION['piwik_url'] .= "/"; //précaution |
49 | 1 | Christophe Deseure | } |
50 | 1 | Christophe Deseure | else $_SESSION['piwik_url'] = ''; |
51 | 1 | Christophe Deseure | if(mysql_num_rows($piwik_idsite_db)>0) |
52 | 1 | Christophe Deseure | { |
53 | 1 | Christophe Deseure | $row_piwik_idsite_db = mysql_fetch_assoc($piwik_idsite_db); |
54 | 1 | Christophe Deseure | $_SESSION['piwik_idsite'] = intval($row_piwik_idsite_db['param_val']); |
55 | 1 | Christophe Deseure | } |
56 | 1 | Christophe Deseure | else $_SESSION['piwik_idsite'] = 0; |
57 | 1 | Christophe Deseure | </pre> |
58 | 1 | Christophe Deseure | |
59 | 1 | Christophe Deseure | Puis, la sonde ressemble à ceci dans le cas d'une consultation : |
60 | 1 | Christophe Deseure | |
61 | 1 | Christophe Deseure | <pre> |
62 | 1 | Christophe Deseure | if(!empty($_SESSION['piwik_url']) && !empty($_SESSION['piwik_idsite'])) //sonde active dès que les 2 paramètres sont valides |
63 | 1 | Christophe Deseure | { |
64 | 1 | Christophe Deseure | echo ' |
65 | 1 | Christophe Deseure | <!-- Piwik --> |
66 | 1 | Christophe Deseure | <script type="text/javascript"> |
67 | 1 | Christophe Deseure | var pkBaseURL = ("https:" == document.location.protocol) ? "https://" : "http://"; |
68 | 1 | Christophe Deseure | pkBaseURL += "'.$_SESSION['piwik_url'].'"; |
69 | 1 | Christophe Deseure | document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E")); |
70 | 1 | Christophe Deseure | </script><script type="text/javascript"> |
71 | 1 | Christophe Deseure | try { |
72 | 1 | Christophe Deseure | var piwikTracker = Piwik.getTracker(pkBaseURL+"piwik.php",'.$_SESSION['piwik_idsite'].'); |
73 | 1 | Christophe Deseure | piwikTracker.setDocumentTitle("consultation - '.$row_RsClasse['nom_classe'].'"); |
74 | 1 | Christophe Deseure | piwikTracker.setCustomUrl("cdt/consulter.php"); |
75 | 1 | Christophe Deseure | piwikTracker.trackPageView(); |
76 | 1 | Christophe Deseure | } catch( err ) {} |
77 | 1 | Christophe Deseure | </script> |
78 | 1 | Christophe Deseure | <!-- End Piwik Code -->'; |
79 | 1 | Christophe Deseure | } |
80 | 1 | Christophe Deseure | </pre> |