[PLUGINS] +piwik
[ptitvelo/web/www.git] / www / plugins / spip_piwik_2_0 / formulaires / configurer_piwik_fonctions.php
1 <?php
2
3 if (!defined("_ECRIRE_INC_VERSION")) return;
4
5 /**
6 *
7 * Fonction de verification du formulaire de configuration CFG
8 *
9 */
10 function cfg_config_piwik_verifier(&$cfg){
11 $obligatoires = array('token','user','urlpiwik');
12 foreach($obligatoires as $obligatoire){
13 if(!$cfg->val[$obligatoire]){
14 $erreur[$obligatoire] = _T('info_obligatoire');
15 }
16 }
17
18 $piwik_token = $cfg->val['token'];
19 if (!$erreur['token'] && !preg_match('/^[a-f0-9]{32}$/i',$piwik_token)) {
20 $erreur['token'] = _T('piwik:cfg_erreur_token');
21 return $erreur;
22 }
23 $piwik_url = 'http://'.$cfg->val['urlpiwik'].'/';
24
25 $piwik_recuperer_data = charger_fonction('piwik_recuperer_data','inc');
26
27 /**
28 * Vérifier la correspondance nom d'utilisateur/ token
29 * Qui nous permettra par la suite de définir d'autres choses
30 */
31 $method_verif_user = 'UsersManager.getUser';
32 $options_user = array('userLogin'=>$cfg->val['user']);
33 $datas_user = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method_verif_user,'PHP',$options_user);
34 if(is_array($datas_user = unserialize($datas_user))){
35 if(!$erreur['user'] && $datas_user['result'] == 'error'){
36 $erreur['user'] = _T('piwik:cfg_erreur_user_token');
37 }
38 /**
39 * Vérifier que ce token est un token admin
40 * Si non : mettre une meta comme quoi il n'est pas admin pour créer des sites
41 */
42 $method_verif_user_bis = 'UsersManager.getUsers';
43 $datas_user_bis = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method_verif_user_bis,'PHP');
44 $datas_user_bis = unserialize($datas_user_bis);
45 if(is_array($datas_user_bis) && ($datas_user_bis['result'] == 'error')){
46 ecrire_meta('piwik_admin', 'non');
47 }else{
48 ecrire_meta('piwik_admin', 'oui');
49 unset($erreur['user']);
50 }
51 }
52
53 /**
54 * Récupération de la liste des sites où cet utilisateur
55 * a les droits d'admin
56 */
57 $method = 'SitesManager.getSitesWithAdminAccess';
58 $datas = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method,'PHP');
59 if(!$erreur['urlpiwik'] && !is_array(unserialize($datas))){
60 $erreur['urlpiwik'] = _T('piwik:cfg_erreur_recuperation_data');
61 }else{
62 ecrire_meta('piwik_sites_dispo', $datas);
63 }
64
65 return $erreur;
66 }
67 ?>