[SPIP Zone] Plugin TOP site (essai)

bonjour à tous, voilà j'essaye de développer un plugin afin que, lorsque le REFERER de la personne arrivant sur le site correspond à l'adresse d'un des sites syndiqué, augmente le compteur du site référé.

dans la base, j'ai inséré un colonne compteur_clic

Ce qui donne pour la fonction:

function topsite_ajout($flux) {
  verifier_visiteur(); // securite...
  $site = $_SERVER['HTTP_REFERER'];
  preg_split(",\t,", $site, 3);
  if(spip_query("SELECT url_site FROM spip_syndic WHERE url_site='$site' LIMIT 1"))
  {

    spip_query("UPDATE LOW_PRIORITY spip_syndic SET clic_compteur = clic_compteur + 1 WHERE url_site='$site' LIMIT 1");
  
  }
  
}

et le fichier plugin.xml est le suivant

<plugin>
  <nom>
    Top Site
  </nom>
  <auteur>
    JN
  </auteur>
  <version>
    0.1
  </version>
  <etat>
    dev
  </etat>
  <description>
    Permet de faire un top site en faisant la correspondance des sites enregistr&eacute; et le referer de la personne entrante.</description>
  
  <prefix>topsite</prefixe>

   <pipeline>
    <nom>insert_head</nom>
    <action>ajout</action>
    <inclure>topsite_fonctions.php</inclure>
   </pipeline>
</plugin>

Je pense que cela vient de la pipeline, sinon quelqu'un pourrait-il m'aider?

Merci à vous,

JN

JamesNicolas a écrit :

bonjour à tous, voilà j'essaye de développer un plugin afin que, lorsque le REFERER de la personne arrivant sur le site correspond à l'adresse d'un des sites syndiqué, augmente le compteur du site référé.
dans la base, j'ai inséré un colonne compteur_clic

Ca serait bien de poser une question, on peut pas deviner ta demande !
Dans tous les cas, insert_head n'est calculé qu'au calcul de la page. Une page en cache ne passera plus dedans.

Pour une action à chaque clic, utiliser plutot le pipeline affichage_final.

MM.

Ce qui donne pour la fonction:

function topsite_ajout($flux) {
    verifier_visiteur(); // securite...
    $site = $_SERVER['HTTP_REFERER'];
    preg_split(",\t,", $site, 3);
    if(spip_query("SELECT url_site FROM spip_syndic WHERE url_site='$site' LIMIT 1"))
    {

        spip_query("UPDATE LOW_PRIORITY spip_syndic SET clic_compteur = clic_compteur + 1 WHERE url_site='$site' LIMIT 1");
        }
    }

et le fichier plugin.xml est le suivant

<plugin>
    <nom>
        Top Site </nom>
    <auteur>
        JN
    </auteur>
    <version>
        0.1
    </version>
    <etat>
        dev
    </etat>
    <description>
        Permet de faire un top site en faisant la correspondance des sites enregistr&eacute; et le referer de la personne entrante.</description>
        <prefix>topsite</prefixe>

     <pipeline>
      <nom>insert_head</nom>
      <action>ajout</action>
      <inclure>topsite_fonctions.php</inclure>
     </pipeline>
</plugin>

Je pense que cela vient de la pipeline, sinon quelqu'un pourrait-il m'aider?

Merci à vous,

JN

--
MM.

Le 11 nov.11 08 à 17:19, Matthieu Marcillaud a écrit :

JamesNicolas a écrit :

bonjour à tous, voilà j'essaye de développer un plugin afin que, lorsque le REFERER de la personne arrivant sur le site correspond à l'adresse d'un des sites syndiqué, augmente le compteur du site référé.
dans la base, j'ai inséré un colonne compteur_clic

Ca serait bien de poser une question, on peut pas deviner ta demande !
Dans tous les cas, insert_head n'est calculé qu'au calcul de la page. Une page en cache ne passera plus dedans.

Pour une action à chaque clic, utiliser plutot le pipeline affichage_final.

MM.

aïe, oui effectivement c'est mieux avec une question... et bien ça ne fonctionne pas ma fonction et lorsque j'arrive sur le site, ça me demande de recalculer la page (et même après recalcul ça fonctionne pas :s) Je souhaitais donc savoir si vous auriez une piste pour m'aider à trouver mon erreur ou non :slight_smile:

Merci d'avance

JN

PS : ces deux fichiers sont les seuls à constituer le plugin :wink:

Ce qui donne pour la fonction:
function topsite_ajout($flux) {
   verifier_visiteur(); // securite...
   $site = $_SERVER['HTTP_REFERER'];
   preg_split(",\t,", $site, 3);
   if(spip_query("SELECT url_site FROM spip_syndic WHERE url_site='$site' LIMIT 1"))
   {
       spip_query("UPDATE LOW_PRIORITY spip_syndic SET clic_compteur = clic_compteur + 1 WHERE url_site='$site' LIMIT 1");
       }
   }
et le fichier plugin.xml est le suivant
<plugin>
   <nom>
       Top Site </nom>
   <auteur>
       JN
   </auteur>
   <version>
       0.1
   </version>
   <etat>
       dev
   </etat>
   <description>
       Permet de faire un top site en faisant la correspondance des sites enregistr&eacute; et le referer de la personne entrante.</description>
       <prefix>topsite</prefixe>
    <pipeline>
     <nom>insert_head</nom>
     <action>ajout</action>
     <inclure>topsite_fonctions.php</inclure>
    </pipeline>
</plugin>
Je pense que cela vient de la pipeline, sinon quelqu'un pourrait-il m'aider?
Merci à vous,
JN

--
MM.