Salut,
La solution passe par une balise (non documentée, je crois, hum…): #TOTAL_BOUCLE, qui indique le nombre total de résultats dans une boucle. Attention: on vient tout juste de modifier la version 1.0.5 (dans « devel », version non finalisée) pour pouvoir utiliser cette balise plus souplement - pour l’heure, c’est pas réellement utilisable pour récupérer le nombre de résultats une seule fois (dans les versions avant la 1.0.5, #TOTAL_BOUCLE s’utilise à l’intérieur des boucles, et est donc répété autant de fois qu’il y a de résultats…
Avec la version 1.0.5 (attention encore, d’une version 1.0.5 depuis hier soir… la bidouille est toute récente), on peut utiliser #TOTAL_BOUCLE dans le « texte conditionnel » (et non pas seulement à l’intérieur du texte en boucle).
Affichons par exemple le nombre d’articles ainsi que la liste des articles:
<B_tous_articles>
Il y a #TOTAL_BOUCLE articles sur ce site.
- #TITRE
</BOUCLE_tous_articles>
Attention: il y a pour ce qui suit une subtilité (une bizarrerie, plutôt): on ne veut afficher QUE le nombre de résultats, mais pas la liste des articles. C’est simple, il suffit de ne rien placer à l’intérieur de la boucle (ici, simplement supprimer la mention «
#TITRE »; mais du coup, l’intérieur de la boucle étant vide (même s’il y a des résultats, puisqu’il existe bien des articles), le texte optionnel avant (là où on a placé le #TOTAL_BOUCLE) n’est pas affiché. Donc, la petite subtilité va consister à indiquer le #TOTAL_BOUCLE dans le texte alternatif (celui qui s’affiche quand le contenu de la boucle est vide). Ce qui donne:
<BOUCLE_tous_articles(ARTICLES){tous}></BOUCLE_tous_articles>
Il y a #TOTAL_BOUCLE articles sur ce site.
<//B_tous_articles>
(comme d’habitude, je fais ça de tête, ce code n’est pas testé).
===========
Tu peux faire exactement la même chose pour les brèves, les rubriques et les auteurs.
===========
Pour les « pages vues », c’est nettement plus difficile, puisque ça n’est pas un nombre de résultats d’une boucle qu’il faut afficher, mais la somme cumulée des « #VISITES » d’une boucle ARTICLES. Ca, SPIP ne peut pas le faire directement. Seule solution, un petit script PHP qui va effectuer le boulot.
Ca donne quelque chose du genre:
<BOUCLE_visites(ARTICLES){tous}>
<? $compteur_visites=$compteur_visites+#VISITES; ?>
</BOUCLE_visites>
<? echo "Nombre de visites : $compteur_visites."; ?>
</B_visites>
Le principe:
→ à l’intérieur de la boucle, pour chaque article, tu ajoute à un compteur PHP le nombre de visites. Dans ton code source, l’intérieur de la boucle devient quelque chose du genre:
<? $compteur_visites=$compteur_visites+45; ?>
<? $compteur_visites=$compteur_visites+120; ?>
<? $compteur_visites=$compteur_visites+62; ?>
<? $compteur_visites=$compteur_visites+12; ?>
<? $compteur_visites=$compteur_visites+87; ?>
<? $compteur_visites=$compteur_visites+98; ?>
<? $compteur_visites=$compteur_visites+46; ?>
[…]
Une fois la boucle terminée, il suffit donc d’afficher $compteur_visites.
Tu constates que, s’il y a plusieurs centaines d’articles dans ton site, cette ligne en PHP est répétée autant de fois, c’est carrément lourdingue - et malgré le système de cache, il faut bien comprendre que c’est du code PHP qui est mis en cache, et non le résultat final, donc ce code est exécuté à chaque visite sur la page. Ca s’exécute tout de même très rapidement, mais c’est pas joli…
De plus, le compteur de visites est pas dément. C’est vraiment conçu pour avoir une indication grossière de la répartition des visites dans le site, non pour obtenir un compteur fidèle. Tu indiques « pages vues », c’est effectivement quelque chose dans ce genre; et les « pages vues », c’est vraiment pas une information très pertinentes…
Réellement, le plus simple est d’ajouter dans tes squelettes un véritable petit compteur tout fait, on en trouve partout. Tu peux par exemple utiliser « Visiteurs », entièrement en PHP/mySQL, qui donne des résultats pas dégueux:
http://www.phpinfo.net/applis/visiteurs/
Amicalement,
ARNO*
At 15:22 +0200 5/08/01, Christophe Mannino wrote:
Bonjour …
je me retourne l’esprit dans tous les sens … mais vois pas trop comment faire tout ca …
il s’agit de statistiques à l’intention du visiteur, les informations sont les suivantes:
Le site #NOM_SITE_SPIP en chiffre c’est:
- XX pages vues (nombre de visites cumulé de chaque article)
Une partie est déjà dans l’inteface de stats … mais pour le reste ?
Merci pour le coup de main …
Christophe
Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.minirezo.net
DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B