[spip-dev] [Idée] Compter les clic sur les sites référencés

Bonjour,

J'espère que je ne suis pas passé à côté de cette fonctionnalité si elle
existe.
Voilà l'idée :
- SPIP permet de référencer des sites
- Mais il ne permet pas de savoir combien de visite sont faites à ces sites

=> Est-ce qu'il serait possible de modifier le noyau de SPIP pour gérer cela
?
À vue de nez, il faudrait :
- rajouter un champ dans la table des sites indiquant le nombre de clic
- Modifier la manière dont est gérée #URL_SITE pour que cela renvoit sur une
page qui fasse :
  1 - l'incrémentation du compteur de visite
  2 - la redirection de manière transparente
- Rajouter une balise #NOMBRE_VISITES à la boucle SITES
- Modifier dans l'admin ecrire/sites_tous.php3 pour qu'elle affiche en plus
les visites

Quelqu'un a déjà fait ça ?
Sinon, je veut bien m'y coller.

<citation de="Jacques PYRAT">

- SPIP permet de référencer des sites
- Mais il ne permet pas de savoir combien de visite sont faites à ces
sites
[...]

Le truc avait déjà été discuté jadis sur la liste mais ça avait été refusé.

En ce qui me concerne, j'ai un petit script qui fait tout ça (c'est
hyper-simple), si tu veux je dois pouvoir le rendre publiable.

FS

SCHREUER François wrote:

<citation de="Jacques PYRAT">

- SPIP permet de référencer des sites
- Mais il ne permet pas de savoir combien de visite sont faites à ces
sites
[...]

Le truc avait déjà été discuté jadis sur la liste mais ça avait été
refusé.

Raison ?

En ce qui me concerne, j'ai un petit script qui fait tout ça (c'est
hyper-simple), si tu veux je dois pouvoir le rendre publiable.

Volontier, merci :wink:
Et moi, je veux bien m'occuper d'en faire une SPIP contrib.

Jacques

<citation de="Jacques PYRAT">

Raison ?

Je me souviens plus exactement. Le message initial du thread devrait se
trouver à l'adresse suivante mais ça ne renvoie rien (et je ne sais pas
comment faire pour le retrouver ailleurs) :

http://article.gmane.org/gmane.comp.web.spip.devel/13946

Si je me souviens bien, une des raisons était que, quand le site visé
n'est pas disponible, ça patine avec le header. D'autre part, sur un gros
site, ça peut augmenter la charge de la base de données de façon peut-être
gênante sur des serveurs un peu faibles.

En ce qui me concerne, j'ai un petit script qui fait tout ça (c'est
hyper-simple), si tu veux je dois pouvoir le rendre publiable.

Volontier, merci :wink:

Bon alors, j'ai créé dans la racine de spip un petit fichier php nommé
compteur_liens.php dont le source est joint en annexe.

J'ai créé le filtre suivant :

//
// Génération du lien allant vers le compteur de liens
//
function compteur_id_syndic($id_syndic) {
  // Config
  $activer = 0; // Mettre à 0 pour désactiver le compteur (et renvoyer
directement vers l'URL)

  if ($activer) {
    return "./compteur_liens.php?id_syndic=".$id_syndic;
  }
  else {
    $r = spip_query_db("SELECT url_site FROM spip_syndic WHERE
id_syndic='$id_syndic' LIMIT 1");
    $o = spip_fetch_array($r);
    return $o['url_site'];
  }
}

Ensuite, j'appelle chaque lien de la façon suivante dans les squelettes :

<a href="[(#ID_SYNDIC|compteur_id_syndic)]" ...

Et moi, je veux bien m'occuper d'en faire une SPIP contrib.

Ok. Il suffit plus ou moins de recopier ce mail en fait.

Cela dit, il y a certaines améliorations à aporter avant de publier :
notamment, pour la sécurité, vérifier les variables avant de les utiliser.

FS

compteur_liens.php.txt (1.01 KB)

Ah oui, j'oubliais d'ajouter qu'il fallait effectivement ajouter un champ
'compteur' dans la table spip_syndic.

Et puis, pour récupérer les résultats, il suffit d'écrire qqc comme ça :

<?php

# Ce fichier doit être placé dans la racine de SPIP

require("./ecrire/inc_version.php3");
require("./ecrire/inc_connect.php3");

$r = spip_query_db("SELECT * FROM spip_syndic WHERE statut='publie' ORDER
BY compteur DESC LIMIT 100");
while($o = spip_fetch_array($r))
{
»···print("<p><a href=\"".$o['url_site']."\">".$o['nom_site']."</a>
(".$o['compteur']." visites)</p>");
}

?>

FS

Sur le principe c'est pas super de ne pas avoir l'URL réel de ce vers quoi
tu vas être "redirigé", juste pour que le webmestre du site que tu surfes
sache où tu cliques ; c'est contraire au concept mêmme de l'hypertexte que
de masquer les liens. Sur rezo.net on a adopté une autre technique, qu'on
est en train de breveter.

                                    * * *

Bon sinon, juste pour des questions de style, autant coder ça "comme dans
SPIP" :

require("./ecrire/inc_version.php3");

include('ecrire/inc_version.php3');

require("./ecrire/inc_connect.php3");

include_ecrire('inc_connect.php3');

$r = spip_query_db("SELECT * FROM spip_syndic WHERE statut='publie' ORDER

   ... spip_query("...") ...

                                    * * *

Ou mieux en squelette :
<BOUCLE_toto(SYNDIC){par compteur}{inverse}{0,100}>#NOM_SITE ... [(#ID_SYNDIC|affiche_compteur)]</BOUCLE_toto>

Ah ! |affiche_compteur est nécessaire pour aller rechercher la valeur du
champ supplémentaire, c'est pas terrible ; mieux vaudrait donc utiliser un
champ "extra".

-- Fil

Fil wrote:

Sur le principe c'est pas super de ne pas avoir l'URL réel de ce vers
quoi
tu vas être "redirigé", juste pour que le webmestre du site que tu
surfes
sache où tu cliques ; c'est contraire au concept mêmme de
l'hypertexte que
de masquer les liens.

Je conçois que ce soit une bonne raison.
Une manière de contourner : forcer l'affichage de l'URL dans la barre d'état
(en JavaScript) même si le lien pointe en fait sur une page de
redirection...
Mais ça ne marche pas pour les 10% qui n'ont pas JavaScript...

Sur rezo.net on a adopté une autre technique,
qu'on
est en train de breveter.

C'est de l'humour, là (le brevet) ?!?
Par contre, l'idée serait la bienvenue ici même...

AMA breveter se comprends ici dans le sens test d'utilité/test en
charge/test de fonctionnalité :-)))

Tiens vous aviez vu ? y'a une section brevet logiciel sur wikipedia :
http://fr.wikipedia.org/wiki/Brevet_logiciel

A+

C'est de l'humour, là (le brevet) ?!?

Ou alors c'est une idée géniale ;o).

@+

"Jacques PYRAT" <spip@mission-isolement.gouv.fr> a écrit dans le message de
news:bvbrpb$hmd$1@sea.gmane.org...

Fil wrote:
> Sur le principe c'est pas super de ne pas avoir l'URL réel de ce vers
> quoi
> tu vas être "redirigé", juste pour que le webmestre du site que tu
> surfes
> sache où tu cliques ; c'est contraire au concept mêmme de
> l'hypertexte que
> de masquer les liens.
Je conçois que ce soit une bonne raison.
Une manière de contourner : forcer l'affichage de l'URL dans la barre

d'état