Babylon Design

par Samuel Le Morvan

Chez vous aussi, utilisez un Web de qualité

Rubrique Développement Web

Profitez des astuces en tous genres portant sur le développement en général !

Rubrique Développement Web

Un patch pour BBClone, l’alternative au plugin Referers

Il y a quelques mois, j’ai installé le plugin Referers pour DotClear. Mais aujourd’hui je constate qu’il me m’est plus adapté. C’est pourquoi j’ai codé un petit patch à l’arrache pour le plugin BBClone qui permet de réaliser la même fonction.

Le plugin Referers ajoute un lien hypertexte dans un fichier texte à chaque fois qu’un visiteur vient sur le site par le biais d’un autre. Il est plaisant de voir directement sur son site par où est passé l’internaute qui y navigue au même moment même. Cela permet notamment de voir en un clic quel site parle de vous.

Or le problème est qu’à la longue ce fameux fichier texte devient de plus en plus conséquent et cela à le don de ralentir le site. Sans m’en apercevoir, le fichier des référenceurs de Babylon-Design à atteint 14Mo ! :gaga:

J’ai également installé sur mon site le plugin de statistiques BBclone, qui gère aussi les référenceurs mais de manière globale contrairement à Referers qui les gère de manière ephémère.

J’ai donc mis les mains dans le code et pondu un petit patch vraiment à l’arrache car je ne l’ai testé que sur mon site et suivant sa configuration. Pour ceux que cela interesse, voici le code :

[php] [votre-compte-hébergement]/www/[dotclear]/ecrire/tools/bbclone/var/last.php'); 		if(is_array($last['traffic'])) 			{ 			$traffic = array_reverse($last['traffic']); 			foreach($traffic as $k => $v) 				{ 				if($v['referer'] != "unknown") 					{ 					if(sizeof($ref) < $max) 						{ 						preg_match('`^([a-z0-9]+://)?([^/:]+)(:[\d]+)?(/.*$)?`i', $v['referer'], $out); 						$ref[$out[2]] = $v['referer']; 						} 					else 						{break;} 					} 				} 			} 		if(is_array($ref)) 			{ 			$listRef = "\n<ul>"; 			foreach($ref as $k => $v) 				{$listRef .= "\n<li><a href=\"".$v."\">".$k."</a></li>";} 			$listRef .= "\n</ul>"; 			} 		return $listRef; 	} ?> 

Puis il suffit de placer ce code dans votre fichier template.php :

[php] <?php # BBClone / Referers echo bbclone::referers(); ?> 

Ce que nos lecteurs en disent :

  1. Guizbizet

    Très bonne idée ce patch et merci pour le code, ça m’intéresse pas mal pour le mien, mais apparement il ne marche pas pour ton site. Il y a une erreur ici

    Parse error: syntax error, unexpected $end, expecting ‘)’ in /home.2/babylond/www/site/ecrire/tools/bbclone/var/last.php on line 767

    Je repasserai pour voir si cela remarche et si tu as modifié le code et avec ta permission je l’utiliserai sur le mien

  2. Shemu

    Oui il marche, mais j’ai depuis longtemps quelque soucis avec BBClone, mon fichier last.php s’écrit mal.
    A priori c’est un bug courant, si j’en crois le forum de DotClear ;)

  3. Sophie

    J’ai testé et ça a l’air de fonctionner très bien chez moi aussi.
    Merci

  4. David Latapie

    Salut,

    Je me décide enfin à répondre à ton commentaire où tu me proposais d’utiliser ton code pour obtenir ce que je veux (blog.empyree.org/?2073-ap…

    J’ai copié ton code (dans template.php, j’ai ajouté le second morceau de code, je n’ai pas supprimé le premier, ça peut être utile à savoir). Je ne vois rien de nouveau, dans les statistiques, que devrais-je voir ?

  5. Shemu

    Salut David,
    Ton erreur provient apparement de ton plugin Referers. Sachant que ce plugin ajoute au fur et à mesure des lignes à un fichier texte qui n’est jamais vidé, celui-ci peut atteindre des tailles astronomiques. Ainsi lorsque j’avais ce plugin sur mon site il a atteint 14Mo !
    Visiblement le tien à atteint 33Mo… Tu peux soit vider ce fichier de temps en temps soit passer par BBClone et ajouter mon patch (qui n’a pas été testé partout donc succeptible à bugs).
    De plus, il faut effectivement garder toutes les fonctions existantes du fichier functions.php, elles sont vitales au plugin.
    Ce patch ne change rien au statistiques, il permet juste d’afficher les referers que BBClone enregistre.

  6. David Latapie

    Salut,

    Je vois pas mal de spam sur ton blog. Un conseil : installe Spam Clear blog.empyree.org/?2408-sp…

Les commentaires sont clos.