php dans une boucle SPIP

Bonjour,
je voudrais savoir si le code suivant est correct :
but du code: afficher en gras le mot 'les' à chaque fois qu'il apparait

$mot = 'les';

  <BOUCLE_articles(ARTICLES){0,5}>
      <?php
      $intro = '[(#INTRODUCTIONl)]';
      $intro = eregi_replace($mot,'<b>'.$mot.'</b>',$intro);
      echo "$intro";
    ?>
</BOUCLE_articles>

"diane" <diane.ch@free.fr> a écrit dans le message de news:
bqcplv$tfk$1@sea.gmane.org...

Bonjour,
je voudrais savoir si le code suivant est correct :
but du code: afficher en gras le mot 'les' à chaque fois qu'il apparait

  <BOUCLE_articles(ARTICLES){0,5}>
      <?php
      $intro = '[(#INTRODUCTIONl)]';
    > echo "$intro";
    ?>
</BOUCLE_articles>

Bjr Diane,
ne devrai-tu pas faire cela sous le forme d'une fonction
<BOUCLE_articles(ARTICLES){0,5}>
       [(#INTRODUCTION|ta_fonction_perso)]
</BOUCLE_articles>
puis dans ton fichier mes_fonctions.php

function ta_fonction_perso($intro)
{
$mot = 'les';
$intro = eregi_replace($mot,'<b>'.$mot.'</b>',$intro);
return $intro;
}
quelque chose comme cela (mon code n'est peu être pas exact)

--http://freebsnet.free.fr/ips/

Finalement, j'ai comme même un problème.
car d'apres la doc : Les filtres de SPIP sont des fonctions PHP à une seule
variable.
et $mot en fait n'est pas défini (c'est pour le moteur de recherche).

explication : il faudrait que je puisse faire :
    function gras ($intro, $mot)
    ...

As-tu une idée ?

Bjr Diane,
ne devrai-tu pas faire cela sous le forme d'une fonction
<BOUCLE_articles(ARTICLES){0,5}>
       [(#INTRODUCTION|ta_fonction_perso)]
</BOUCLE_articles>
puis dans ton fichier mes_fonctions.php

function ta_fonction_perso($intro)
{
$mot = 'les';
$intro = eregi_replace($mot,'<b>'.$mot.'</b>',$intro);
return $intro;
}
quelque chose comme cela (mon code n'est peu être pas exact)

--http://freebsnet.free.fr/ips/

----------------------------------------------------------------------------
----

Une solution pas élégante consiste alors a définir une variable globale:

<BOUCLE_articles(ARTICLES){0,5}>
	<?php GLOBALS['lemot']="mot"; ?>
       [(#INTRODUCTION|ta_fonction_perso)]
 </BOUCLE_articles>

puis

tu utilises GLOBALS[‹ lemot ›] dans ton filtre.
C’est hyper moche, merdique, mais si t’es pas esthète, ça fonctionne !!!

F.

diane wrote:

diane wrote:

Finalement, j'ai comme même un problème.
car d'apres la doc : Les filtres de SPIP sont des fonctions PHP à une seule
variable.

Depuis la version 1.5, il est possible de passer des paramètres dans les filtres. Voir: Les filtres de SPIP - SPIP

et $mot en fait n'est pas défini (c'est pour le moteur de recherche).

Il existe la variable $recherche qui joue ce rôle dans le moteur de recherche.

Yves Grenier

ok, j’ai le résultat souhaité.
j’ai voulu en savoir plus sur les variables globales, je suis tombée sur :

<?php $a = 1; $b = 2; function somme() { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } somme(); echo $b; ?>

http://www.manuelphp.com/php/language.variables.scope.global.php

merci beaucoup pour votre aide.

« Francois Legrand » <legrand@iap.fr> a écrit dans le message de news: 3FC9FE09.5040001@iap.fr
Une solution pas élégante consiste alors a définir une variable globale:

<BOUCLE_articles(ARTICLES){0,5}>
	<?php GLOBALS['lemot']="mot"; ?>
       [(#INTRODUCTION|ta_fonction_perso)]
 </BOUCLE_articles>

puis

tu utilises GLOBALS[‹ lemot ›] dans ton filtre.
C’est hyper moche, merdique, mais si t’es pas esthète, ça fonctionne !!!

F.

diane wrote:

Finalement, j'ai comme même un problème.
car d'apres la doc : Les filtres de SPIP sont des fonctions PHP à une seule
variable.
et $mot en fait n'est pas défini (c'est pour le moteur de recherche).

explication : il faudrait que je puisse faire :
    function gras ($intro, $mot)
    ...

As-tu une idée ?

  
Bjr Diane,
ne devrai-tu pas faire cela sous le forme d'une fonction
 <BOUCLE_articles(ARTICLES){0,5}>
       [(#INTRODUCTION|ta_fonction_perso)]
 </BOUCLE_articles>
puis dans ton fichier mes_fonctions.php

function ta_fonction_perso($intro)
{
$mot = 'les';
$intro = eregi_replace($mot,'<b>'.$mot.'</b>',$intro);
return $intro;
}
quelque chose comme cela (mon code n'est peu être pas exact)

--http://freebsnet.free.fr/ips/

    

----------------------------------------------------------------------------
----

  

---

_______________________________________________
liste spip
[spip@rezo.net](mailto:spip@rezo.net) - désabonnement : [spip-off@rezo.net](mailto:spip-off@rezo.net)
Infos et archives : [http://listes.rezo.net/mailman/listinfo/spip](http://listes.rezo.net/mailman/listinfo/spip)
Documentation de SPIP : [http://www.spip.net/](http://www.spip.net/)