[PLUGINS] +piwik
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 26 Jun 2013 07:23:11 +0000 (09:23 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 26 Jun 2013 07:23:11 +0000 (09:23 +0200)
35 files changed:
www/plugins/skel_ptitvelo/paquet.xml
www/plugins/spip_piwik_2_0/action/piwik_creer_site.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/action/piwik_recuperer_liste.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/balise/piwik.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/fonds/cfg_piwik.html [new file with mode: 0644]
www/plugins/spip_piwik_2_0/formulaires/configurer_piwik.html [new file with mode: 0644]
www/plugins/spip_piwik_2_0/formulaires/configurer_piwik_fonctions.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/images/piwik-22.png [new file with mode: 0644]
www/plugins/spip_piwik_2_0/images/piwik.png [new file with mode: 0644]
www/plugins/spip_piwik_2_0/inc/piwik_recuperer_data.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik.xml [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik_en.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik_es.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik_fa.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik_fr.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik_ru.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/paquet-piwik_sk.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik.xml [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_ca.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_de.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_en.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_es.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_fa.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_fr.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_fr_tu.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/lang/piwik_sk.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/paquet.xml [new file with mode: 0644]
www/plugins/spip_piwik_2_0/piwik.png [new file with mode: 0644]
www/plugins/spip_piwik_2_0/piwik_administrations.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/piwik_pipelines.php [new file with mode: 0644]
www/plugins/spip_piwik_2_0/plugin.xml [new file with mode: 0644]
www/plugins/spip_piwik_2_0/prive/piwik.html [new file with mode: 0644]
www/plugins/spip_piwik_2_0/prive/squelettes/contenu/configurer_piwik.html [new file with mode: 0644]
www/plugins/spip_piwik_2_0/saisies/sites_piwik.html [new file with mode: 0644]
www/plugins/spip_piwik_2_0/svn.revision [new file with mode: 0644]

index 9a64833..f612a90 100644 (file)
     <copyright>2012-2013</copyright>
     <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL V3</licence>
     <necessite nom="SPIP" compatibilite="[3.0.0;3.1.99]" />
-    <necessite nom="beespip" compatibilite="[3.1.0;3.1.99]" />
     <necessite nom="agenda" compatibilite="[3.6;[" />
-    <necessite nom="menus" compatibilite="[0.9;[" />
+    <necessite nom="beespip" compatibilite="[3.1.0;3.1.99]" />
     <necessite nom="crayons" compatibilite= "[1.16.1;]" />
+    <necessite nom="menus" compatibilite="[0.9;[" />
+    <necessite nom="piwik" compatibilite= "[0.6.0;]" />
     <necessite nom="typoenluminee" compatibilite= "[3.3.2;]" />
 </paquet>
diff --git a/www/plugins/spip_piwik_2_0/action/piwik_creer_site.php b/www/plugins/spip_piwik_2_0/action/piwik_creer_site.php
new file mode 100644 (file)
index 0000000..4fae842
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Fonction de création de site dans le serveur piwik
+ * 
+ * Utilise l'api de piwik pour ajouter un site dans le serveur 
+ * Le nouveau site aura le nom du site SPIP (la traduction dans la langue 
+ * en cours si le site est dans un bloc multi)
+ * 
+ * @return 
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_piwik_creer_site_dist(){
+       include_spip('inc/filtres');
+       $piwik_site = _request('urlsite');
+       $piwik_token = _request('token');
+
+       $piwik_url = 'http://'.$piwik_site.'/';
+
+       $options['siteName'] = extraire_multi($GLOBALS['meta']['nom_site']);
+       $options['urls'] = $GLOBALS['meta']['adresse_site'];
+       
+       $piwik_recuperer_data = charger_fonction('piwik_recuperer_data','inc');
+       
+       $methode = 'SitesManager.addSite';
+       $datas = $piwik_recuperer_data($piwik_url,$piwik_token,'',$methode,'PHP',$options);
+       
+       $methode_bis = 'SitesManager.getSitesWithAdminAccess';
+       $datas_bis = $piwik_recuperer_data($piwik_url,$piwik_token,'',$methode_bis,'PHP');
+       ecrire_meta('piwik_sites_dispo', $datas_bis);
+}
+?>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/action/piwik_recuperer_liste.php b/www/plugins/spip_piwik_2_0/action/piwik_recuperer_liste.php
new file mode 100644 (file)
index 0000000..1ae8b67
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Récupère la liste des sites accessibles par l'utilisateur 
+ * sur le serveur Piwik configuré
+ * 
+ * Elle crée une meta spécifique 'piwik_sites_dispo' qui est un array serialisé
+ * Utilise la fonction de communication avec l'API
+ * 
+ * @return 
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_piwik_recuperer_liste(){
+       include_spip('inc/config');
+       $config = lire_config('piwik',array());
+       $piwik_site = isset($config['urlpiwik']) ? $config['urlpiwik'] : false;
+       $piwik_token = isset($config['token']) ? $config['token'] : false;
+       
+       if($piwik_site && $piwik_token){
+               $piwik_url = 'http://'.$piwik_site.'/';
+               
+               $format = _request('format')?_request('format'):'PHP';
+               
+               $piwik_api = charger_fonction('piwik_recuperer_data','inc');
+               
+               /**
+                * Récupération de la liste des sites où cet utilisateur 
+                * a les droits d'admin
+                */
+               $method = 'SitesManager.getSitesWithAdminAccess';
+               $datas = $piwik_api($piwik_url,$piwik_token,'',$method,$format);
+               ecrire_meta('piwik_sites_dispo', $datas);
+       }
+}
+?>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/balise/piwik.php b/www/plugins/spip_piwik_2_0/balise/piwik.php
new file mode 100644 (file)
index 0000000..e5ad8ce
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Balise #PIWIK
+ *
+ * Au final ne correspond qu'à un inclure mais est plus rapide à écrire
+ * et ne casse pas à la compilation si le plugin n'est pas activé
+ *
+ * @param object $p
+ * @return
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function balise_PIWIK_dist($p) {
+    return calculer_balise_dynamique($p, 'PIWIK', array());
+}
+function balise_PIWIK_stat($args, $filtres) {
+    return $args;
+}
+function balise_PIWIK_dyn() {
+       if(!function_exists('lire_config'))
+               include_spip('inc/config');
+       $config = lire_config('piwik',array());
+       if(!empty($config['urlpiwik']) && is_numeric($config['idpiwik']) && ($config['mode_insertion'] == 'balise')){
+               if(in_array($GLOBALS['visiteur_session']['statut'],lire_config('piwik/restreindre_statut_public',array()))||in_array($GLOBALS['visiteur_session']['id_auteur'],lire_config('piwik/restreindre_auteurs_public',array()))){
+                       return;
+               }
+               $piwik_ips = array_flip(preg_split('/(\s*[;,]\s*|\s+)/',trim($config['exclure_ips']),-1,PREG_SPLIT_NO_EMPTY));
+               if (isset($piwik_ips[$GLOBALS['ip']])) {
+                       return;
+               }
+               return array(
+               'prive/piwik',
+               0,
+               array()
+       );
+       }
+}
+?>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/fonds/cfg_piwik.html b/www/plugins/spip_piwik_2_0/fonds/cfg_piwik.html
new file mode 100644 (file)
index 0000000..331ee6c
--- /dev/null
@@ -0,0 +1,12 @@
+<!-- titre=<:piwik:piwik:> -->
+<!-- descriptif=
+<p><:piwik:cfg_description_piwik:></p>
+-->
+<!-- icone=images/piwik-22.png -->
+<!-- logo=images/piwik.png -->
+#CACHE{0}
+
+<div class="ajax">
+#FORMULAIRE_CONFIGURER_PIWIK
+</div>
+
diff --git a/www/plugins/spip_piwik_2_0/formulaires/configurer_piwik.html b/www/plugins/spip_piwik_2_0/formulaires/configurer_piwik.html
new file mode 100644 (file)
index 0000000..224400f
--- /dev/null
@@ -0,0 +1,101 @@
+<!-- autoriser=webmestre -->
+<!-- refus=<:cfg:refus_configuration_webmestre:> -->
+<!-- nom=piwik -->
+#CACHE{0}
+
+<div class="formulaire_spip formulaire_editer formulaire_config">
+
+       [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
+       [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+
+       <form method="post" action="#ENV{action}"><div>
+       #ACTION_FORMULAIRE{SELF}
+               <ul>
+                       [(#SAISIE{input,urlpiwik,
+                               label=<:piwik:label_adresse_serveur:>,
+                               explication=<:piwik:explication_adresse_serveur:>,
+                               obligatoire=oui,
+                               size=50
+                       })]
+                       
+                       [(#SAISIE{input,user,
+                               label=<:piwik:label_piwik_user:>,
+                               obligatoire=oui,
+                               size=50
+                       })]
+                       
+                       [(#SAISIE{input,token,
+                               label=<:piwik:label_token:>,
+                               explication=<:piwik:explication_token:>,
+                               obligatoire=oui,
+                               size=50
+                       })]
+                       [(#CONFIG{piwik/token}|et{#CONFIG{piwik/user}}|oui)
+                               [(#SET{defaut,[(#URL_SITE_SPIP)]})]
+                               [(#SAISIE{sites_piwik,idpiwik,
+                                       label=<:piwik:label_identifiant_site:>,
+                                       explication=<:piwik:explication_identifiant_site:>,
+                                       option_intro='-',
+                                       defaut=#GET{defaut},
+                                       size=5
+                               })]
+                               [(#CONFIG{piwik_admin}|=={oui}|oui)
+                               <li class="editer editer_creer_site">
+                                       <label><:piwik:label_creer_site:></label>
+                                       <p class="explication"><:piwik:explication_creer_site:></p>
+                                       <a href="[(#URL_ACTION_AUTEUR{piwik_creer_site,test&urlsite=[(#CONFIG{piwik/urlpiwik})]&token=[(#CONFIG{piwik/token})],#SELF})]"><:piwik:action_creer_site:></a>
+                                       <a href="[(#URL_ACTION_AUTEUR{piwik_recuperer_liste,test,#SELF})]"><:piwik:action_recuperer_liste:></a>
+                               </li>]
+                               [(#CONFIG{piwik_admin}|=={non}|oui)
+                               <li>
+                                       <label><:piwik:label_recuperer_liste:></label>
+                                       <p class="explication"><:piwik:explication_recuperer_liste:></p>
+                                       <a href="[(#URL_ACTION_AUTEUR{piwik_recuperer_liste,test,#SELF})]"><:piwik:action_recuperer_liste:></a>
+                               </li>]
+                               [(#SAISIE{radio, mode_insertion,
+                                       label=<:piwik:label_mode_insertion:>,
+                                       explication=<:piwik:explication_mode_insertion:>,
+                                       datas=#ARRAY{
+                                               pipeline,<:piwik:mode_insertion_pipeline:>,
+                                               balise,<:piwik:mode_insertion_balise:>
+                               }})]
+
+                               [(#CONFIG{piwik/mode_insertion}|=={balise}|oui)
+
+                                       [(#SAISIE{statuts_auteurs, restreindre_statut_public,
+                                               label=<:piwik:label_restreindre_statut_public:>,
+                                               explication=<:piwik:explication_restreindre_statut_public:>,
+                                               multiple=oui})]
+
+                                       [(#SAISIE{auteurs, restreindre_auteurs_public,
+                                               label=<:piwik:label_restreindre_auteurs_public:>,
+                                               multiple=oui})]
+
+                                       [(#SAISIE{input,exclure_ips,
+                                               label=<:piwik:label_exclure_ips:>,
+                                               explication=<:piwik:explication_exclure_ips:>,
+                                               size=50
+                                       })]
+                               ]
+
+                               [(#SAISIE{case, piwik_prive,
+                                       label=<:piwik:label_comptabiliser_prive:>
+                               })]
+
+                               [(#CONFIG{piwik/piwik_prive}|=={on}|oui)
+                                       [(#SAISIE{statuts_auteurs, restreindre_statut_prive,
+                                               label=<:piwik:label_restreindre_statut_prive:>,
+                                               explication=<:piwik:explication_restreindre_statut_prive:>,
+                                               multiple=oui})]
+
+                                       [(#SAISIE{auteurs, restreindre_auteurs_prive,
+                                               label=<:piwik:label_restreindre_auteurs_prive:>,
+                                               multiple=oui})]
+                               ]
+                       ]
+               </ul>
+               <p class="boutons">
+                       <input type="submit" name="_cfg_ok" value="<:bouton_valider:>" class="submit" />
+               </p>
+       </div></form>
+</div>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/formulaires/configurer_piwik_fonctions.php b/www/plugins/spip_piwik_2_0/formulaires/configurer_piwik_fonctions.php
new file mode 100644 (file)
index 0000000..125de27
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * 
+ * Fonction de verification du formulaire de configuration CFG
+ * 
+ */
+function cfg_config_piwik_verifier(&$cfg){
+       $obligatoires = array('token','user','urlpiwik');
+       foreach($obligatoires as $obligatoire){
+               if(!$cfg->val[$obligatoire]){
+                       $erreur[$obligatoire] = _T('info_obligatoire');
+               }
+       }
+       
+       $piwik_token = $cfg->val['token'];
+       if (!$erreur['token'] && !preg_match('/^[a-f0-9]{32}$/i',$piwik_token)) {
+               $erreur['token'] = _T('piwik:cfg_erreur_token');
+               return $erreur;
+       }
+       $piwik_url = 'http://'.$cfg->val['urlpiwik'].'/';
+       
+       $piwik_recuperer_data = charger_fonction('piwik_recuperer_data','inc');
+       
+       /**
+        * Vérifier la correspondance nom d'utilisateur/ token
+        * Qui nous permettra par la suite de définir d'autres choses
+        */
+       $method_verif_user = 'UsersManager.getUser';
+       $options_user = array('userLogin'=>$cfg->val['user']);
+       $datas_user = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method_verif_user,'PHP',$options_user);
+       if(is_array($datas_user = unserialize($datas_user))){
+               if(!$erreur['user'] && $datas_user['result'] == 'error'){
+                       $erreur['user'] = _T('piwik:cfg_erreur_user_token');
+               }
+               /**
+                * Vérifier que ce token est un token admin
+                * Si non : mettre une meta comme quoi il n'est pas admin pour créer des sites
+                */
+               $method_verif_user_bis = 'UsersManager.getUsers';
+               $datas_user_bis = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method_verif_user_bis,'PHP');
+               $datas_user_bis = unserialize($datas_user_bis);
+               if(is_array($datas_user_bis) && ($datas_user_bis['result'] == 'error')){
+                       ecrire_meta('piwik_admin', 'non');
+               }else{
+                       ecrire_meta('piwik_admin', 'oui');
+                       unset($erreur['user']);
+               }
+       }
+
+       /**
+        * Récupération de la liste des sites où cet utilisateur 
+        * a les droits d'admin
+        */
+       $method = 'SitesManager.getSitesWithAdminAccess';
+       $datas = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method,'PHP');
+       if(!$erreur['urlpiwik'] && !is_array(unserialize($datas))){
+               $erreur['urlpiwik'] = _T('piwik:cfg_erreur_recuperation_data');
+       }else{
+               ecrire_meta('piwik_sites_dispo', $datas);       
+       }
+       
+       return $erreur;
+}
+?>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/images/piwik-22.png b/www/plugins/spip_piwik_2_0/images/piwik-22.png
new file mode 100644 (file)
index 0000000..c878306
Binary files /dev/null and b/www/plugins/spip_piwik_2_0/images/piwik-22.png differ
diff --git a/www/plugins/spip_piwik_2_0/images/piwik.png b/www/plugins/spip_piwik_2_0/images/piwik.png
new file mode 100644 (file)
index 0000000..80d8fd5
Binary files /dev/null and b/www/plugins/spip_piwik_2_0/images/piwik.png differ
diff --git a/www/plugins/spip_piwik_2_0/inc/piwik_recuperer_data.php b/www/plugins/spip_piwik_2_0/inc/piwik_recuperer_data.php
new file mode 100644 (file)
index 0000000..47bb050
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * Fonction de communication avec l'API REST du serveur Piwik
+ * 
+ * @param string $piwik_url Url du serveur
+ * @param string $token_auth Le token d'autentification du serveur
+ * @param string $module [optional]
+ * @param string $method
+ * @param string $format [optional]
+ * @param array $options [optional]
+ * @return string Le contenu de la réponse
+ */
+function inc_piwik_recuperer_data_dist($piwik_url,$token_auth,$module='API',$method,$format='PHP',$options=array()){
+       
+       $url = parametre_url($piwik_url,'token_auth',$token_auth);
+       $url = parametre_url($url,'module','API','&');
+       $url = parametre_url($url,'format',$format,'&');
+       $url = parametre_url($url,'method',$method,'&');
+       if(is_array($options)){
+               foreach($options as $cle => $val){
+                       $url = parametre_url($url,$cle,$val,'&');
+               }
+       }
+       
+       include_spip('inc/distant');
+       $content = recuperer_page($url);
+       
+       return $content;
+}
+?>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik.xml b/www/plugins/spip_piwik_2_0/lang/paquet-piwik.xml
new file mode 100644 (file)
index 0000000..362ef88
--- /dev/null
@@ -0,0 +1,16 @@
+<traduction module="paquet-piwik" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/spip_piwik/spip_piwik_2_0/lang/" reference="fr">
+       <langue code="en" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=es">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       </langue>
+       <langue code="fa" url="http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=fa">
+               <traducteur nom="Davood Hossein" lien="http://trad.spip.net/auteur/davood-hossein" />
+       </langue>
+       <langue code="fr" />
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=ru">
+               <traducteur nom="Serge Markitanenko" lien="http://trad.spip.net/auteur/serge-markitanenko" />
+       </langue>
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=sk">
+               <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
+       </langue>
+</traduction>
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik_en.php b/www/plugins/spip_piwik_2_0/lang/paquet-piwik_en.php
new file mode 100644 (file)
index 0000000..b7564ec
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=en
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // P
+       'piwik_description' => 'Adds the Piwik statistics script (web traffic analyzer) on the pages of the site.',
+       'piwik_slogan' => 'Link [SPIP->http://www.spip.net] and [Piwik->http://www.piwik.org]'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik_es.php b/www/plugins/spip_piwik_2_0/lang/paquet-piwik_es.php
new file mode 100644 (file)
index 0000000..bd240e2
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=es
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // P
+       'piwik_description' => 'Añade el script de estadísticas Piwik (analizador de tráfico web) en las páginas del sitio web.',
+       'piwik_slogan' => 'Conectar Spip y Piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik_fa.php b/www/plugins/spip_piwik_2_0/lang/paquet-piwik_fa.php
new file mode 100644 (file)
index 0000000..ee78176
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=fa
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // P
+       'piwik_description' => 'افزودن نويسه‌ي آماري پيويك (تحليلگر ترافيك وب)(Piwik) روي صفحه‌هاي سايت ',
+       'piwik_slogan' => 'پيوند [اسپيپ->http://www.spip.net] و [پيويك->http://www.piwik.org]'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik_fr.php b/www/plugins/spip_piwik_2_0/lang/paquet-piwik_fr.php
new file mode 100644 (file)
index 0000000..79d9c02
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/spip_piwik/spip_piwik_2_0/lang/
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // P
+       'piwik_description' => 'Ajoute le script de statistiques Piwik (analyseur de trafic web) sur les pages du site.',
+       'piwik_slogan' => 'Interfacer Spip et Piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik_ru.php b/www/plugins/spip_piwik_2_0/lang/paquet-piwik_ru.php
new file mode 100644 (file)
index 0000000..ca346af
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=ru
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // P
+       'piwik_description' => 'Добавляет код системы веб-аналитики Piwik на все страницы сайта.',
+       'piwik_slogan' => 'Объединяет [SPIP->http://www.spip.net] и [Piwik->http://www.piwik.org]'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/paquet-piwik_sk.php b/www/plugins/spip_piwik_2_0/lang/paquet-piwik_sk.php
new file mode 100644 (file)
index 0000000..60df298
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-piwik?lang_cible=sk
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // P
+       'piwik_description' => 'Na stránky webu pridá skript so štatistikami Piwik (analyzátor návštevnosti webu).',
+       'piwik_slogan' => 'Rozhranie Spip a Piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik.xml b/www/plugins/spip_piwik_2_0/lang/piwik.xml
new file mode 100644 (file)
index 0000000..6357732
--- /dev/null
@@ -0,0 +1,16 @@
+<traduction module="piwik" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/spip_piwik/spip_piwik_2_0/lang/" reference="fr">
+       <langue code="ca" />
+       <langue code="de" />
+       <langue code="en" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/piwik?lang_cible=es">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       </langue>
+       <langue code="fa" />
+       <langue code="fr" />
+       <langue code="fr_tu" url="http://trad.spip.net/tradlang_module/piwik?lang_cible=fr_tu">
+               <traducteur nom="beatnick" lien="http://trad.spip.net/auteur/beatnick" />
+       </langue>
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/piwik?lang_cible=sk">
+               <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
+       </langue>
+</traduction>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_ca.php b/www/plugins/spip_piwik_2_0/lang/piwik_ca.php
new file mode 100644 (file)
index 0000000..c772ad9
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=ca
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Crear el lloc',
+       'action_recuperer_liste' => 'Récupérer la liste des sites', # NEW
+
+       // C
+       'cfg_description_piwik' => 'Podeu introduir aquí el vostre nom d\'usuari piwik i l\'adreça del servidor que gestiona les vostres estadístiques.',
+       'cfg_erreur_recuperation_data' => 'Hi ha un error de comunicació amb el servidor, verifiqueu l\'adreça i el token',
+       'cfg_erreur_token' => 'El vostre token d\'identificació és invàlid',
+       'cfg_erreur_user_token' => 'La correspondance Nom d\'utilisateur / Token n\'est pas correcte.', # NEW
+
+       // E
+       'explication_adresse_serveur' => 'Entreu l\'adreça sense "http://" ni "https://" ni barra final',
+       'explication_creer_site' => 'El següent enllaç us permet crear un lloc al servidor Piwik que estarà disponible a continuació a la llista. Verifiqueu que heu configurat l\'adreça correctament i el nom del vostre lloc SPIP abans de clicar. Són aquestes informacions les que s\'utilitzaran.',
+       'explication_exclure_ips' => 'Per excloure diverses adreces, separeu-les amb punts i comes',
+       'explication_identifiant_site' => 'La llista dels llocs disponibles al servidor Piwik s\'ha recuperat automàticament gràcies a les informacions presentades. Seleccioneu de la següent llista la que més us convingui',
+       'explication_mode_insertion' => 'Hi ha dues maneres d\'inserir a les pàgines el codi necessari per un bon funcionament del connector. Mitjançant el pipeline "insert_head" (mètode automàtic però poc configurable), o mitjançant la inserció d\'una etiqueta (mètode manual inserint a la part inferior de les vostres pàgines l\'etiqueta #PIWIK) que, a més a més, és totalment configurable.',
+       'explication_recuperer_liste' => 'Le lien ci-dessous vous permet de récupérer la liste des sites que votre compte peut administrer sur le serveur Piwik.', # NEW
+       'explication_restreindre_statut_prive' => 'Escolliu aquí els estats d\'usuaris que no es comptabilitzaran a les estadístiques en l\'espai privat',
+       'explication_restreindre_statut_public' => 'Escolliu aquí els estats d\'usuaris que no es comptabilitzaran a les estadístiques a la part pública',
+       'explication_token' => 'El token d\'identificació està disponible o bé a les vostres preferències personals o a la part API de vostre servidor Piwik',
+
+       // I
+       'info_aucun_site_compte' => 'Aucun site n\'est associé à votre compte Piwik.', # NEW
+       'info_aucun_site_compte_demander_admin' => 'Vous devez demander à un administrateur de votre serveur Piwik d\'ajouter un site correspondant.', # NEW
+
+       // L
+       'label_adresse_serveur' => 'Adreça URL del servidor (https:// o http://)',
+       'label_comptabiliser_prive' => 'Comptabilitzar les visites de l\'espai privat',
+       'label_creer_site' => 'Crear un lloc al servidor Piwik',
+       'label_exclure_ips' => 'Excloure certes adreces IP',
+       'label_identifiant_site' => 'L\'identificador del vostre lloc al servidor Piwik',
+       'label_mode_insertion' => 'Mode d\'inserció a les pàgines públiques',
+       'label_piwik_user' => 'Compte utilisateur Piwik', # NEW
+       'label_recuperer_liste' => 'Récupérer la liste des sites sur le serveur Piwik', # NEW
+       'label_restreindre_auteurs_prive' => 'Restringir determinats usuaris connectats (privat)',
+       'label_restreindre_auteurs_public' => 'Restringir determinats usuaris connectats (públic)',
+       'label_restreindre_statut_prive' => 'Restringir determinats estats d\'usuaris a l\'espai privat',
+       'label_restreindre_statut_public' => 'Restringir determinats estats d\'usuaris a l\'espai públic',
+       'label_token' => 'Token d\'identificació al vostre servidor',
+
+       // M
+       'mode_insertion_balise' => 'Inserció per mitjà de l\'etiqueta #PIWIK (cal que modifiqueu els vostres esquelets)',
+       'mode_insertion_pipeline' => 'Inserció automàtica per mitja del pipeline "insert_head"',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Nom d\'usuari',
+       'textes_url_piwik' => 'El vostre servidor piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_de.php b/www/plugins/spip_piwik_2_0/lang/piwik_de.php
new file mode 100644 (file)
index 0000000..7aed9f9
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=de
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Site anlegen',
+       'action_recuperer_liste' => 'Récupérer la liste des sites', # NEW
+
+       // C
+       'cfg_description_piwik' => 'Hier können sie ihre PIWIK-Anmeldedaten sowie die Adresse des Servers für ihre Statistiken angeben.',
+       'cfg_erreur_recuperation_data' => 'Kommunikation mit dem Server gescheitert, bitte überprüfen sie die Adresse und das Token.',
+       'cfg_erreur_token' => 'Ihre Token-ID ist ungültig.',
+       'cfg_erreur_user_token' => 'La correspondance Nom d\'utilisateur / Token n\'est pas correcte.', # NEW
+
+       // E
+       'explication_adresse_serveur' => 'Geben sie die Adresse ohne "http://" oder "https://" und ohne Slash "/" am Ende an.',
+       'explication_creer_site' => 'Mit diesem Link können sie auf dem PIWIK-Server eine Site anlegen, welche dann in der Liste angezeigt wird. Bitte prüfen sie, ob sie den Namen und die Adresse ihrer SPIP-Website richtig eingetragen haben, denn diese Daten werden an PIWIK übertragen.',
+       'explication_exclure_ips' => 'Um mehrere Adressen auszuschließen, trennen sie sie bitte mit einem Semikolon.',
+       'explication_identifiant_site' => 'Die Liste der auf dem PIWIK-Server verfügbaren Websites wurde aufgrund der angegebenen Informationen übertragen. Bitte wählen sie in der untenstehenden Liste die gewünschte Site aus.',
+       'explication_mode_insertion' => 'Es gibt zwei Methoden, den für das Funktionieren des Plugins erforderlichen Code in die Seiten einzufügen: Mit der Pipeline "indert_head" (vollautomatisch aber ohne erweiterte Konfigurationsmöglichkeiten) oder durch Einfügen des Tags #PIWIK in den Fußbereich ihrer Skelette (dann können sie alle Konfigurationsoptionen nutzen).',
+       'explication_recuperer_liste' => 'Le lien ci-dessous vous permet de récupérer la liste des sites que votre compte peut administrer sur le serveur Piwik.', # NEW
+       'explication_restreindre_statut_prive' => 'Wählen sie hier den Status der Besucher, deren Zugriffe auf das Redaktionssystem nicht in der Statistik erfaßt werden',
+       'explication_restreindre_statut_public' => 'Wählen sie hier den Status der Besucher, deren Zugriffe auf den öffentlichen Teil der Website nicht in der Statistik erfaßt werden',
+       'explication_token' => 'Das Identifikations-Token finden sie in ihren persönlichen Einstellungen oder im API-Bereich ihres PIWIK-Servers.',
+
+       // I
+       'info_aucun_site_compte' => 'Aucun site n\'est associé à votre compte Piwik.', # NEW
+       'info_aucun_site_compte_demander_admin' => 'Vous devez demander à un administrateur de votre serveur Piwik d\'ajouter un site correspondant.', # NEW
+
+       // L
+       'label_adresse_serveur' => 'Adresse (URL) des Servers (https:// oder http://)',
+       'label_comptabiliser_prive' => 'Abrufe des Redaktionssystems erfassen',
+       'label_creer_site' => 'Eine Site auf dem Piwik-Server anlegen',
+       'label_exclure_ips' => 'Bestimmte IP-Adressen ausschließen',
+       'label_identifiant_site' => 'ID ihrer Website auf dem Piwik-Server',
+       'label_mode_insertion' => 'Typ des Einfügens in die öffentlichen Seiten',
+       'label_piwik_user' => 'Compte utilisateur Piwik', # NEW
+       'label_recuperer_liste' => 'Récupérer la liste des sites sur le serveur Piwik', # NEW
+       'label_restreindre_auteurs_prive' => 'Einschränkungen für manche angemeldeten Besucher (Redaktion)',
+       'label_restreindre_auteurs_public' => 'Einschränkungen für manche angemeldeten Besucher (öffentlicher Bereich)',
+       'label_restreindre_statut_prive' => 'Einschränkungen für manche Mitglieder im Redaktionssystem',
+       'label_restreindre_statut_public' => 'Einschränkungen für manche Mitglieder im öffentlichen Bereich',
+       'label_token' => 'ID-Token auf dem Server',
+
+       // M
+       'mode_insertion_balise' => 'Einfügen mit dem Tag #PIWIK (erfordert Änderung ihrer Skelette)',
+       'mode_insertion_pipeline' => 'Automatisches Einfügen mit der Pipeline "insert_head"',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Ihre ID',
+       'textes_url_piwik' => 'Ihr Piwik-Server'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_en.php b/www/plugins/spip_piwik_2_0/lang/piwik_en.php
new file mode 100644 (file)
index 0000000..3ab8eb7
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=en
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Create the site',
+       'action_recuperer_liste' => 'Retrieve the list of sites',
+
+       // C
+       'cfg_description_piwik' => 'You can specify your piwik identifier here, as well as the the address of your statistics server.',
+       'cfg_erreur_recuperation_data' => 'There was a server communication problem - please check the address and token',
+       'cfg_erreur_token' => 'Your identification token is invalid',
+       'cfg_erreur_user_token' => 'The username and token do not match each other.',
+
+       // E
+       'explication_adresse_serveur' => 'Enter the URL address without "http://" or "https://" and without the final slash',
+       'explication_creer_site' => 'The link below enables you to create a site on the Piwik server which will then be available from the list.Check that you have correctly entered the address and name of your SPIP site before clicking, as these are the details will be used later.',
+       'explication_exclure_ips' => 'To nominate several addresses to be excluded, separate them with semi-colons',
+       'explication_identifiant_site' => 'The list of sites available on the Piwik server has been automatically retrieved using the submitted details. Select the one you wish to use from the list below',
+       'explication_mode_insertion' => 'There are two methods for inserting the code pages required to make the plugin work correctly: either with the "insert_head" pipeline (an automatic method with only minor configurations possible), or by inserting a tag (a manual method of including the #PIWIK tag at the bottom of your pages), which is fully configurable.',
+       'explication_recuperer_liste' => 'The link below is used to retrieve the lists of sites that your account can manage on the Piwik server.',
+       'explication_restreindre_statut_prive' => 'Select the user statuses which will not be taken into account in the private zone statistics',
+       'explication_restreindre_statut_public' => 'Select the user statuses which will not be taken into account in the public zone statistics',
+       'explication_token' => 'The identification token is available in your personal preferences or in the API section on your Piwik server',
+
+       // I
+       'info_aucun_site_compte' => 'There are no sites associated with your Piwik account.',
+       'info_aucun_site_compte_demander_admin' => 'You need to ask an administrator of your Piwik server to add a matching site.',
+
+       // L
+       'label_adresse_serveur' => 'URL address of the server (https:// or http://)',
+       'label_comptabiliser_prive' => 'Include visits to the private space',
+       'label_creer_site' => 'Create a site on the Piwik server',
+       'label_exclure_ips' => 'Exclude certain IP addresses',
+       'label_identifiant_site' => 'The identifier of your site on the Piwik server',
+       'label_mode_insertion' => 'Insert mode for the public pages',
+       'label_piwik_user' => 'Piwik user account',
+       'label_recuperer_liste' => 'Retrieve the list of sites on the Piwik server',
+       'label_restreindre_auteurs_prive' => 'Restrict certain logged in users (private)',
+       'label_restreindre_auteurs_public' => 'Restrict certain logged in users (public)',
+       'label_restreindre_statut_prive' => 'Restrict certain user statuses in the private zone',
+       'label_restreindre_statut_public' => 'Restrict certain user statuses in the public zone',
+       'label_token' => 'Identification token on the server',
+
+       // M
+       'mode_insertion_balise' => 'Insert using the #PIWIK tag (you must modify your templates)',
+       'mode_insertion_pipeline' => 'Automatic insertion using the "insert_head" pipeline',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Your identifier',
+       'textes_url_piwik' => 'Your piwik server'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_es.php b/www/plugins/spip_piwik_2_0/lang/piwik_es.php
new file mode 100644 (file)
index 0000000..76a4dd8
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=es
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Crear la lista',
+       'action_recuperer_liste' => 'Recuperar la lista de sitios webs',
+
+       // C
+       'cfg_description_piwik' => 'Aquí puede indicar su identificador piwik, así como la dirección del servidor que administra sus estadísticas.',
+       'cfg_erreur_recuperation_data' => 'Hay un error de comunicación con el servidor, verifique por favor la dirección y el token',
+       'cfg_erreur_token' => 'Su token de identificación no es válido',
+       'cfg_erreur_user_token' => 'La correspondencia entre Nombre de usuario / Token no es correcta. ',
+
+       // E
+       'explication_adresse_serveur' => 'Introduzca la dirección sin "http://" ni "https://" ni barra final',
+       'explication_creer_site' => 'El siguiente enlace le permite crear un sitio web en el servidor Piwik que estará disponible después en la lista. Verifique que ha configurado bien la dirección y el nombre de su sitio web SPIP antes de hacer click, ésta será la información utilizada.',
+       'explication_exclure_ips' => 'Para excluir varias direcciones, sepárelas por punto y coma',
+       'explication_identifiant_site' => 'La lista de los sitios webs disponibles en el servidor Piwik se ha recuperado automáticamente grácias a las informaciones presentadas. Seleccione en la siguiente lista el que le convenga',
+       'explication_mode_insertion' => 'Hay dos modos de inserción en las páginas del código necesario para el buen funcionamiento del plugin. Mediante el pipeline "insert_head" (método automático pero poco configurable), o mediante la inserción de una etiqueta (método manual cuando se inserta al pie de sus páginas la etiqueta #PIWIK), la cual es plenamente configurable. ',
+       'explication_recuperer_liste' => 'El siguiente enlace le permite recuperar la lista de sitios webs que su cuenta puede administrar en el servidor Piwik.',
+       'explication_restreindre_statut_prive' => 'Elija aquí los estatus de usuarios que no serán contabilizados en las estadísticas en el espacio privado',
+       'explication_restreindre_statut_public' => 'Elija aquí los estatus de usuarios que no serán contabilizados en las estadísticas en la parte público',
+       'explication_token' => 'El token de identificación está disponible en sus preferencias personales o en la parte API de su servidor Piwik',
+
+       // I
+       'info_aucun_site_compte' => 'Ningún sitio web está asociado a su cuenta Piwik.',
+       'info_aucun_site_compte_demander_admin' => 'Ha de solicitar a un administrador de su servidor Piwik el añadir un sitio correspondiente',
+
+       // L
+       'label_adresse_serveur' => 'Dirección URL del servidor (https:// o http://)',
+       'label_comptabiliser_prive' => 'Contabilizar las visitas al espacio privado',
+       'label_creer_site' => 'Crear un sitio en el servidor Piwik',
+       'label_exclure_ips' => 'Excluir ciertas direcciones IP',
+       'label_identifiant_site' => 'El identificador de su sitio web en el servidor Piwik',
+       'label_mode_insertion' => 'Modo de inserción en las páginas públicas',
+       'label_piwik_user' => 'Cuenta de usuario Piwik',
+       'label_recuperer_liste' => 'Recuperar la lista de sitios en el servidor Piwik',
+       'label_restreindre_auteurs_prive' => 'Restringir a ciertos usuarios conectados (privados)',
+       'label_restreindre_auteurs_public' => 'Restringir a ciertos usuarios conectados (público)',
+       'label_restreindre_statut_prive' => 'Restringir a ciertos estatus de usuarios en el espacio privado',
+       'label_restreindre_statut_public' => 'Restringir a ciertos estatus de usuarios en la parte pública',
+       'label_token' => 'Token de identificación en el servidor',
+
+       // M
+       'mode_insertion_balise' => 'Inserción por la etiqueta #PIWIK (modificación necesaria de sus essqueletos)',
+       'mode_insertion_pipeline' => 'Inserción automática por el pipeline "insert_head"',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Su identificador',
+       'textes_url_piwik' => 'Su servidor Piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_fa.php b/www/plugins/spip_piwik_2_0/lang/piwik_fa.php
new file mode 100644 (file)
index 0000000..4568b31
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=fa
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'ايجاد سايت',
+       'action_recuperer_liste' => 'بازيافت فهرست سايت‌ها',
+
+       // C
+       'cfg_description_piwik' => 'اينجا مي‌توانيد شناسه‌ي پي‌ويك (piwik) خود، نيز، نشاني ميزبان آمارهاي خود را مشخص كنيد.',
+       'cfg_erreur_recuperation_data' => 'در ارتباط با ميزبان خطايي رخ داده،‌نشاني و علامت را چك كنيد',
+       'cfg_erreur_token' => 'علامت شناسه‌ي شما معتبر نيست',
+       'cfg_erreur_user_token' => 'كاربرنام و نشانه با هم نمي‌خوانند.',
+
+       // E
+       'explication_adresse_serveur' => 'نشاني خود را بدون"http://" و "https://" و بدون خط كج آخر وارد كنيد.',
+       'explication_creer_site' => 'پيوند زير شما را قادر مي‌سازد تا روي ميزبان پي‌ويك خود يك سايت ايجاد كنيد كه سپس از طريق فهرست در دسترس قرار خواهد داشت. پيش از كليك چك كنيد كه نشاني و نام سايت اسپيپ خود را درست وارد كرده‌ايد، زيرا اين جزئيات بعداً مورد استفاده قرار مي‌گيرند.  ',
+       'explication_exclure_ips' => 'براي كنار گذاشتن تعدادي از نشاني‌ها،‌ آن‌ها را با نقطه ويرگول جداسازي كنيد',
+       'explication_identifiant_site' => 'فهرست سايت‌هاي در دسترس در ميزبان پي‌ويك به صورت خودكار و با استفاده از جزئيات بازيافت شده است. يكي از آن‌ها را كه مي‌خواهيد استفاده كنيد از فهرست زير انتخاب كنيد.',
+       'explication_mode_insertion' => 'براي گنجاندن كد صفحه‌هاي مورد نياز براي كاركرد دست پلاگين دو روش موجود است: هم با خط لوله‌ي"insert_head" (يك روش خودكار با كم‌ترين پيكربندي ممكن)، يا با گنجاندن يك تگ (يك روش دستي شامل تگ #PIWIK در پائين صفحه‌هاي شما)، كه به طور كامل قابل پيكربندي است. ',
+       'explication_recuperer_liste' => 'پيوند زيز براي بازيافت فهرست سايت‌هايي مورد استفاده قرار مي‌گيرد كه حساب شما مي‌تواند روي ميزبان پي‌ويك مديريت كند. ',
+       'explication_restreindre_statut_prive' => 'در اينجا وضعيت‌هاي كارفر را انتخاب كنيد كه در آمارهاي بخش خصوصي به حساب نمي‌آيند.',
+       'explication_restreindre_statut_public' => 'در اينجا وضعيت‌‌هايي براي كاربر انتخاب كنيد كه در آمارهاي بخش همگاني به حساب مي‌آيند.   ',
+       'explication_token' => 'نشانه‌ي شناسايي در ترجيحات شخصي شما يا در بخش آي.پي.اي ميزبان پي‌ويك شما در دسترس است. ',
+
+       // I
+       'info_aucun_site_compte' => 'هيچ سايت مرتبط با حساب پي‌ويك شما موجود نيست ',
+       'info_aucun_site_compte_demander_admin' => 'براي افزودن يك سايت مربوطه بايد از ادمين ميزبان پي‌ويك خود بخواهيد. ',
+
+       // L
+       'label_adresse_serveur' => 'نشاني يو.آر.ال ميزبان (https://  يا http://)',
+       'label_comptabiliser_prive' => 'گنجاندن بازديد‌هاي بخش خصوصي',
+       'label_creer_site' => 'ايجاد يك سايت روي ميزبان پي‌ويك',
+       'label_exclure_ips' => 'كنارگذاشتن بعضي از آي.پي نشاني‌ها',
+       'label_identifiant_site' => 'شناسه‌ي سايت شما روي ميزبان پي‌ويك',
+       'label_mode_insertion' => 'گنجاندن مد در صفحه‌هاي همگاني',
+       'label_piwik_user' => 'حساب كاربر پي‌ويك ',
+       'label_recuperer_liste' => 'بازيافت فهرست سايت‌ها روي ميزبان پي‌ويك',
+       'label_restreindre_auteurs_prive' => 'محدودسازي بعضي از كاربران متصل (قسمت خصوصي)',
+       'label_restreindre_auteurs_public' => 'محدودسازي بعضي از كاربران متصل (قسمت همگاني)',
+       'label_restreindre_statut_prive' => 'محدودسازي بعضي از وضعيت‌هاي كاربران در قسمت خصوصي ',
+       'label_restreindre_statut_public' => 'محدودسازي بعضي از وضعيت‌هاي كاربران در قسمت همگاني ',
+       'label_token' => 'نشانه‌ي شناسايي روي ميزبان ',
+
+       // M
+       'mode_insertion_balise' => 'گنجاندن با استفاده از تگ PIWIK# (بايد اسكلت‌ها‌ي خود را اصلاح كنيد)',
+       'mode_insertion_pipeline' => 'گنجاندن خودكار با استفاده از خط لوله "insert_head"',
+
+       // P
+       'piwik' => 'پي‌ويك (Piwik)',
+
+       // T
+       'texte_votre_identifiant' => 'شناسه‌ي شما',
+       'textes_url_piwik' => 'ميزبان پي‌ويك شما'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_fr.php b/www/plugins/spip_piwik_2_0/lang/piwik_fr.php
new file mode 100644 (file)
index 0000000..060f77a
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/spip_piwik/spip_piwik_2_0/lang/
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Créer le site',
+       'action_recuperer_liste' => 'Récupérer la liste des sites',
+
+       // C
+       'cfg_description_piwik' => 'Ici vous pouvez indiquer votre identifiant piwik, ainsi que l\'adresse du serveur gérant vos statistiques.',
+       'cfg_erreur_recuperation_data' => 'Il y a une erreur de communication avec le serveur, veuillez vérifier l\'adresse et le token',
+       'cfg_erreur_token' => 'Votre token d\'identification est invalide',
+       'cfg_erreur_user_token' => 'La correspondance Nom d\'utilisateur / Token n\'est pas correcte.',
+
+       // E
+       'explication_adresse_serveur' => 'Entrez l\'adresse sans "http://" ni "https://" ni slash final',
+       'explication_creer_site' => 'Le lien ci-dessous vous permet de créer un site sur le serveur Piwik qui sera disponible ensuite dans la liste. Vérifiez que vous avez bien configuré l\'adresse et le nom de votre site SPIP avant de cliquer, ce sont ces informations qui seront utilisées.',
+       'explication_exclure_ips' => 'Pour exclure plusieurs adresses, séparez les par des points virgules',
+       'explication_identifiant_site' => 'La liste des sites disponibles sur le serveur Piwik a été récupérée automatiquement gràce aux informations soumises. Sélectionnez dans la liste ci-dessous celui qui vous convient',
+       'explication_mode_insertion' => 'Il existe deux modes d\'insertion dans les pages du code nécessaire au bon fonctionnement du plugin. Par le pipeline "insert_head" (méthode automatique mais peu configurable), ou par l\'insertion d\'une balise (méthode manuelle en insérant dans le pied de vos pages la balise #PIWIK) qui, quant à elle est pleinement configurable.',
+       'explication_recuperer_liste' => 'Le lien ci-dessous vous permet de récupérer la liste des sites que votre compte peut administrer sur le serveur Piwik.',
+       'explication_restreindre_statut_prive' => 'Choisissez ici les statuts d\'utilisateurs qui ne seront pas comptabilisés dans les statistiques dans l\'espace privé',
+       'explication_restreindre_statut_public' => 'Choisissez ici les statuts d\'utilisateurs qui ne seront pas comptabilisés dans les statistiques dans la partie publique',
+       'explication_token' => 'Le token d\'identification est disponible dans vos préférences personnelles ou dans la partie API de votre serveur Piwik',
+
+       // I
+       'info_aucun_site_compte' => 'Aucun site n\'est associé à votre compte Piwik.',
+       'info_aucun_site_compte_demander_admin' => 'Vous devez demander à un administrateur de votre serveur Piwik d\'ajouter un site correspondant.',
+
+       // L
+       'label_adresse_serveur' => 'Adresse URL du serveur (https:// ou http://)',
+       'label_comptabiliser_prive' => 'Comptabiliser les visites de l\'espace privé',
+       'label_creer_site' => 'Créer un site sur le serveur Piwik',
+       'label_exclure_ips' => 'Exclure certaines adresses IP',
+       'label_identifiant_site' => 'L\'identifiant de votre site sur le serveur Piwik',
+       'label_mode_insertion' => 'Mode d\'insertion dans les pages publiques',
+       'label_piwik_user' => 'Compte utilisateur Piwik',
+       'label_recuperer_liste' => 'Récupérer la liste des sites sur le serveur Piwik',
+       'label_restreindre_auteurs_prive' => 'Restreindre certains utilisateurs connectés (privé)',
+       'label_restreindre_auteurs_public' => 'Restreindre certains utilisateurs connectés (public)',
+       'label_restreindre_statut_prive' => 'Restreindre certains statuts d\'utilisateurs dans l\'espace privé',
+       'label_restreindre_statut_public' => 'Restreindre certains statuts d\'utilisateurs dans la partie publique',
+       'label_token' => 'Token d\'identification sur le serveur',
+
+       // M
+       'mode_insertion_balise' => 'Insertion par la balise #PIWIK (modification nécessaire de vos squelettes)',
+       'mode_insertion_pipeline' => 'Insertion automatique par le pipeline "insert_head"',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Votre identifiant',
+       'textes_url_piwik' => 'Votre serveur piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_fr_tu.php b/www/plugins/spip_piwik_2_0/lang/piwik_fr_tu.php
new file mode 100644 (file)
index 0000000..a612fa4
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=fr_tu
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Créer le site',
+       'action_recuperer_liste' => 'Récupérer la liste des sites',
+
+       // C
+       'cfg_description_piwik' => 'Ici tu peux indiquer ton identifiant piwik, ainsi que l\'adresse du serveur gérant tes statistiques.',
+       'cfg_erreur_recuperation_data' => 'Il y a une erreur de communication avec le serveur, vérifie l\'adresse et le token',
+       'cfg_erreur_token' => 'Ton token d\'identification est invalide',
+       'cfg_erreur_user_token' => 'La correspondance Nom d\'utilisateur / Token n\'est pas correcte.',
+
+       // E
+       'explication_adresse_serveur' => 'Entre l\'adresse sans "http://" ni "https://" ni slash final',
+       'explication_creer_site' => 'Le lien ci-dessous te permet de créer un site sur le serveur Piwik qui sera disponible ensuite dans la liste. Vérifie que tu as bien configuré l\'adresse et le nom de votre site SPIP avant de cliquer, ce sont ces informations qui seront utilisées.',
+       'explication_exclure_ips' => 'Pour exclure plusieurs adresses, sépare les par des points virgules',
+       'explication_identifiant_site' => 'La liste des sites disponibles sur le serveur Piwik a été récupérée automatiquement gràce aux informations soumises. Sélectionne dans la liste ci-dessous celui qui te convient',
+       'explication_mode_insertion' => 'Il existe deux modes d\'insertion dans les pages du code nécessaire au bon fonctionnement du plugin. Par le pipeline "insert_head" (méthode automatique mais peu configurable), ou par l\'insertion d\'une balise (méthode manuelle en insérant dans le pied de tes pages la balise #PIWIK) qui, quant à elle est pleinement configurable.',
+       'explication_recuperer_liste' => 'Le lien ci-dessous te permet de récupérer la liste des sites que ton compte peut administrer sur le serveur Piwik.',
+       'explication_restreindre_statut_prive' => 'Choisis ici les statuts d\'utilisateurs qui ne seront pas comptabilisés dans les statistiques dans l\'espace privé',
+       'explication_restreindre_statut_public' => 'Choisis ici les statuts d\'utilisateurs qui ne seront pas comptabilisés dans les statistiques dans la partie publique',
+       'explication_token' => 'Le token d\'identification est disponible dans tes préférences personnelles ou dans la partie API de ton serveur Piwik',
+
+       // I
+       'info_aucun_site_compte' => 'Aucun site n\'est associé à ton compte Piwik.',
+       'info_aucun_site_compte_demander_admin' => 'Tu dois demander à un administrateur de ton serveur Piwik d\'ajouter un site correspondant.',
+
+       // L
+       'label_adresse_serveur' => 'Adresse URL du serveur (https:// ou http://)',
+       'label_comptabiliser_prive' => 'Comptabiliser les visites de l\'espace privé',
+       'label_creer_site' => 'Créer un site sur le serveur Piwik',
+       'label_exclure_ips' => 'Exclure certaines adresses IP',
+       'label_identifiant_site' => 'L\'identifiant de ton site sur le serveur Piwik',
+       'label_mode_insertion' => 'Mode d\'insertion dans les pages publiques',
+       'label_piwik_user' => 'Compte utilisateur Piwik',
+       'label_recuperer_liste' => 'Récupérer la liste des sites sur le serveur Piwik',
+       'label_restreindre_auteurs_prive' => 'Restreindre certains utilisateurs connectés (privé)',
+       'label_restreindre_auteurs_public' => 'Restreindre certains utilisateurs connectés (public)',
+       'label_restreindre_statut_prive' => 'Restreindre certains statuts d\'utilisateurs dans l\'espace privé',
+       'label_restreindre_statut_public' => 'Restreindre certains statuts d\'utilisateurs dans la partie publique',
+       'label_token' => 'Token d\'identification sur le serveur',
+
+       // M
+       'mode_insertion_balise' => 'Insertion par la balise #PIWIK (modification nécessaire de tes squelettes)',
+       'mode_insertion_pipeline' => 'Insertion automatique par le pipeline "insert_head"',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Ton identifiant',
+       'textes_url_piwik' => 'Ton serveur piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/lang/piwik_sk.php b/www/plugins/spip_piwik_2_0/lang/piwik_sk.php
new file mode 100644 (file)
index 0000000..a9da1ec
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/piwik?lang_cible=sk
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'action_creer_site' => 'Vytvoriť stránku',
+       'action_recuperer_liste' => 'Získať zoznam stránok',
+
+       // C
+       'cfg_description_piwik' => 'Tu môžete uviesť svoj identifikátor pre piwik, ako aj adresu svojho štatistického servera.',
+       'cfg_erreur_recuperation_data' => 'Pri komunikácii so serverom sa vyskytol problém – prosím, skontrolujte adresu a token',
+       'cfg_erreur_token' => 'Váš identifikačný reťazec je neplatný',
+       'cfg_erreur_user_token' => 'Používateľské meno alebo reťazec nie sú správne.',
+
+       // E
+       'explication_adresse_serveur' => 'Zadajte adresu stránky bez "http://" alebo "https://" a bez lomky na konci',
+       'explication_creer_site' => 'Odkaz vám umožňuje vytvoriť stránku na serveri s Piwikom, ktorá bude potom dostupná na zozname. Pred kliknutím skontrolujte, či ste správne zadali adresu a názov svojej stránky v SPIPe, lebo tieto údaje sa budú neskôr používať.',
+       'explication_exclure_ips' => 'Ak vymenujete niekoľko adries, ktoré majú byť vylúčené, oddeľte ich bodkočiarkami',
+       'explication_identifiant_site' => 'Zoznam dostupných stránok na serveri s Piwikom bol automaticky získaný pomocou odoslaných údajov. Zo zoznamu si vyberte tú, ktorú chcete použiť.',
+       'explication_mode_insertion' => 'Na vloženie kódu potrebného na správne fungovanie zásuvného modulu sú dva spôsoby. Cez "insert_head" (automatický spôsob, čo sa však nedá upraviť) alebo vložením tagu (manuálne, vložením tagu #PIWIK do päty vašich stránok), čo sa dá upraviť celkom podľa vašich želaní.',
+       'explication_recuperer_liste' => 'Tento odkaz sa používa na získavanie zoznamu stránok, ktoré môže váš účet riadiť na vašom serveri s Piwikom.',
+       'explication_restreindre_statut_prive' => 'Vyberte funkcie používateľov, ktorí nebudú zarátaní do štatistík pre súkromnú zónu',
+       'explication_restreindre_statut_public' => 'Vyberte funkcie používateľov, ktorí sa nebudú brať do úvahy pri štatistikách pre verejne prístupnú stránku',
+       'explication_token' => 'Identifikačný token je dostupný vo vašich osobných predvoľbách alebo v časti aplikácie na vašom serveri s Piwikom',
+
+       // I
+       'info_aucun_site_compte' => 'K vášmu účtu na Piwiku nie sú priradené žiadne stránky.',
+       'info_aucun_site_compte_demander_admin' => 'O pridanie zodpovedajúcej stránky musíte požiadať administrátora svojho servera s Piwikom.',
+
+       // L
+       'label_adresse_serveur' => 'Internetová adresa servera (https:// alebo http://)',
+       'label_comptabiliser_prive' => 'Pridať návštevy súkromnej zóny',
+       'label_creer_site' => 'Vytvoriť stránku na serveri s Piwikom',
+       'label_exclure_ips' => 'Vylúčiť určité IP adresy',
+       'label_identifiant_site' => 'Identifikátor vašej stránky na serveri s Piwikom',
+       'label_mode_insertion' => 'Režim vkladania pre verejne prístupné stránky',
+       'label_piwik_user' => 'Používateľský účet Piwiku',
+       'label_recuperer_liste' => 'Získať zoznam stránok na serveri s Piwikom',
+       'label_restreindre_auteurs_prive' => 'Obmedziť prístup určitým prihláseným používateľom (súkromná zóna)',
+       'label_restreindre_auteurs_public' => 'Obmedziť prístup určitým prihláseným používateľom (verejné)',
+       'label_restreindre_statut_prive' => 'Obmedziť prístup do súkromnej zóny pre určité funkcie',
+       'label_restreindre_statut_public' => 'Obmedziť prístup do súkromnej zóny pre určité funkcie',
+       'label_token' => 'Identifikačný reťazec na server',
+
+       // M
+       'mode_insertion_balise' => 'Vložiť pomocou tagu #PIWIK (musíte upraviť svoje šablóny)',
+       'mode_insertion_pipeline' => 'Automatické vkladanie pomocou reťazenia údajov "insert_head"',
+
+       // P
+       'piwik' => 'Piwik',
+
+       // T
+       'texte_votre_identifiant' => 'Váš identifikátor',
+       'textes_url_piwik' => 'Váš server pre piwik'
+);
+
+?>
diff --git a/www/plugins/spip_piwik_2_0/paquet.xml b/www/plugins/spip_piwik_2_0/paquet.xml
new file mode 100644 (file)
index 0000000..454623c
--- /dev/null
@@ -0,0 +1,27 @@
+<paquet
+       prefix="piwik"
+       categorie="statistique"
+       version="0.6.0"
+       etat="stable"
+       compatibilite="[2.0.8;3.0.99]"
+       logo="piwik.png"
+       schema="0.1"
+       documentation="http://www.spip-contrib.net/?article2860"
+>      
+
+       <nom>Piwik</nom>
+       <!-- Interfacer Spip et Piwik -->
+
+       <auteur>jsb</auteur>
+       <auteur lien="http://www.kent1.info" mail="kent1@arscenic.info">kent1</auteur>
+
+       <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GNU/GPL</licence>
+
+       <traduire module="piwik" reference="fr" gestionnaire="salvatore" />
+
+       <pipeline nom="insert_head" inclure="piwik_pipelines.php" />
+       <pipeline nom="header_prive" inclure="piwik_pipelines.php" />
+       <pipeline nom="formulaire_verifier" inclure="piwik_pipelines.php" />
+
+       <necessite nom="saisies" compatibilite="[1.1;[" />
+</paquet>
diff --git a/www/plugins/spip_piwik_2_0/piwik.png b/www/plugins/spip_piwik_2_0/piwik.png
new file mode 100644 (file)
index 0000000..7f6f9e7
Binary files /dev/null and b/www/plugins/spip_piwik_2_0/piwik.png differ
diff --git a/www/plugins/spip_piwik_2_0/piwik_administrations.php b/www/plugins/spip_piwik_2_0/piwik_administrations.php
new file mode 100644 (file)
index 0000000..6abb45c
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Plugin Piwik
+ * 
+ * @package SPIP\Piwik\Installation
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/meta');
+
+/**
+ * Action d'installation et de mise à jour
+ * 
+ * @param string $nom_meta_version_base
+ *             Le nom de la méta de version dans spip_meta
+ * @param float $version_cible
+ *             Le numéro de version vers laquelle effectuer la maj
+ */
+function piwik_upgrade($nom_meta_version_base, $version_cible){
+
+       $version_actuelle = '0.0';
+       if (
+               (!isset($GLOBALS['meta'][$nom_meta_version_base]))
+               || (($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible)
+       ){
+               
+               if (version_compare($version_actuelle,'0.0','=')){
+                       /**
+                        * Si la configuration est présente on récupère la liste des sites
+                        */
+                       if(is_array($config = lire_config('piwik',''))
+                               && isset($config['urlpiwik']) && isset($config['token'])
+                       ){
+                               $piwik_recuperer_data = charger_fonction('piwik_recuperer_data','inc');
+                               
+                               /**
+                                * Récupération de la liste des sites où cet utilisateur 
+                                * a les droits d'admin
+                                */
+                               $method = 'SitesManager.getSitesWithAdminAccess';
+                               $datas = $piwik_recuperer_data($config['urlpiwik'],$config['token'],'',$method,'PHP');
+                               if(is_array(unserialize($datas))){
+                                       ecrire_meta('piwik_sites_dispo', $datas);
+                               }
+                       }
+
+                       ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');
+               }
+       }
+}
+
+/**
+ * Action de désinstallation
+ * -* Effacer la configuration
+ * -* Effacer la liste des sites dispo
+ * -* Effacer la meta de version
+ * 
+ * @param float $nom_meta_version_base
+ */
+function piwik_vider_tables($nom_meta_version_base){
+       effacer_meta('piwik');
+       effacer_meta('piwik_sites_dispo');
+       effacer_meta($nom_meta_version_base);
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/piwik_pipelines.php b/www/plugins/spip_piwik_2_0/piwik_pipelines.php
new file mode 100644 (file)
index 0000000..f494b38
--- /dev/null
@@ -0,0 +1,178 @@
+<?php
+/**
+ * Plugin Piwik
+ * 
+ * @package SPIP\Piwik\Pipelines
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * Insertion dans le pipeline insert_head (SPIP)
+ * 
+ * Ajout du code de piwik dans le head si configuré comme tel
+ * 
+ * @param string $flux
+ *             Le contenu de la balise #INSERT_HEAD
+ * @return string $flux
+ *             Le contenu de la balise #INSERT_HEAD modifié
+ * 
+ */
+function piwik_insert_head($flux){
+       $options = array();
+       
+       if(!function_exists('lire_config'))
+               include_spip('inc/config');
+       
+       if(lire_config('piwik/mode_insertion') == 'pipeline'){
+               $options['type'] = 'public';
+               $flux .= piwik_head_js($options);
+       }
+
+       return $flux;
+}
+
+/**
+ * Insertion dans le pipeline header_prive (SPIP)
+ * 
+ * Insertion du code de Piwik dans l'espace privé si configuré comme tel
+ *
+ * @param string $flux
+ *             Le contenu du head privé
+ * @return string $flux
+ *             Le contenu du head privé modifié
+ */
+function piwik_header_prive($flux){
+       $options = array();
+       
+       if(!function_exists('lire_config'))
+               include_spip('inc/config');
+       
+       if(lire_config('piwik/piwik_prive')){
+               if(is_array(lire_config('piwik/restreindre_statut_prive'))){
+                       $options['statuts_restreints'] = lire_config('piwik/restreindre_statut_prive');
+               }
+               if(is_array(lire_config('piwik/restreindre_auteurs_prive'))){
+                       $options['auteurs_restreints'] = lire_config('piwik/restreindre_auteurs_prive');
+               }
+               $options['type'] = 'prive';
+               $flux .= piwik_head_js($options);
+       }
+       return $flux;
+}
+
+/**
+ * La fonction de génération du code du tracker javascript
+ *
+ * @param array $options [optional]
+ *             
+ * @return
+ */
+function piwik_head_js($options=array()){
+       if(!function_exists('lire_config'))
+               include_spip('inc/config');
+
+       $config = lire_config('piwik',array('id_piwik'=>false,'urlpiwik'=>false));
+       $id_piwik = $config['idpiwik'];
+       $url_piwik = $config['urlpiwik'];
+       $afficher_js = true;
+
+       $ret = '';
+
+       if($url_piwik && $id_piwik){
+               if((isset($options['statut_restreint']) && $options['statut_restreint']) || (isset($options['auteurs_restreints']) && $options['auteurs_restreints'])){
+                       $statut = isset($GLOBALS['visiteur_session']['statut']) ? $GLOBALS['visiteur_session']['statut'] : '';
+                       $id_auteur = isset($GLOBALS['visiteur_session']['id_auteur']) ? $GLOBALS['visiteur_session']['id_auteur'] : '';
+                       if(in_array($statut,$options['statuts_restreints'])){
+                               $afficher_js = false;
+                       }
+                       if($afficher_js && in_array($id_auteur,$options['auteurs_restreints'])){
+                               $afficher_js = false;
+                       }
+               }
+
+               if($afficher_js){
+                       $ret .= "
+                               <script type='text/javascript'>var _paq = _paq || []; 
+                                       (function(){ var u=(('https:' == document.location.protocol) ? 'https://$url_piwik/' : 'http://$url_piwik/'); 
+                                       _paq.push(['setSiteId', $id_piwik]); 
+                                       _paq.push(['setTrackerUrl', u+'piwik.php']); 
+                                       _paq.push(['trackPageView']); 
+                                       _paq.push(['enableLinkTracking']); 
+                                       var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.defer=true; g.async=true; g.src=u+'piwik.js'; 
+                                       s.parentNode.insertBefore(g,s); })();
+                               </script>";
+               }
+       }
+
+       return $ret;
+}
+
+/**
+ * Insertion dans le pipeline formulaire_verifier (SPIP)
+ * On vérifie les valeurs des champs fournis
+ * 
+ * @param array $flux
+ *             Le contexte du pipeline
+ * @return array $flux
+ *             Le contexte du pipeline modifié auquel on a ajouté nos erreurs potentielles
+ */
+function piwik_formulaire_verifier($flux){
+       if($flux['args']['form'] == 'configurer_piwik'){
+               $obligatoires = array('token','user','urlpiwik');
+               foreach($obligatoires as $obligatoire){
+                       if(!_request($obligatoire)){
+                               $flux['data'][$obligatoire] = _T('info_obligatoire');
+                       }
+               }
+               
+               $piwik_token = _request('token');
+               if (!$flux['data']['token'] && !preg_match('/^[a-f0-9]{32}$/i',$piwik_token)) {
+                       $flux['data']['token'] = _T('piwik:cfg_erreur_token');
+                       return $flux;
+               }
+               $piwik_url = 'http://'._request('urlpiwik').'/';
+               
+               $piwik_recuperer_data = charger_fonction('piwik_recuperer_data','inc');
+               
+               /**
+                * Vérifier la correspondance nom d'utilisateur/ token
+                * Qui nous permettra par la suite de définir d'autres choses
+                */
+               $method_verif_user = 'UsersManager.getUser';
+               $options_user = array('userLogin'=>_request('user'));
+               $datas_user = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method_verif_user,'PHP',$options_user);
+               if(is_array($datas_user = unserialize($datas_user))){
+                       if(!$flux['data']['user'] && $flux['data']['result'] == 'error'){
+                               $flux['data']['user'] = _T('piwik:cfg_erreur_user_token');
+                       }
+                       /**
+                        * Vérifier que ce token est un token admin
+                        * Si non : mettre une meta comme quoi il n'est pas admin pour créer des sites
+                        */
+                       $method_verif_user_bis = 'UsersManager.getUsers';
+                       $datas_user_bis = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method_verif_user_bis,'PHP');
+                       $datas_user_bis = unserialize($datas_user_bis);
+                       if(is_array($datas_user_bis) && ($datas_user_bis['result'] == 'error')){
+                               ecrire_meta('piwik_admin', 'non');
+                       }else{
+                               ecrire_meta('piwik_admin', 'oui');
+                               unset($flux['data']['user']);
+                       }
+               }
+       
+               /**
+                * Récupération de la liste des sites où cet utilisateur 
+                * a les droits d'admin
+                */
+               $method = 'SitesManager.getSitesWithAdminAccess';
+               $datas = $piwik_recuperer_data($piwik_url,$piwik_token,'',$method,'PHP');
+               if(!$flux['data']['urlpiwik'] && !is_array(unserialize($datas))){
+                       $flux['data']['urlpiwik'] = _T('piwik:cfg_erreur_recuperation_data');
+               }else{
+                       ecrire_meta('piwik_sites_dispo', $datas);       
+               }
+       }
+       return $flux;
+}
+?>
diff --git a/www/plugins/spip_piwik_2_0/plugin.xml b/www/plugins/spip_piwik_2_0/plugin.xml
new file mode 100644 (file)
index 0000000..a3eefee
--- /dev/null
@@ -0,0 +1,33 @@
+<plugin>\r
+       <nom>Piwik</nom>\r
+       <slogan>Interfacer Spip et Piwik</slogan>\r
+       <auteur>jsb, kent1</auteur>\r
+       <version>0.5.1</version>\r
+       <licence>GNU/GPL</licence>\r
+       <etat>stable</etat>\r
+       <version_base>0.1</version_base>\r
+       <description>\r
+               <multi>\r
+                       [fr]Ajoute le script de statistiques Piwik (analyseur de trafic web) sur les pages du site.\r
+                       [en]Adds the Piwik statistics script (web traffic analyzer) on the pages of the site.\r
+               </multi>\r
+       </description>\r
+       <icon>piwik.png</icon>\r
+       <lien>http://www.spip-contrib.net/?article2860</lien>\r
+       <prefix>piwik</prefix>\r
+       <install>piwik_administrations.php</install>\r
+       <pipeline>\r
+               <nom>insert_head</nom>\r
+               <inclure>piwik_pipelines.php</inclure>\r
+       </pipeline>\r
+       <pipeline>\r
+               <nom>header_prive</nom>\r
+               <inclure>piwik_pipelines.php</inclure>\r
+       </pipeline>\r
+       <necessite id="SPIP" version="[2.0.8;3.0.99]" />\r
+       <necessite id='cfg' version='[1.13.0;]' />\r
+       <necessite id='saisies' version='[1.1;]' />\r
+       <necessite id='spip_bonux' version='[1.8;]' />\r
+       <categorie>statistique</categorie>\r
+       <traduire gestionnaire="salvatore" module="piwik" reference="fr" />\r
+</plugin>\r
diff --git a/www/plugins/spip_piwik_2_0/prive/piwik.html b/www/plugins/spip_piwik_2_0/prive/piwik.html
new file mode 100644 (file)
index 0000000..a770c3d
--- /dev/null
@@ -0,0 +1,10 @@
+#CACHE{0}
+<script type="text/javascript"> 
+var _paq = _paq || []; 
+(function(){ var u=(("https:" == document.location.protocol) ? "https://#CONFIG{piwik/urlpiwik}/" : "http://#CONFIG{piwik/urlpiwik}/"); 
+_paq.push(['setSiteId', #CONFIG{piwik/idpiwik}]); 
+_paq.push(['setTrackerUrl', u+'piwik.php']); 
+_paq.push(['trackPageView']); 
+_paq.push(['enableLinkTracking']); 
+var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.defer=true; g.async=true; g.src=u+'piwik.js'; 
+s.parentNode.insertBefore(g,s); })();</script>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/prive/squelettes/contenu/configurer_piwik.html b/www/plugins/spip_piwik_2_0/prive/squelettes/contenu/configurer_piwik.html
new file mode 100644 (file)
index 0000000..4b7ca55
--- /dev/null
@@ -0,0 +1,7 @@
+[(#AUTORISER{configurer,piwik}|sinon_interdire_acces)]
+<h1 class="grostitre"><:piwik:piwik:></h1>
+
+<p class="explication"><:piwik:cfg_description_piwik:></p>
+<div class="ajax">
+#FORMULAIRE_CONFIGURER_PIWIK
+</div>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/saisies/sites_piwik.html b/www/plugins/spip_piwik_2_0/saisies/sites_piwik.html
new file mode 100644 (file)
index 0000000..ae00f84
--- /dev/null
@@ -0,0 +1,32 @@
+[(#REM)
+
+  Parametres :
+  - class : classe(s) css ajoutes au select
+  - multiple : si quelquechose est passe, le select est multiple, sinon, c'est un select simple
+       Dans le cas multiple, defaut et valeur doivent être un array, sinon un int
+  - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
+
+  Exemple d'appel :
+       [(#SAISIE{sites_piwik,idpiwik,
+               label=<:piwik:label_identifiant_site:>
+       })]
+]
+<B_selection>
+<select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"]>
+       [<option value="">(#ENV{option_intro})</option>]
+       <BOUCLE_selection(POUR){tableau #CONFIG{piwik_sites_dispo}}>
+               #SET{id_site,''}
+               #SET{name,''}
+               <BOUCLE_selection_bis(POUR){tableau #VALEUR}>
+                       [(#CLE|=={idsite}|oui)#SET{idsite,#VALEUR}]
+                       [(#CLE|=={name}|oui)#SET{name,#VALEUR}]
+                       [(#CLE|=={main_url}|oui)#SET{main_url,#VALEUR}]
+               </BOUCLE_selection_bis>
+               <option value="#GET{idsite}"[(#GET{idsite}|=={#ENV{valeur}}|ou{#GET{main_url}|=={#ENV{defaut}}}|oui) selected="selected"]>#GET{name}</option>
+       </BOUCLE_selection>
+</select>
+</B_selection>
+<p><:piwik:info_aucun_site_compte:></p>
+[(#CONFIG{piwik_admin}|=={non}|oui)
+<p><:piwik:info_aucun_site_compte_demander_admin:></p>]
+<//B_selection>
\ No newline at end of file
diff --git a/www/plugins/spip_piwik_2_0/svn.revision b/www/plugins/spip_piwik_2_0/svn.revision
new file mode 100644 (file)
index 0000000..abbf84a
--- /dev/null
@@ -0,0 +1,10 @@
+<svn_revision>
+<text_version>
+Origine: file:///home/svn/repository/spip-zone/_plugins_/spip_piwik/spip_piwik_2_0
+Revision: 72440
+Dernier commit: 2013-04-29 17:01:34 +0200 
+</text_version>
+<origine>file:///home/svn/repository/spip-zone/_plugins_/spip_piwik/spip_piwik_2_0</origine>
+<revision>72440</revision>
+<commit>2013-04-29 17:01:34 +0200 </commit>
+</svn_revision>
\ No newline at end of file