Anthor.Net

Blog | jQuery Progression | SlickSpeed | En direct de Twitter | Portfolio | Photographies | Contact

Tag - PHP

24/01/2010

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 <body> 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&amp;action=gallery&amp;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.

8/01/2010

Utiliser Zend_Search_Lucene pour créer son propre moteur de recherche!

zf_logo_white.jpg Le Zend Framework contient un composant permettant de créer rapidement et simplement son propre moteur de recherche ! Ce composant nommé Zend_Search_Lucene est un portage, du projet Java du même nom, totalement écrit en PHP5.

Ce composant est autonome et ne demande aucune architecture spécifique. De ce fait il peux servir pour tout nouveau projet ou s'intégrer dans un projet existant. Aucune base de données n'est nécessaire. De plus les index peuvent être utilisés aussi bien avec Zend_Search_Lucene, qu'avec tout autre portage de Lucene (Attention toutefois, tous les encodages ne sont pas supportés !)
Il supporte différents encodages grâce à l'utilisation de différents analyseurs, mais pas l'UTF-8 par défaut, comme PHP me direz-vous :p

Contrairement au reste de la documentation et des autres composants du Zend Framework, le fonctionnement de Zend_Search_Lucene n'est pas des plus explicites.
Dans cet article nous verrons donc, comment utiliser Zend_Search_Lucene pour construire un index, construire les requêtes de recherches et enfin afficher les résultats dans une page. Le tout en UTF-8 bien évidemment.

Lire la suite

6/09/2009

Formatter un fichier Excel avec PHP

Certains clients me demandent parfois des exports en Excel dans leurs back-office. Loin d'être compliqué cet export demande tout de même quelques manipulations.
Rien de bien compliqué néanmoins, puisque une fonction et un header permettent de s'affranchir de cet exercice en moins de temps qu'il n'en faut.

Certes cette méthode affiche un avertissement lors de la première ouverture, mais il faut savoir qu'Excel gère très bien les tableaux. Le fichier s'ouvre donc parfaitement avec les versions XP et 2007.

Lire la suite

19/10/2008

Serveur Dédié Debian Etch 64bit chez OVH - Installation d'Apache 2, PHP5, et phpMyAdmin

fab.os.logo.apache.200.150.jpg Pour installer Apache 2 :

apt-get install apache2 apache2-mpm-prefork apache2-utils apache2-prefork-dev

Puis installer PHP 5 :

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-mhash php5-mysql

Editer le fichier /etc/apache2/ports.conf et ajouter la ligne :

Listen 443

Effectuez les commandes suivantes pour activer les modules SSL, Rewrite, Suexec et Include :

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Je souhaite maintenant mettre en place les extensions PECL_HTTP, Fileinfo et APC op cache.
Pour préparer leur installation, j'ai besoin de quelques outils supplémentaires :

apt-get install curl libcurl3-gnutls-dev libmagic-dev
ln -s /usr/bin/apxs2 /usr/bin/apxs
ln -s /usr/share/file/magic /etc/magic.mime

Puis je compile les extensions :

pecl install pecl_http
pecl install fileinfo
pecl install apc

Pour activer les extensions et effectuer quelques configurations, j'édite le fichier /etc/php5/apache2/php.ini :

expose_php = On
magic_quotes_gpc = Off
default_charset = "utf-8"
allow_url_include = On
extension = http.so
extension = fileinfo.so
extension = apc.so

Installer phpMyAdmin :

apt-get install phpmyadmin

Et enfin redémarrer Apache :)

/etc/init.d/apache2 restart

24/09/2008

Sécuriser les appels Paybox, avec CURL

On a beau avoir une documentation de plus de 60 pages, on ne connait pas forcement les normes xHTML, ou la façon de sécuriser simplement un script ^^

Par défaut, la documentation de Paybox indique un simple formulaire html afin de transmettre les variables d'appels à la boutique. Très rapidement, on voit que les variables sont donc tout à fait publiques, un simple copier/coller suffit à récupérer le formulaire et modifier les variables d'appels.

Afin de sécuriser le tout, nous allons utiliser CURL, afin de masquer l'emplacement du CGI, et masquer nos variables. De cette manière le traitement entier de l'appel du CGI à la redirection se fera côté serveur, et non plus côté client.

Lire la suite

- page 1 de 2