Petit retour sur une implémentation du marqueur phpMyVisites.
Introduction
L’implémentation basique du marqueur n’affiche que des stats de visites basées sur l’url, nous avons essayé d’aller plus loin en reconstituant la hiérarchie des rubriques et articles SPIP, chose possible via le paramtre « pagename » du marqueur.
Gestion de l’arborescence
Au début de la page un include permet d’inclure le chemin du fichier :
<INCLURE{fond=chemin}{id_rubrique}{noeud=#TITRE}>
il y a 2 paramètres :
- pour les éléments de hiérarchie envoyer l’ « id_rubrique »
- le paramètre « noeud » permet de passer un titre quelconque (article, plan de site, contact ...)
Le squelette inclus « chemin » contient au minimum le code ci dessous
<script type="text/javascript">
<!--
var pagename=<BOUCLE_hierarchie2(HIERARCHIE){0,n}{tout}{id_rubrique}>['(#TITRE|supprimer_numero|texte_script)/'+]</BOUCLE_hierarchie2>'[(#ENV{noeud}|supprimer_numero|texte_script)]';
//-->
</script>
Détail du code : le chemin inclus dans la variable pagename est découpé en tronçons de javascript à cause de la limite de longueur des chaînes de Firefox (sans cela cela provoque une erreur javascript).
Complément possible : Cet include peut aussi générer le « fil d’ariane » du squelette à partir d’une boucle quasi identique.
<a href="sommaire.php3">Accueil</a>
<BOUCLE_hierarchie(HIERARCHIE){0,n}{tout}{id_rubrique}>
[ > <a[ href="(#URL_RUBRIQUE)"]>(#TITRE|supprimer_numero)</a>]
</BOUCLE_hierarchie>
[ > (#ENV{noeud}|supprimer_numero)]
[*Ce code doit toujours figurer dans la page avant le marqueur lui même*] afin que le javascript du marqueur puisse lire la valeur du chemin.
[(! Attention le pagename doit toujours exister même à vide donc s’il n’y a pas d’inclusion du fichier chemin laisser dans la page un bout de code initialisant la variable javascript.)]
<script type="text/javascript">
<!--
var pagename=' ';
//-->
</script>
Le marqueur en pied de page
Enfin le pied de page inclus le marqueur phpMyVisites standard. à prendre en cliquant sur le lien javascript à intégrer dans la page d’admin du site sur phpmyvisite. Ensuite [*penser à commenter la ligne var pagename =*] pour ne pas écraser l’arborescence du chemin définie plus haut dans la page.
Idéalement mettre le pied de page dans un include à cache longue durée et sans paramètre ce code est statique
Exemple de javascript, à personnaliser en fonction de l’url de son serveur phpmyvisite (http://monserveur/phpMyVisites/) et de l’id du site à mesurer (phpmyvisitesSite = 3)
<!-- phpmyvisites -->
<a href="http://www.phpmyvisites.net/" title="phpMyVisites | Open source web analytics"
onclick="window.open(this.href);return(false);">
<script type="text/javascript">
<!--
var a_vars = Array();
//var pagename='';
var phpmyvisitesSite = 3;
var phpmyvisitesURL = "http://monserveur/phpMyVisites/phpmyvisites.php";
//-->
</script>
<script language=javascript src="http://monserveur/phpMyVisites/phpmyvisites.js" type="text/javascript"></script>
<noscript>
<p>phpMyVisites | Open source web analytics
<img src="http://monserveur/phpMyVisites/phpmyvisites.php" alt="phpMyVisites" style="border:0" />
</p>
</noscript>
</a>
<!-- /phpmyvisites -->
Discussions par date d’activité
7 discussions
J’ai utilisé se code sur mon site woneb.net.
Cela fonctionne trés bien. Merci beaucoup à toi ventrea.
Répondre à ce message
Ajout :
Je constate qu’il est impossible de faire apparaitre du « code » clairement ici...
Voila le contenu de l’article suivant, en fichier texte, a telecharger de mon site !
How to - ici....
pascal
Répondre à ce message
bonjour,
voila mon experience SPIP/BEESPIP « complete » avec les 2 Plugins : « PHPMYVISIT » + « Marqueur phpMyVisites avancé » !
1) Etat de mon installation SPIP :
- SPIP 1.9.2e [11132] le dernier en date en V1.9xx
- Squelette BeeSpip v.1.9.2 [353] + modification personnelle et mise a jour des Plugins inclus.
- « SI » hebergement chez FREE : Voir la note a ce sujet a la fin !
2) Besoins necessaires a l’installation :
- Installer le plugin comme les autres.
- Juste un accès FTP est necessaire !
3) PLugin « PHPMYVISIT » avec SPIP + BEESPIP : ( ca ne change pas si SPIP....)
- Telecharger de « preference » le dernier build, ca evite des erreurs et du temps perdu !!
V1.9 - build SVN=15884 (le dernier a ce jour...)
ici
- copier le plugin dans son emplacement : /plugins/phpmyvisites
- creer un dossier a la racine de votre site, nommé /include
- En plus, copier aussi directement le contenu du dossier local \phpmyvisites\libs*.* dans /include
=> vous obtenez /include/PEAR.php et /include/smarty + etc etc
- installez le plugin comme les autres....
=> A partir de la, les stats sont en place ! charger quelques pages et aller dans l icone « phpmyvisit » , zone
« administration », menu « statistiques », puis « phpmyvisit »
NB : Il faut parfois attendre un peu avant de voir apparaitre des stats !
4) PLUGIN « Marqueur phpMyVisites avancé »
A cette etape, ca se complique, car ce n’est pas un « VRAI » plugin qui est donné, et les explications sont « peu » claires
helas.
Apres beaucoup de temps passé a lire, chercher, essayer et « planter » mon site, j’y suis arrivé et je l explique ici !
A) pour implementer « facilement » le plugin, seules quelques modifications sont necessaires :
- Fichier : /plugins/phpmyvisites/phpmv_fonctions.php
modification a faire : Commenter la ligne concernant la variable « pagename » !
Resultat :
B) Creer un nouveau fichier nommmé « inc_phpmyvisit.html » dans le dossier « includes » dans votre plugin « BEESPIP », utile au lieu de recopier a chaque fois le code javascript « identique » dans chaque page HTML !
/plugins/beespip/includes/inc_phpmyvisit.html
voila le code HTML + PHP, qui CORRIGE le bug lié au caracteres « speciaux » tel que mentionné dasn ce post. Exemple, les apostrophes. PB corrigé en utilisant le caractere #, a la fin, dans la balise #TITRE !!
Contenu :
C) Ensuite, il FAUT ajouter dans le squelette de « »« »« »chaque page« »« »« »" HTML utilisé, un entete qui definit la variable
« pagename » avec le format désiré. Celui ci appele l INCLUDE que lon a creer, plus des parametres !
Exemple :
var pagename=’La Copropriété./’+’Descriptif de la copropriété./’+’Composition des batiments.’ ;
donne comme resultat sur la page des stats, onglet « Page vues » :
Note : La ligne « index » correspond a la consultation de la rubrique « elle meme », puiqu’il ne sagit pas d’un article propement dit, mais on sait le faire apparaitre quand meme !! par contre, le classement est MAL FAIT !!!
+ La Copropriété.
+ Descriptif de la cop (=>> BUG ici ! longueur trop courte hélas !!!)
index
Composition des batiments.
index
Resultat pour BEESPIP, page ARTICLE.HTML, modif APRES la ligne « .....inc_beespip_css.... » :
Resultat pour BEESPIP, page RUBRIQUE.HTML, modif APRES la ligne « .....inc_beespip_css.... » :
Resultat pour BEESPIP, page PLAN.HTML, modif APRES la ligne « .....inc_beespip_css.... » :
Resultat pour BEESPIP, page sommaire-actu.html, modif APRES la ligne « .....inc_beespip_css.... » :
Idem pour TOUS les autres fichies que VOUS utilisez dans le site ! Si vous n’initailiser par la variable, vous aurez une erreur au chargement de la page, relatif a cet variable !!!!!
PS : il y a sans doute moyen de faire plus simple, mais la CA MARCHE DEJA !
5) Utilisateur de l herbegement FREE !!
Attention, d’apres ce que j’ai pu lire plein de fois, FREE n’aprecie pas que l’on utilise PHPMYVISIT sur sa page PERSO pour
limiter l’usage des bases SQL !!! Pour cela, il donne gratuitement l’outil PHPMYVISIT => Rien dans votre base a vous !
Donc, ne pas installer le plugin PHPMYVISIT si vous etes chez FREE !
En résumé, il faut « juste » ajouter le script JAVASCRIPT qui est donne par FREE et l ajouter dans toutes vos pages HTML !
BASTA !!! En plus, les BUGs d’affichage dans l’onglet STAT de SPIP semble etre corrigé chez FREE !!!!
Note : Je vais me fabriquer un PLUGIN « PHPMYVISIT+TAG » Special « FREE » !
A suivre..............
Mon site WEB, quand meme au passage
OUF :-)))
Merci de m’avoir lu.......
Pascal
Répondre à ce message
Bonjour,
cela fait plusieurs jours que je galère pas mal pour crée l’arborescence du site (comme celle montrée en image)...
Pourriez vous indiquer le code à copier ainsi que l’emplacement dans tel ou tel fichier car je suis un peu perdu, j’ai testé plusieurs solutions en vain.
Merci beaucoup pour votre aide
Répondre à ce message
Bonjour,
Un article vraiment obscure que celui-ci...
Aucune indications d’où placer ces codes cités, sauf pour le dernier « Le marqueur en pied de page », dans le squelette...enfin on le suppose.
Quel est le rapport avec le « marqueur phpMyVisites » :
- est-ce par le rajout de ces codes je ne sais où, qu’on se fabrique cette fonction ?
- Est-ce un plugin ? qu’on installe, et donc puisqu’on parle de « Petit retour sur une implémentation du marqueur » est-ce une modification du code de ce plugin ?
Bref pour moi, utilisateur de spip et bidouilleur façon copier/collé de code, l’article n’a ni queue ni tête.
Pourriez-vous m’éclairer ?
car j’aimerais vraiment pouvoir obtenir une « arborescence des pages vues » dans les statistiques de phpmyvisites.
Ma config : SPIP 1.9.2a et phpMyVisites 2.2 (pas le plugin, installation séparée !)
Merci.
...Et donc ?
Ce n’est pas un plugin, juste un bout de code à poser « à la main » dans ses squelettes.
L’idée de départ est de reconstruire une chaîne de texte reproduisant l’arborescence de rubriques pour l’envoyer en paramètre à phpmyvisites.
var pagename=« Accueil/rubrique1/rubrique1.1/rubrique1.1.1/article »
C’est le rôle de la boucle HIERARCHIE
le reste est là pour gérer les cas particulier
Pour faire plus simple il est possible de mettre en fin (avant /body) d’un squelette rubrique.html le code du marqueur javascript fourni par phpmyvisites et insérer dedans
pour article.html mettre id_article à la place de id_rubrique
les accents et caractères non standards peuvent poser pb à phpmyvisites parfois, il peut être nécessaire de créer un filtre qui fait le ménage dans les caractères de #TITRE si texte_script ne suffit pas.
Ah d’accord, je cible mon incompréhension ... je pensais qu’il fallait rajouter des boucles quelque part et...
Bref, c’est très clair now !!
Je comprend bien mieux, merci !!
En reprenant le code sus-cité, çà ne fonctionne pas, mais en prenant celui du début d’article, c’est tout bon ! (j’ai pourtant omis le chiffre « 2 » ... sais pas à quoi il sert)
Voilà ce que j’ai modifié dans le script phpMyVisites du fichier « rubrique.html »
Par contre, pour le script phpMyVisites du fichier « article.html », changer id_rubrique en id_article ne suffit pas, et c’est ce qui m’a donné pas mal de recherches et essais avant de comprendre que çà fonctionnait à moitié, le chemin des rubriques étant indiqué, mais pas le nom de l’article, ... j’ai donc modifié la fin du code comme cela
Maintenant l’arborescence est renseignée, et en dessous, « index » est écrit s’il s’agit d’une consultation de rubrique, le nom de l’article s’il est consulté.
Répondre à ce message
Personne n’a essayé d’appliquer cette méthode avec le plugin SPIP phpMyVisites ?
J’aimerais savoir comment procéder, et en particulier comment éviter que le code phpMyVisites inclus automatiquement n’écrase la variable pagename.
En l’état actuel des choses je ne vois pas d’autre solution que de modifier le fichier phpmv_fonctions.php du plugin en commentant la ligne :
var pagename=\’\’ ;
Répondre à ce message
les liens vers les sources des plugins ont changé :
- phpmyvisites
- marqueur stats
a+
Ventrea
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 :
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.
Suivre les commentaires : |