Pics Engine 3.5 et Google Analytics
Si comme moi vous souhaitez tracker votre galerie PicsEngine, il suffit simplement de modifier deux fichiers.
Dans /admin/inc/gallery.php, il suffit de remplacer la section
de Pics Engine par la suivante.<body> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-XXXXXX-XX"); // Remplacer par votre identifiant. pageTracker._setAllowAnchor(true); pageTracker._trackPageview(); } catch(err) {} </script> <script src="<?php echo $core->getSelf(); ?>admin/?public&action=gallery&redirect_iphone=false" type="text/javascript" charset="utf-8"></script> </body>
La partie importante de l’opération est l’activation du tracking des ancres dans Google Analytics, le reste du code est le code de tracking proposé de base par Google Analytics.
(Cf: Docs GA – _setAllowAnchor )
Dans /admin/library/controller/Controller.Public.php, remplacer la ligne 459
$toWrite .= '<script type="text/javascript" charset="utf-8">function exec(s) { eval(s); } function saveUrl(u) { window.open(u,"_self"); }</script>';
Par :
$toWrite .= '<script type="text/javascript" charset="utf-8">function exec(s) { eval(s); } function saveUrl(u) { window.open(u,"_self"); if(pageTracker){ pageTracker._trackPageview("/" + u); } }</script>';
De cette manière, le code permettant de traquer la page en cours n’est exécuté que si Google Analytics est présent.
Pour voir le script en action, vous pouvez rajouter ce bout de code :
alert("/" + u); /* Renvoi : /#photo=347/album=7 */
Voilà, c’est tout. Pas de grosses modifications. Si cela pouvait être intégré de base, avec une option dans l’admin pour simplement entrer l’identifiant de tracking, ce serait parfait.
Hélas le changement de la barre d’adresse ne semble fonctionner qu’au premier album et à la première photo dans la version actuelle. De même si on arrive pas sur la page d’accueil, le changement d’url ne semble plus fonctionner non plus.
L’auteur du script m’a fourni une version plus récente qui corrige ce problème et avec laquelle le tracking est 100% fonctionnelle. Merci à lui.
A partir de la version 3.5.2 qui devrait sortir prochainement, il n’y aura donc plus de problème pour effectuer vos statistiques. Concernant les mises à jour, pour l’instant, je pense qu’il faudra refaire la manipulation à la main pour le moment.
Salut,
Pour la partie 2, dans Picsengine 3.5.3 il faut remplacer la ligne 472.
Merci pour la manip, je viens de faire les modifications, verdict demain soir normalement.
Bonjour,
Je n’ai pas encore fait la mise à jour en 3.5.3, merci pour le numéro de ligne.
Salut,
Bon c’est cool ca marche bien.
Maintenant reste trouver comment faire du rewriting d’url sous PE, parce que c’est pas super super exploitable.
A moins de connaitre les ID des albums et des Pics par coeur :s
Parfait.
Pour l’URL Rewriting, je jetterais un œil à l’occasion.
Bonjour,
J’ai un nouvel hébergeur et reprend tout de zéro. J’aimerais tracker ma galerie picsengine (version 3.5.3) avec Piwik.
Le code fonctionne bien avec la modification effectuée dans /admin/library/controller/Controller.Public.php (ligne 472) $toWrite .= ‘function exec(s) { eval(s); } function saveUrl(u) { window.open(u, »_self »); if(piwikTracker){ piwikTracker.trackPageView(« / » + u); } }’;
Petit blème… exemple du retour d’infos -> #album=1, photo=8, page=search. Aussi, à moins de connaître par coeur les n° des photos uploadées et des albums ou d’établir en parallèle une liste d’enfer style genre – #album=1=toto, photo=8=la tête à toto – pour ensuite devoir recouper les informations, il faut un décodeur sur ce coup là !
Une idée ? Un embryon d’idée ?
Pas vraiment d’idées sur le vif, mais une solution doit être trouvable.
J’ai essayé toutes les manip en 3.5.3 mais les albums et les photos ne s’affichent plus
J’ai fait un retour arrière…
Bizarre, la manipulation fonctionne pourtant.
Quand tu dis qu’il que « La partie importante de l’opération est l’activation du tracking des ancres dans Google Analytics », il fallait peut-être que je fasse qqc de particulier ?
Non, ça se fait avec cette ligne :
pageTracker._setAllowAnchor(true);
Bonjour,
J’ai refait de nouveaux tests ce matin : ce qui bloque c’est l’ajout de » if(pageTracker){ pageTracker._trackPageview(« / » + u); } » à la ligne 472 du fichier Controller.Public.php (je suis en v3.5.3).
Dès que j’ajoute cette commande, l’affichage se fige : les albums ne s’affichent plus, ni les photos…
Le fichier gallery.php modifié est toujours en place et ne pose aucun pb.
Je viens de mettre à jour ma galerie en 3.5.3, et ça fonctionne, tu as bien remplacé complètement la ligne ?
Bonjour,
Oui j’ai tout essayé : remplacer la ligne 472 complète par celle que tu proposes (copier/coller dans le notepad) ou insérer le texte en plus…
Tu as un exemple en ligne ?
J’ai mis à jour mon site
Il suffit de cliquer sur mon nom
Je t’ai envoyé mon fichier, si tu peux essayer avec.
Ca marche, je ne sais pas quoi dire
Il faut croire qu’un caractère indésirable s’était collé dans la copie avec notepad
Merci beaucoup pour ton aide !
Bonne soirée