Modifier la Class spip_out

Bonjour tout le monde.

J'aimerais ajouter une condition lors de l'écriture de cette class.

Les liens dans les articles sont fait suivant le schéma [le titre->le lien]

SPIP le transforme en url en ajoutant class="spip_out" et ca me vas très
bien, je le gère en css

Mais j'aimerai rajouter une condition php style :

if ($liens contient 'mondomaine.tld')
  ajoute class="spip_out2"
else
  ajoute class="spip_out"

De façon à ce qu'en CSS je les gèrent différemment.

Si vous aviez une petite piste ou plugin cela m'arrangerais :wink:
merci.

Mais j'aimerai rajouter une condition php style :

if ($liens contient 'mondomaine.tld')
ajoute class="spip_out2"
else
ajoute class="spip_out"

De façon à ce qu'en CSS je les gèrent différemment.

Ok, j'ai trouvée comment faire en reprenant la fonction inc_lien_dist() du
fichier inc/lien.php
elseif (!$class)
{
   # si pas spip_in|spip_glossaire
    if (strpos($lien, 'domaine.tld'))
      $class = "spip_out2";
else
      $class = "spip_out";
  }

Désolée pour le bruit...

Soph a écrit :

Mais j'aimerai rajouter une condition php style :

if ($liens contient 'mondomaine.tld')
 ajoute class="spip_out2"
else
 ajoute class="spip_out"

De façon à ce qu'en CSS je les gèrent différemment.
    
Ok, j'ai trouvée comment faire en reprenant la fonction inc_lien_dist() du 
fichier inc/lien.php
elseif (!$class)
 {
   # si pas spip_in|spip_glossaire
    if (strpos($lien, 'domaine.tld'))
      $class = "spip_out2";
else
      $class = "spip_out";
  }

Désolée pour le bruit... 
  

bonjour,
… tu peux peut-être éviter le php et gérer ça en css, avec cette syntaxe (par supportée par les anciens navigateurs)
a[href^=] { … } où tu testes le href avec le nom de ton domaine voir :

bonjour,
... tu peux peut-être éviter le php et gérer ça en css, avec cette syntaxe
(par supportée par les anciens navigateurs)
a[href^="http://"] { ... } où tu testes le href avec le nom de ton domaine
voir : http://wiki.mediabox.fr/documentation/css/selecteur-attributs
--
Stéphanie

Roh merci, Stéphanie, je ne savais pas que l'on pouvais faire des règles de
ce genre dans les css

Super :slight_smile:

stef dn a écrit :

Soph a écrit :

Mais j'aimerai rajouter une condition php style :

if ($liens contient 'mondomaine.tld')
 ajoute class="spip_out2"
else
 ajoute class="spip_out"

De façon à ce qu'en CSS je les gèrent différemment.
    
Ok, j'ai trouvée comment faire en reprenant la fonction inc_lien_dist() du 
fichier inc/lien.php
elseif (!$class)
 {
   # si pas spip_in|spip_glossaire
    if (strpos($lien, 'domaine.tld'))
      $class = "spip_out2";
else
      $class = "spip_out";
  }

Désolée pour le bruit... 
  

bonjour,
… tu peux peut-être éviter le php et gérer ça en css, avec cette syntaxe (par supportée par les anciens navigateurs)
a[href^=] { … } où tu testes le href avec le nom de ton domaine voir :

Je rebondis sur ce message
Si la solution css est intéressante, elle présente le défaut de ne pas marcher sur pas mal de navigateurs.
La solution php m’intéresse aussi mais je ne parle pas cette langue.

Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur) pour que les liens de type spip.php?page=machin internes au site n’aient pas la class spip_out ?

bonsoir,
j'ai soulevé ce cas de figure y a quelques semaines sur la liste de la dev et j'ai eu droit également à cette piste de $liens
alors qu'a l'origine spip proposait une classe intermédiaire spip_url voir ceci :

et aussi ce fil dans thunderbird
news://news.gmanes.org:119/h5v8cp$em2$1@ger.gmane.org
Grrrr ....
j'en ai plein les placards de fonctionnalités basiques disparues ou pas finalisées in core !!!
Grrrr.......
bon pour la soluce php je veux bien m'y coller, mais c'est parce que des utilisateurs en ont besoin.
Grrrrrrr.........

Jean-Christophe Villeneuve a écrit :

stef dn a écrit :

Soph a écrit :

Mais j'aimerai rajouter une condition php style :

if ($liens contient 'mondomaine.tld')
ajoute class="spip_out2"
else
ajoute class="spip_out"

De façon à ce qu'en CSS je les gèrent différemment.
    

Ok, j'ai trouvée comment faire en reprenant la fonction inc_lien_dist() du fichier inc/lien.php
elseif (!$class)
{
   # si pas spip_in|spip_glossaire
    if (strpos($lien, 'domaine.tld'))
      $class = "spip_out2";
else
      $class = "spip_out";
  }

Désolée pour le bruit...
  

bonjour,
... tu peux peut-être éviter le php et gérer ça en css, avec cette syntaxe (par supportée par les anciens navigateurs)
a[href^="http://"] { ... } où tu testes le href avec le nom de ton domaine
voir : http://wiki.mediabox.fr/documentation/css/selecteur-attributs

--
Stéphanie

Je rebondis sur ce message
Si la solution css est intéressante, elle présente le défaut de ne pas marcher sur pas mal de navigateurs.
La solution php m'intéresse aussi mais je ne parle pas cette langue.

Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur) pour que les liens de type spip.php?page=machin internes au site n'aient pas la class spip_out ?
------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

--

Signalez vos spams d'un simple clic. www.signal-spam.fr <https://www.signal-spam.fr/&gt;

Je rebondis sur ce message
Si la solution css est intéressante, elle présente le défaut de ne pas
marcher
sur pas mal de navigateurs.
La solution php m'intéresse aussi mais je ne parle pas cette langue.

Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur)
pour que les liens de type spip.php?page=machin internes au site n'aient
pas la class spip_out ?

Bah comme je l'avais dite :
dans inc/lien.php
il y as la fonction inc_lien_dist()

il suffit de remplacer à la ligne 40 :
---------
elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
---------

par : ( en changeant domaine.tld par tondomaine.com bien sur^^)
---------
elseif (!$class)
{
   # si pas spip_in|spip_glossaire
    if (strpos($lien, 'domaine.tld'))
      $class = "spip_out2";
else
      $class = "spip_out";
  }
---------
Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)

>Je rebondis sur ce message

Si la solution css est intéressante, elle présente le défaut de ne pas
marcher
sur pas mal de navigateurs.
La solution php m'intéresse aussi mais je ne parle pas cette langue.

Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur)
pour que les liens de type spip.php?page=machin internes au site n'aient
pas la class spip_out ?

Bah comme je l'avais dite :
dans inc/lien.php
il y as la fonction inc_lien_dist()

il suffit de remplacer à la ligne 40 :
---------
elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
---------

par : ( en changeant domaine.tld par tondomaine.com bien sur^^)
---------
elseif (!$class)
{
  # si pas spip_in|spip_glossaire
   if (strpos($lien, 'domaine.tld'))
     $class = "spip_out2";
else
     $class = "spip_out";
}
---------
Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)

(manquais la suite de mon message ^^)

Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)
aurons spip_out2 que tu peux ou non gérer dans le css
Chez moi spip est installé en sous domaine donc je voulais avoir une image
avec une couleur pour les liens externes au domaine, une couleur pour les
liens du domaine et une couleur pour les liens du même sous-domaine.

.texte a.spip_in{padding-left:12px;background:transparent url(spip_in.gif)
no-repeat left;}
a.spip_out{padding-left:12px;background:transparent url(spip_out.gif)
no-repeat left;}
a.spip_out2{padding-left:12px;background:transparent url(spip_out2.gif)
no-repeat left;}

( oui je préfère les images devant les liens ^^ )
le .texte devant le a.spip_in étant pour eviter qu'il mette une image en
dehors des articles.

Bonsoir,
ok c'est une solution, mais à la prochaine mise à jour comment ça va ce passer ? dans /ecrire/inc/lien.php ? tu recode la fonction ?

cordialement

Soph a écrit :

Je rebondis sur ce message
Si la solution css est intéressante, elle présente le défaut de ne pas
marcher
sur pas mal de navigateurs.
La solution php m'intéresse aussi mais je ne parle pas cette langue.

Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur)
pour que les liens de type spip.php?page=machin internes au site n'aient
pas la class spip_out ?
      

Bah comme je l'avais dite :
dans inc/lien.php
il y as la fonction inc_lien_dist()

il suffit de remplacer à la ligne 40 :
---------
elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
---------

par : ( en changeant domaine.tld par tondomaine.com bien sur^^)
---------
elseif (!$class)
{
  # si pas spip_in|spip_glossaire
   if (strpos($lien, 'domaine.tld'))
     $class = "spip_out2";
else
     $class = "spip_out";
}
---------
Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)
    
(manquais la suite de mon message ^^)

Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)
aurons spip_out2 que tu peux ou non gérer dans le css
Chez moi spip est installé en sous domaine donc je voulais avoir une image
avec une couleur pour les liens externes au domaine, une couleur pour les
liens du domaine et une couleur pour les liens du même sous-domaine.

.texte a.spip_in{padding-left:12px;background:transparent url(spip_in.gif)
no-repeat left;}
a.spip_out{padding-left:12px;background:transparent url(spip_out.gif)
no-repeat left;}
a.spip_out2{padding-left:12px;background:transparent url(spip_out2.gif)
no-repeat left;}

( oui je préfère les images devant les liens ^^ )
le .texte devant le a.spip_in étant pour eviter qu'il mette une image en
dehors des articles.

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

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

--

Signalez vos spams d'un simple clic. www.signal-spam.fr <https://www.signal-spam.fr/&gt;

Soph <soph@sgsgames.com> wrote:

--===============0443917130==

>Je rebondis sur ce message
>Si la solution css est intéressante, elle présente le défaut de ne pas
>marcher
> sur pas mal de navigateurs.
>La solution php m'intéresse aussi mais je ne parle pas cette langue.
>
>Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur)
>pour que les liens de type spip.php?page=machin internes au site n'aient
>pas la class spip_out ?

Bah comme je l'avais dite :
dans inc/lien.php
il y as la fonction inc_lien_dist()

il suffit de remplacer à la ligne 40 :
---------
elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
---------

par : ( en changeant domaine.tld par tondomaine.com bien sur^^)
---------
elseif (!$class)
{
   # si pas spip_in|spip_glossaire
    if (strpos($lien, 'domaine.tld'))
      $class = "spip_out2";
else
      $class = "spip_out";
  }
---------
Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)

et en intervenant sur le traitement post_propre ? Je pense que cela
pourrait fonctionner aussi :

dans mes_options.php
$GLOBALS['spip_pipeline']['post_propre'] .= "|class_liens_spip";

et dans mes_fonctions.php
function class_liens_spip ($text) {
   return preg_replace('`href="http://www.domain.tld(.*)
class="spip_out"`Ui','href="http://www.domain.tld$1
class="spip_out2"',$text);
}

Peut-être qu'il faut affiner l'expression rationnelle mais cela devrait
marcher...

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

"bobof" Bonsoir,
ok c'est une solution, mais à la prochaine mise à jour comment ça va ce
passer ? dans /ecrire/inc/lien.php ? tu recode la fonction ?

cordialement

A défaut de mieux, malheureusement oui.

"Dominique"

et en intervenant sur le traitement post_propre ? Je pense que cela
pourrait fonctionner aussi :
dans mes_options.php
$GLOBALS['spip_pipeline']['post_propre'] .= "|class_liens_spip";

et dans mes_fonctions.php
function class_liens_spip ($text) {
  return preg_replace('`href="http://www.domain.tld(.*)
class="spip_out"`Ui','href="http://www.domain.tld$1
class="spip_out2"',$text);
}

Peut-être qu'il faut affiner l'expression rationnelle mais cela devrait
marcher...

Je ne connais pas tout ce qui est pipeline (je me suis posée mon spip y'a
quelques jours seulement) donc c'est effectivement mieux comme ca.
pour l'expression faut jouer avec $1 et $2 mais ca c'est pas un soucis.

Je vais regarder ca, merci :slight_smile:

Soph a écrit :

Je ne connais pas tout ce qui est pipeline (je me suis posée mon spip y'a quelques jours seulement) donc c'est effectivement mieux comme ca.
pour l'expression faut jouer avec $1 et $2 mais ca c'est pas un soucis.

sans passer par un pipeline (peut-être un peu lourd, puisque lancé
à chaque appel de la fonction propre()), et sans modifier (forker)
les scripts de spip on peut aussi surcharger
la fonction inc_lien_dist en posant dans mes_options.php :

   // quel(s) domaine(s) 'modificateur de classe css' ?
   define('_DOMAINE_EXT', 'domaine_ext.tld');

   // remplace la classe css 'spip_out' par 'spip_out2'
   // pour les liens vers le(s) domaine(s) '_DOMAINE_EXT'
   function inc_lien($lien, $texte, $class, $title,
                     $hlang, $rel, $connect) {
     if (preg_match(',('._DOMAINE_EXT.'),Ui', $lien)) {
       $class = 'spip_out2';
     }
     return inc_lien_dist($lien, $texte, $class, $title,
                          $hlang, $rel, $connect);
   }

- d'abord on crée une constante qui contiendra le
   nom de domaine que l'on veut voir traité différemment.
   ce faisant, on se laisse la possibilité de modifier
   la valeur qui lui est affectée.
   par exemple pour aussi donner la classe spip_out2 au
   domaine 'domaine_ext2.tld', on écrira :
     define('_DOMAINE_EXT', 'domaine_ext.tld|domaine_ext2.tld');

- puis on crée une surcharge de la fonction _dist en
   lui supprimant son suffixe _dist :
   . cette fonction cherche le(s) nom(s) de domaine défini(s) plus haut
     dans le lien qui lui est fourni (à la fonction) ;
   . puis, si elle trouve ce(s) nom(s) de domaine, affecte la valeur
     'spip_out2' à la classe css liée à ce lien ;
   . enfin elle appelle la fonction originale de spip
     inc_lien_dist en lui passant cette classe nouvellement
     renseignée.

bonsoir,
est-ce fonctionnel pour un sous domaine dans un raccourcis typo [-> http://mon_sous_domaine.mon_domaine.tld].......?
cordialement

denisb a écrit :

Soph a écrit :

Je ne connais pas tout ce qui est pipeline (je me suis posée mon spip y'a quelques jours seulement) donc c'est effectivement mieux comme ca.
pour l'expression faut jouer avec $1 et $2 mais ca c'est pas un soucis.

sans passer par un pipeline (peut-être un peu lourd, puisque lancé
à chaque appel de la fonction propre()), et sans modifier (forker)
les scripts de spip on peut aussi surcharger
la fonction inc_lien_dist en posant dans mes_options.php :

  // quel(s) domaine(s) 'modificateur de classe css' ?
  define('_DOMAINE_EXT', 'domaine_ext.tld');

  // remplace la classe css 'spip_out' par 'spip_out2'
  // pour les liens vers le(s) domaine(s) '_DOMAINE_EXT'
  function inc_lien($lien, $texte, $class, $title,
                    $hlang, $rel, $connect) {
    if (preg_match(',('._DOMAINE_EXT.'),Ui', $lien)) {
      $class = 'spip_out2';
    }
    return inc_lien_dist($lien, $texte, $class, $title,
                         $hlang, $rel, $connect);
  }

- d'abord on crée une constante qui contiendra le
  nom de domaine que l'on veut voir traité différemment.
  ce faisant, on se laisse la possibilité de modifier
  la valeur qui lui est affectée.
  par exemple pour aussi donner la classe spip_out2 au
  domaine 'domaine_ext2.tld', on écrira :
    define('_DOMAINE_EXT', 'domaine_ext.tld|domaine_ext2.tld');

- puis on crée une surcharge de la fonction _dist en
  lui supprimant son suffixe _dist :
  . cette fonction cherche le(s) nom(s) de domaine défini(s) plus haut
    dans le lien qui lui est fourni (à la fonction) ;
  . puis, si elle trouve ce(s) nom(s) de domaine, affecte la valeur
    'spip_out2' à la classe css liée à ce lien ;
  . enfin elle appelle la fonction originale de spip
    inc_lien_dist en lui passant cette classe nouvellement
    renseignée.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

--

Signalez vos spams d'un simple clic. www.signal-spam.fr <https://www.signal-spam.fr/&gt;

"denisb" a écrit :

on peut aussi surcharger la fonction inc_lien_dist en posant
dans mes_options.php :
puis on crée une surcharge de la fonction _dist en
lui supprimant son suffixe _dist :
enfin elle appelle la fonction originale de spip
inc_lien_dist en lui passant cette classe nouvellement
renseignée.

Merci 1000 fois :)))

bobof a écrit :

est-ce fonctionnel pour un sous domaine dans un raccourcis typo [-> http://mon_sous_domaine.mon_domaine.tld].......?

ben le preg_match est simplissime.

qu'il cherche 'mon_domaine.tld' ou 'mon_sous_domaine.mon_domaine.tld'
en fonction de ce qu'on a passé dans le define(), c'est kif kif

bobof a écrit :

Bonsoir,
ok c'est une solution, mais à la prochaine mise à jour comment ça va ce passer ? dans /ecrire/inc/lien.php ? tu recode la fonction ?

cordialement

si on fait une copie de /ecrire/inc/lien.php dans /squelettes/inc/lien.php, la modif ne sera pas écrasée, non ?
mais c'est vrai que la solution de denisb est plus propre et plus pérenne.

Soph a écrit :

Je rebondis sur ce message
Si la solution css est intéressante, elle présente le défaut de ne pas
marcher
sur pas mal de navigateurs.
La solution php m'intéresse aussi mais je ne parle pas cette langue.

Comment modifier /inc/lien.php (à mettre dans /squelettes, bien sur)
pour que les liens de type spip.php?page=machin internes au site n'aient
pas la class spip_out ?
      

Bah comme je l'avais dite :
dans inc/lien.php
il y as la fonction inc_lien_dist()

il suffit de remplacer à la ligne 40 :
---------
elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
---------

par : ( en changeant domaine.tld par tondomaine.com bien sur^^)
---------
elseif (!$class)
{
  # si pas spip_in|spip_glossaire
   if (strpos($lien, 'domaine.tld'))
     $class = "spip_out2";
else
     $class = "spip_out";
}
---------
Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)
    
(manquais la suite de mon message ^^)

Ainsi tout les liens qui ont pour url (sauf les internes avec spip_in)
aurons spip_out2 que tu peux ou non gérer dans le css
Chez moi spip est installé en sous domaine donc je voulais avoir une image
avec une couleur pour les liens externes au domaine, une couleur pour les
liens du domaine et une couleur pour les liens du même sous-domaine.

.texte a.spip_in{padding-left:12px;background:transparent url(spip_in.gif)
no-repeat left;}
a.spip_out{padding-left:12px;background:transparent url(spip_out.gif)
no-repeat left;}
a.spip_out2{padding-left:12px;background:transparent url(spip_out2.gif)
no-repeat left;}

( oui je préfère les images devant les liens ^^ )
le .texte devant le a.spip_in étant pour eviter qu'il mette une image en
dehors des articles.

denisb a écrit :

Soph a écrit :

Je ne connais pas tout ce qui est pipeline (je me suis posée mon spip y'a quelques jours seulement) donc c'est effectivement mieux comme ca.
pour l'expression faut jouer avec $1 et $2 mais ca c'est pas un soucis.

sans passer par un pipeline (peut-être un peu lourd, puisque lancé
à chaque appel de la fonction propre()), et sans modifier (forker)
les scripts de spip on peut aussi surcharger
la fonction inc_lien_dist en posant dans mes_options.php :

  // quel(s) domaine(s) 'modificateur de classe css' ?
  define('_DOMAINE_EXT', 'domaine_ext.tld');

  // remplace la classe css 'spip_out' par 'spip_out2'
  // pour les liens vers le(s) domaine(s) '_DOMAINE_EXT'
  function inc_lien($lien, $texte, $class, $title,
                    $hlang, $rel, $connect) {
    if (preg_match(',('._DOMAINE_EXT.'),Ui', $lien)) {
      $class = 'spip_out2';
    }
    return inc_lien_dist($lien, $texte, $class, $title,
                         $hlang, $rel, $connect);
  }

- d'abord on crée une constante qui contiendra le
  nom de domaine que l'on veut voir traité différemment.
  ce faisant, on se laisse la possibilité de modifier
  la valeur qui lui est affectée.
  par exemple pour aussi donner la classe spip_out2 au
  domaine 'domaine_ext2.tld', on écrira :
    define('_DOMAINE_EXT', 'domaine_ext.tld|domaine_ext2.tld');

- puis on crée une surcharge de la fonction _dist en
  lui supprimant son suffixe _dist :
  . cette fonction cherche le(s) nom(s) de domaine défini(s) plus haut
    dans le lien qui lui est fourni (à la fonction) ;
  . puis, si elle trouve ce(s) nom(s) de domaine, affecte la valeur
    'spip_out2' à la classe css liée à ce lien ;
  . enfin elle appelle la fonction originale de spip
    inc_lien_dist en lui passant cette classe nouvellement
    renseignée.

très intéressant, merci.
2 questions néanmoins :
- est-il possible de faire en sorte que ceci soit exportable, c'est à dire de remplacer domaine_ext.tld par #URL_SITE_SPIP ?
- si ce n'est pas possible et si l'adresse du site commence par http://mon_domaine.ltd/dossier/ que faut-il mettre à la place de domaine_ext.tld ?

et 1 remarque : c'est quand même bizarre que spip colle un spip_out aux url internes de type page.

Jean-Christophe Villeneuve a écrit :

- est-il possible de faire en sorte que ceci soit exportable, c'est à dire de remplacer domaine_ext.tld par #URL_SITE_SPIP ?

ben... #URL_SITE_SPIP c'est $GLOBALS['meta']['adresse_site']

donc on peut tout à fait faire :
   define('_DOMAINE_EXT', $GLOBALS['meta']['adresse_site']
);

- si ce n'est pas possible et si l'adresse du site commence par http://mon_domaine.ltd/dossier/ que faut-il mettre à la place de domaine_ext.tld ?

define('_DOMAINE_EXT', 'mon_domaine.ltd/dossier/'
);

denisb a écrit :

Jean-Christophe Villeneuve a écrit :

- est-il possible de faire en sorte que ceci soit exportable, c'est à dire de remplacer domaine_ext.tld par #URL_SITE_SPIP ?

ben... #URL_SITE_SPIP c'est $GLOBALS['meta']['adresse_site']

encore fallait-il le savoir ...

donc on peut tout à fait faire :
  define('_DOMAINE_EXT', $GLOBALS['meta']['adresse_site']
);

- si ce n'est pas possible et si l'adresse du site commence par http://mon_domaine.ltd/dossier/ que faut-il mettre à la place de domaine_ext.tld ?

define('_DOMAINE_EXT', 'mon_domaine.ltd/dossier/'
);

super
merci pour tout