Plugin pour des balises de comptage

Donne une information générale sur quelques chiffres clefs des statistiques.

Descriptif

Certains webmasters ne cherchent pas forcément à avoir des statistiques très pointues mais seulement une information générale sur le nombre de pages vues, le nombre de visiteurs depuis la création du site SPIP, le nombre de visiteurs (y compris les administrateurs, les rédacteurs, les visiteurs inscrits ou non inscrits) actuellement en ligne, l’IP du visiteur...

SPIP 1.9.1 et 1.9.2 ne proposent pas ce type de balises en standard.

Pour cette raison, j’ai créé des balises proposant ces services.

Le résultat donné n’est pas forcément toujours très juste mais cela donne simplement une indication sans avoir à surcharger la page avec des liens externes de type Xiti ou autres.

Si vous recherchez quelque chose de semblable mais beaucoup plus poussé , il existe d’autres contributions qui vous satisferont.

Installation :

-  Décompresser le fichier plugin.xml et vst_fonctions.php dans un dossier vst à l’intérieur du dossier plugins
-  Copier le fichier data.txt avec les propriétés lecture-écriture à la racine de votre site Spip (pour la version 0.2)
-  Utiliser les balises #TOTAL_VISITES, #NBPAGES_VISITEES, #NB_CONNECTES et #IP_LIVE (uniquement dans la version 0.2) dans vos squelettes
-  Pour plus de précision dans le contenu affiché par les balises, il est préférable de placer ces balises avec une inclusion possédant un cache de quelques secondes.
Exemple :

#CACHE{30}
#NB_CONNECTES visiteur(s) connecté(s).<br />
#POPULARITE_SITE visites par jour.<br />
IP : #IP_LIVE<br />
#TOTAL_VISITES visiteurs.<br />
#NBPAGES_VISITEES pages ont été vues.</p>

Explications et modifications

De façon à pouvoir faire évoluer ce plugin en l’adaptant à votre goût, je vous indique comment j’ai procédé :

Création du dossier

Ceci est à faire à l’intérieur du dossier plugins où sera placé le dossier du plugin (Choix du nom de dossier : vst)

Ecriture du fichier plugin.xml
(à modifier suivant les besoins) :

<plugin>
<nom>Balises simples pour statistiques visiteurs</nom>
<auteur>F. Arnould</auteur>
<version>0.1</version>
<etat>test</etat>
<description>
	<multi>
	[fr] Nombre de visiteurs sur le site et historique
	</multi>
</description>
<fonctions>vst_fonctions.php</fonctions>
<prefix>vst</prefix>
<lien>
[Auteur (fr)->physiquark@free.fr]
</lien>	
</plugin>

Réalisation du fichier vst_fonctions.php :

Le principe est assez simple, soit on va chercher des informations dans la base de données par un appel à celle-ci puis on le transforme en balise, soit on crée un fichier texte en lecture/écriture qui génère une chaine de caractère que l’on transforme en balise (attention aux permissions de lecture/écriture chez votre hébergeur)

Récupération dans la base

Comment récupérer des informations dans la base de données SPIP ?

function vst_total_visites() {
$query = "SELECT SUM(visites) AS total_abs FROM spip_visites";
$result = spip_query($query);
if ($row = spip_fetch_array($result))
	{ return $row['total_abs']; }
else { return "0";}
}

Commentaires :
-  la première ligne nomme la fonction utilisée avec un préfixe (vst ici)
-  on interroge la base de donnée $query en additionnant (SUM) les champs visites de la table spip_visites (on peut tester cette fonction dans phpmyadmin en tapant comme requête SQL : SELECT SUM(visites)
FROM spip_visitesWHERE 1
-  le résultat retourné est attribué à la chaîne $result
-  un test conditionnel (existence ou non) retourne 0 ou la valeur total_abs

Création de la balise

Comment créer la balise ? On appelle la fonction précédemment créée :

function balise_TOTAL_VISITES($p) {
	$p->code = "vst_total_visites()";
	$p->statut = 'php';
	return $p;
}

Commentaires :
-  La balise s’appellera #TOTAL_VISITES
-  On réutilise la fonction créée pour l’occasion

Discussion

Une discussion

  • 1

    Hello

    J’utilise avec bonheur la fonction pour la balise #TOTAL_VISITES de ce plugin dans mon plugin Escal juste en remplaçant spip_fetch_array par mysqli_fetch_array mais j’ai un souci avec 2 sites en SQLite (pas de souci en MySQL).

    J’ai l’erreur suivante :

    Erreur d’exécution plugins/auto/escal/v5.0.8/inclusions/inc-stats.html | File […]/plugins/auto/escal/v5.0.8/escal_fonctions.php Line 488 : mysqli_fetch_array() : Argument #1 ($result) must be of type mysqli_result, Spip\Sql\Sqlite\PDOStatement given

    Une idée de solution pour que ça fonctionne avec SQLite comme avec MySQL ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom