Pb à la surcharge de la fonction calculer_url_site_dist

Bonsoir,

Je viens de créer un petit code (en local pour l'instant) qui devrait surcharger
la fonction calculer_url_site_dist de SPIP afin d'en modifier le
comportement,notamment pouvoir intégrer le comptage de clic du plugin du même
nom dans les sites appelés à partir d'un raccourcis typographiques insérés dans
un article.

Mon code est donc le suivant :

function calculer_url_site ($id, $texte='', $lien='', $connect='') {

# attention dans le cas des sites le lien pointe non pas sur # la page locale du
site, mais directement sur le systeme de # comptage de clics qui orientera apres
sur le site directement

  $row =sql_fetsel('nom_site,url_site', 'spip_syndic',
"id_syndic=$id",'','','','','','','',$connect);
  if ($row) {
    $id_syndic=intval($id);
    if (!empty($id_syndic)) {
      $lien = generer_url_action("compteclics","id_syndic=".$id_syndic,true);
    }
    else {
      $lien = $row['url_site'];
    }
// $lien = $row['url_site'];
    if (!trim($texte))
      $texte = supprimer_numero($row['nom_site']);
    if (!trim($texte)) $texte = $id;
  }

  return array($lien, 'spip_out', $texte, $row['lang']); }

Ce qui est à 2 ou 3 lignes la copie conforme de la function initiale de SPIP.

Et bien quand j'active le plugin avec cette nouvelle fonction insérée dans le
fichier compteclics_options.php (créé par mes soins), j'ai l'erreur suivante :

Fatal error: Cannot redeclare calculer_url_site() (previously declared in
C:\wamp\www\br\plugins\compte_clics\compteclics_options.php:29) in
C:\wamp\www\br\ecrire\inc\texte.php on line 804

Je ne suis pas bon en anglais, mais il semble que soit cette fonction est déjà
déclarer, soit il le faudrait. Dans le deux cas, je ne sais pas comment faire.

Alors si une bonne âme charitable, passant par là avait une idée, cela
m'aiderait beaucoup et je pense que cela contribuerait à l'amélioration d'un
plugin assez intéressant.

Cordialement,

Xavier BUROT
http://xebiaut.free.fr

xebiaut@free.fr a écrit :

Bonsoir,

Je viens de créer un petit code (en local pour l'instant) qui devrait surcharger
la fonction calculer_url_site_dist de SPIP afin d'en modifier le
comportement,notamment pouvoir intégrer le comptage de clic du plugin du même
nom dans les sites appelés à partir d'un raccourcis typographiques insérés dans
un article.

Mon code est donc le suivant :

function calculer_url_site ($id, $texte='', $lien='', $connect='') {

# attention dans le cas des sites le lien pointe non pas sur # la page locale du
site, mais directement sur le systeme de # comptage de clics qui orientera apres
sur le site directement

  $row =sql_fetsel('nom_site,url_site', 'spip_syndic',
"id_syndic=$id",'','','','','','','',$connect);
  if ($row) {
    $id_syndic=intval($id);
    if (!empty($id_syndic)) {
      $lien = generer_url_action("compteclics","id_syndic=".$id_syndic,true);
    }
    else {
      $lien = $row['url_site'];
    }
// $lien = $row['url_site'];
    if (!trim($texte))
      $texte = supprimer_numero($row['nom_site']);
    if (!trim($texte)) $texte = $id;
  }

  return array($lien, 'spip_out', $texte, $row['lang']); }

Ce qui est à 2 ou 3 lignes la copie conforme de la function initiale de SPIP.

Et bien quand j'active le plugin avec cette nouvelle fonction insérée dans le
fichier compteclics_options.php (créé par mes soins), j'ai l'erreur suivante :

Fatal error: Cannot redeclare calculer_url_site() (previously declared in
C:\wamp\www\br\plugins\compte_clics\compteclics_options.php:29) in
C:\wamp\www\br\ecrire\inc\texte.php on line 804

Etonnant il n'y a pas de fichier compteclis_options.php dans le plugin. C'est un fichier que tu as rajouté ?

Si tu fais des ajouts tu peux les metres directement dans ecrire/mes_options.php ca t'évite de les perdre lors des MAJ des plugins.

Je ne suis pas bon en anglais, mais il semble que soit cette fonction est déjà
déclarer, soit il le faudrait. Dans le deux cas, je ne sais pas comment faire.

De ce que j'ai compris tu ne peux pas redéclarer une fonction standard à cet endroit. Tu dois la mettre dans inc/lien.php (ton propre inc/lien ).

Alors si une bonne âme charitable, passant par là avait une idée, cela
m'aiderait beaucoup et je pense que cela contribuerait à l'amélioration d'un
plugin assez intéressant.

Bah oui hein :wink:

-- Chryjs

Bonsoir,

Oui je sais qu'il n'y a pas de fichier compteclics_options dans la plugins, j'ai
modifié le fichier plugin.xml pour l'intégrer car je souhaitais pouvoir te
proposer l'intégration de cette modification dans ton plugin pour une futur
version 0.7. Car je pense que cela manque le fait que ton plugin ne comptabilise
pas les clics fait à partir des liens inscrits dans un article, une brève ou une
rubrique.

Donc j'ai voulu essayer de remédier à cela. Donc je vais continuer mes
investigation bien que je ne soit pas très pro en matière de php. Je me sens
mieux avec les balises SPIP.

Alors si tu as une idée, je suis preneur ou même si tu trouve la solution pour
intégrer mon code dans ton plugin, et bien fait le moi savoir.

Cordialement,

Xavier BUROT

Selon chryjs <chryjs@free.fr>:

xebiaut@free.fr a écrit :
> Bonsoir,
>
> Je viens de créer un petit code (en local pour l'instant) qui devrait
surcharger
> la fonction calculer_url_site_dist de SPIP afin d'en modifier le
> comportement,notamment pouvoir intégrer le comptage de clic du plugin du
même
> nom dans les sites appelés à partir d'un raccourcis typographiques insérés
dans
> un article.
>
> Mon code est donc le suivant :
>
> function calculer_url_site ($id, $texte='', $lien='', $connect='') {
>
> # attention dans le cas des sites le lien pointe non pas sur # la page
locale du
> site, mais directement sur le systeme de # comptage de clics qui orientera
apres
> sur le site directement
>
> $row =sql_fetsel('nom_site,url_site', 'spip_syndic',
> "id_syndic=$id",'','','','','','','',$connect);
> if ($row) {
> $id_syndic=intval($id);
> if (!empty($id_syndic)) {
> $lien = generer_url_action("compteclics","id_syndic=".$id_syndic,true);
> }
> else {
> $lien = $row['url_site'];
> }
> // $lien = $row['url_site'];
> if (!trim($texte))
> $texte = supprimer_numero($row['nom_site']);
> if (!trim($texte)) $texte = $id;
> }
>
> return array($lien, 'spip_out', $texte, $row['lang']); }
>
> Ce qui est à 2 ou 3 lignes la copie conforme de la function initiale de
SPIP.
>
> Et bien quand j'active le plugin avec cette nouvelle fonction insérée dans
le
> fichier compteclics_options.php (créé par mes soins), j'ai l'erreur
suivante :
>
> Fatal error: Cannot redeclare calculer_url_site() (previously declared in
> C:\wamp\www\br\plugins\compte_clics\compteclics_options.php:29) in
> C:\wamp\www\br\ecrire\inc\texte.php on line 804
>

Etonnant il n'y a pas de fichier compteclis_options.php dans le plugin.
C'est un fichier que tu as rajouté ?

Si tu fais des ajouts tu peux les metres directement dans
ecrire/mes_options.php ca t'évite de les perdre lors des MAJ des plugins.

> Je ne suis pas bon en anglais, mais il semble que soit cette fonction est
déjà
> déclarer, soit il le faudrait. Dans le deux cas, je ne sais pas comment
faire.

De ce que j'ai compris tu ne peux pas redéclarer une fonction standard à
cet endroit. Tu dois la mettre dans inc/lien.php (ton propre inc/lien ).

> Alors si une bonne âme charitable, passant par là avait une idée, cela
> m'aiderait beaucoup et je pense que cela contribuerait à l'amélioration
d'un
> plugin assez intéressant.

Bah oui hein :wink:

-- Chryjs

Xavier BUROT wrote:

Bonsoir,

Oui je sais qu'il n'y a pas de fichier compteclics_options dans la plugins, j'ai
modifié le fichier plugin.xml pour l'intégrer car je souhaitais pouvoir te
proposer l'intégration de cette modification dans ton plugin pour une futur
version 0.7. Car je pense que cela manque le fait que ton plugin ne comptabilise
pas les clics fait à partir des liens inscrits dans un article, une brève ou une
rubrique.

Ok oui il me semble qu'on en avait parlé et que j'avais trouvé ça très intéressant.

Donc j'ai voulu essayer de remédier à cela. Donc je vais continuer mes
investigation bien que je ne soit pas très pro en matière de php. Je me sens
mieux avec les balises SPIP.

Courage je suis sûr que tu vas y arriver.

Alors si tu as une idée, je suis preneur ou même si tu trouve la solution pour
intégrer mon code dans ton plugin, et bien fait le moi savoir.

C'est pas trop une question de savoir mais de temps malheureusement. Là je bosse sur spipBB (plugin) et je voudrais qu'il soit opérationnel pour pouvoir migrer certains sites qui me l'ont demander. Ensuite... je pourrai te donner un coup de main mais on sera déjà en 2008 je pense.

--
Chryjs - mailto:chryjs@free.fr