9 mar

Spip propose un outil simple pour suivre les visites de son site. Comme l’indique la documentation

SPIP identifie chaque jour les « visiteurs uniques » de votre site en fonction de leur adresse IP. Le système est rapide et relativement fiable (il s’agit d’une estimation relativement correcte du nombre de visiteurs du site, et non des simples « hits » ou des « pages vues » ; un visiteur qui visite plusieurs fois la même page est bien compté pour un unique « visiteur unique »)


Cet outil privilégie la rapidité et une occupation de l’espace disque limitée.

JPEG - 81 ko

Pour effectuer un suivi plus détaillé il est nécessaire d’installer un outil de mesure d’audience spécialisé. Vous pourrez alors obtenir de nombreuses informations sur vos visiteurs :

  • Geolocalisation
  • Navigateur
  • Système d’exploitation
  • Résolution

  • et donc adapter votre site si cela s’avère nécessaire.

Il faut considérer les résultats comme une tendance

Analyser les statistiques de son site est indispensable pour l’évaluer et le faire progresser, mais aucune mesure n’est précise à 100%.
La définition d’une "visite" étant différente pour chaque outil de mesure, il n’est pas possible de comparer les chiffres fournis, mais ils permettent de suivre la tendance des visites. En outre, les robots des moteurs de recherche sont parfois considérés comme des visiteurs, ce qui donne forcément des variations entre les mesures des différents outils.

Les logs pour les serveurs et les marqueurs pour les sites

Parmi ces outils, on retrouve ceux qui analysent les "logs" serveur (Urchin, AWstats, Webalizer, …) et ceux nécessitant la mise en œuvre de marqueurs (Piwik, Google Analytics, Xiti, …).
Les analyses de "logs" se basent sur les adresses IP de connexion. Un groupe de personnes se connectant avec une même adresse IP est considéré comme un unique visiteur. De plus chaque appel serveur (page, image, frame, …) est considéré comme un hit.
Alors que les marqueurs, en plaçant un cookie dans le navigateur du visiteur, différencient tous les internautes (y compris si ils utilisent une même adresse IP). Le tag est placé dans une partie de la page, ainsi cette dernière est comptabilisée précisément. Cependant certains marqueurs fonctionnent uniquement en javascript et dans le cas où le visiteur l’aurait désactivé, ce dernier ne serait pas comptabilisé dans les statistiques.
Il faut considérer ces outils comme complémentaires puisque leurs méthodes d’analyses ne sont pas identiques.

En bref, il faut utiliser ces outils comme des indicateurs de visites qui vous fournissent des informations précieuses sur l’ergonomie, "l’usabilité" et la pertinence des contenus afin de les améliorer. De plus il ne faut pas comparer les données entre ces différents outils, mais comparer les évolutions respectives.


Christophe Gindro | 1 Message
12 jan

Le principe est de réaliser une version mobile du site Contingences.

Le site n’ayant pas un contenu trop volumineux, la première approche sera de réaliser une page unique contenant l’ensemble du site et utilisant la pagination intégrée à JQuery Mobile.

JPEG - 42.9 ko

En s’appuyant sur la documentation je créé une page mobile.html dans mon dossier squelettes.
Cette page à la structure suivante

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
<head>
 <title>[(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|textebrut)" />]
 <meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
 <meta http-equiv="content-language" content="#LANG" />
 <meta name="generator" content="SPIP[ (#SPIP_VERSION)]" />
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
 <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
 <script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>

</body>
</html>

On notera l’absence de la balise #INSERT_HEAD puisque je n’ai pas besoin des css et javascripts fournis par les différents plugins dans cette version pour les plateformes mobiles.

Ensuite il faut créer la page d’accueil qui affichera les rubriques racines du site :

<div data-role="page" id="sommaire">
 <div data-role="header" data-theme="f">
   <h1>#NOM_SITE_SPIP</h1>
 </div><!-- /header -->

 <div data-role="content">
   <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
     <li data-role="list-divider">Menu</li>
     <BOUCLE_rubriques_racine(RUBRIQUES) {par titre}{racine}>
     <li><a href="#rubrique-#ID_RUBRIQUE" title="#TITRE">#TITRE</a></li></BOUCLE_rubriques_racine>
   </ul>       
 </div><!-- /content -->
 <div data-role="footer" data-theme="f">&nbsp;</div>
</div><!-- /page -->

Puis on s’occupe des différentes rubriques, qui afficheront les sous-rubriques et articles qu’elles contiennent :

<BOUCLE_rubriques(RUBRIQUES)>
<div data-role="page" id="rubrique-#ID_RUBRIQUE">
 <div data-role="header" data-theme="f">
   <a href="#" data-icon="arrow-l" data-iconpos="notext" data-rel="back" class="ui-btn-left jqm-back" data-back-btn-text="previous">Retour</a>
   <h1>#NOM_SITE_SPIP</h1>
   <a href="#sommaire" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Accueil</a>
 </div>
 <div data-role="content">
   <h2>#TITRE</h2>
   <B_liste_rubriques>
   <ul data-role="listview" data-inset="true">
     <BOUCLE_liste_rubriques(RUBRIQUES){id_parent}{!par date}>
     <li><a href="#rubrique-#ID_RUBRIQUE">#TITRE</a></li></BOUCLE_liste_rubriques>
   </ul>
   </B_liste_rubriques>
   <B_liste_articles>
   <ul data-role="listview" data-inset="true">
     <BOUCLE_liste_articles(ARTICLES){id_rubrique}{!par date}>
     <li><a href="#article-#ID_ARTICLE">[(#LOGO_ARTICLE|image_reduire{0,80})] #TITRE</a></li>
     </BOUCLE_liste_articles>
   </ul>
   </B_liste_articles>
 </div>
 <div data-role="footer" data-theme="f">&nbsp;</div>
</div>
</BOUCLE_rubriques>

Ici dans la partie "header" on ajoute les boutons "précédent" et "Accueil".
On fera de même pour l’affichage des articles

<BOUCLE_articles(ARTICLES)>
<div data-role="page" id="article-#ID_ARTICLE">
 <div data-role="header" data-theme="f">
   <a href="#" data-icon="arrow-l" data-iconpos="notext" data-rel="back" class="ui-btn-left jqm-back" data-back-btn-text="previous">Retour</a>
   <h1>#NOM_SITE_SPIP</h1>
   <a href="#sommaire" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Accueil</a>
 </div>
 <div data-role="content">
   <h2>#TITRE</h2>
        [(#LOGO_ARTICLE||left)]
   [<div class="chapo">(#CHAPO|image_reduire{300,0})</div>]
   [<div class="texte entry-content">(#TEXTE|image_reduire{300,0})</div>]

   [<p class="hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
   [<div class="ps surlignable"><h2 class="pas_surlignable"><:info_ps:></h2><div class="#EDIT{ps}">(#PS|image_reduire{300,0})</div></div>]
 </div>
 <div data-role="footer" data-theme="f">&nbsp;</div>
</div>
</BOUCLE_articles>

Le code complet :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
<head>
 <title>[(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|textebrut)" />]
 <meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
 <meta http-equiv="content-language" content="#LANG" />
 <meta name="generator" content="SPIP[ (#SPIP_VERSION)]" />
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
 <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
 <script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
<div data-role="page" id="sommaire">
 <div data-role="header" data-theme="f">
   <h1>#NOM_SITE_SPIP</h1>
 </div><!-- /header -->

 <div data-role="content">
   <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
     <li data-role="list-divider">Menu</li>
     <BOUCLE_rubriques_racine(RUBRIQUES) {par titre}{racine}>
     <li><a href="#rubrique-#ID_RUBRIQUE" title="#TITRE">#TITRE</a></li></BOUCLE_rubriques_racine>
   </ul>       
 </div><!-- /content -->
 <div data-role="footer" data-theme="f">&nbsp;</div>
</div><!-- /page -->

<BOUCLE_rubriques(RUBRIQUES)>
<div data-role="page" id="rubrique-#ID_RUBRIQUE">
 <div data-role="header" data-theme="f">
   <a href="#" data-icon="arrow-l" data-iconpos="notext" data-rel="back" class="ui-btn-left jqm-back" data-back-btn-text="previous">Retour</a>
   <h1>#NOM_SITE_SPIP</h1>
   <a href="#sommaire" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Accueil</a>
 </div>
 <div data-role="content">
   <h2>#TITRE</h2>
   <B_liste_rubriques>
   <ul data-role="listview" data-inset="true">
     <BOUCLE_liste_rubriques(RUBRIQUES){id_parent}{!par date}>
     <li><a href="#rubrique-#ID_RUBRIQUE">#TITRE</a></li></BOUCLE_liste_rubriques>
   </ul>
   </B_liste_rubriques>
   <B_liste_articles>
   <ul data-role="listview" data-inset="true">
     <BOUCLE_liste_articles(ARTICLES){id_rubrique}{!par date}>
     <li><a href="#article-#ID_ARTICLE">[(#LOGO_ARTICLE|image_reduire{0,80})] #TITRE</a></li>
     </BOUCLE_liste_articles>
   </ul>
   </B_liste_articles>
 </div>
 <div data-role="footer" data-theme="f">&nbsp;</div>
</div>
</BOUCLE_rubriques>

<BOUCLE_articles(ARTICLES)>
<div data-role="page" id="article-#ID_ARTICLE">
 <div data-role="header" data-theme="f">
   <a href="#" data-icon="arrow-l" data-iconpos="notext" data-rel="back" class="ui-btn-left jqm-back" data-back-btn-text="previous">Retour</a>
   <h1>#NOM_SITE_SPIP</h1>
   <a href="#sommaire" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Accueil</a>
 </div>
 <div data-role="content">
   <h2>#TITRE</h2>
        [(#LOGO_ARTICLE||left)]
   [<div class="chapo">(#CHAPO|image_reduire{300,0})</div>]
   [<div class="texte entry-content">(#TEXTE|image_reduire{300,0})</div>]

   [<p class="hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
   [<div class="ps surlignable"><h2 class="pas_surlignable"><:info_ps:></h2><div class="#EDIT{ps}">(#PS|image_reduire{300,0})</div></div>]
 </div>
 <div data-role="footer" data-theme="f">&nbsp;</div>
</div>
</BOUCLE_articles>
</body>
</html>

Cela fournit une bonne base pour générer une version mobile de son site.
La souplesse de Spip permet de réaliser ses propres boucles, et de les adapter au framework JQuery.

En réalisant une feuille de style grâce au générateur Themeroller, voici un premier jet du résultat pour la version mobile du site Contingences


6 jan

La deuxième version de béta de Spip 3 vient d’être publiée. Elle est accessible via une archive zip disponible sur files.spip.org.

Interface Spip 3 béta 2 {JPEG}

Cela me permet de faire un petit point sur les nouveautés de cette version prometteuse.

  • Tout d’abord elle nécessite PHP 5.1.
  • Ensuite l’espace privé est désormais entièrement "squelettisé", il propose un nouvelle organisation du menu agrémenté de nouvelles icônes.
  • Le noyau de Spip a été allégé, la plupart des fonctionnalités intégrées étant passées en extensions
    • brèves,
    • sites,
    • pétitions,
    • révisions (sur les objets Spip et plus uniquement sur les articles),
    • forums,
    • statistiques,
    • gestion des sauvegardes,
  • Des plugins "incontournables" sont intégrés dans ces extensions
    • Médiathèque : Gestion des médias dans SPIP,
    • MediaBox : Boîte multimédia
    • SVP : SerVeur d’information et de téléchargement des Plugins
  • Une nouvelle extension "Compagnon" permet un accompagnement pour les premiers pas avec Spip,
  • CFG et Spip-Bonux ne devraient plus être nécessaires. Il faut migrer les formulaires CFG en formulaires configurer_xxx de SPIP 3, #CONFIG reste fonctionnel. "Itérateurs" est intégré à SPIP 3 et couvre la plupart des services proposés par "Spip-Bonux".

Pour terminer, la branche 1.9.2 ne sera plus maintenue lors de la sortie officielle de Spip 3.

Quelques liens :


17 nov

Plusieurs failles de sécurité ont été repérées dans les versions 1.9, 2.0 et 2.1 de SPIP.

Les infos et les mises à jour sont disponibles
http://www.spip-contrib.net/SPIP-1-…


23 sep

Plusieurs failles de sécurité ont été repérées dans les versions 1.9, 2.0 et 2.1 de SPIP.

Les infos et les mises à jour sont disponibles
http://www.spip-contrib.net/SPIP-1-…

 
 

Catégories

 
 
Retour accueil  | Nous contacter  | Suivre la vie du site Flux RSS  | SPIP