Affichage nom prénom inversé

En partant d'une boucle auteur, est ce qu'il est possible de sélectionner le nom puis le prénom d'un auteur et d'inverser l'ordre a l'affichage

CoMme cela je pourrais entrer le nom et le prénom d'un auteur, garder ce classement alphabétique tout en affichant prénom+nom

J'imagine qu'il faut utiliser regex mais je n'y connais pas grand chose :slight_smile:
---- gilles klein ----

Le 28 mars 09 à 04:10, gk a écrit :

En partant d'une boucle auteur, est ce qu'il est possible de sélectionner le nom puis le prénom d'un auteur et d'inverser l'ordre a l'affichage

CoMme cela je pourrais entrer le nom et le prénom d'un auteur, garder ce classement alphabétique tout en affichant prénom+nom

Claude

J'imagine qu'il faut utiliser regex mais je n'y connais pas grand chose :slight_smile:
---- gilles klein ----

dlatr a écrit :

Le 28 mars 09 à 04:10, gk a écrit :

En partant d'une boucle auteur, est ce qu'il est possible de sélectionner le nom puis le prénom d'un auteur et d'inverser l'ordre a l'affichage

Filtre swap - SPIP-Contrib

si on choisit de séparer le nom du prénom par une virgule lors de la création/modification de l'auteur, on peut alors, dans la boucle AUTEURS, récupérer chaque élément avec :

[prénom : (#NOM|match{(.+?),(.+?), U, 2}|?{
   [<br>nom : (#NOM|match{(.+?),(.+?), U, 1})]
,
   #NOM
})]

denisb a écrit :

[prénom : (#NOM|match{(.+?),(.+?), U, 2}|?{

hum...
plutôt :

   [(#NOM|match{'^(.+?),(.+?)$'}|?{
     [prénom : (#NOM|match{'(.+?),(.+?)', U, 2})]
     [<br>nom : (#NOM|match{'(.+?),(.+?)', U, 1})]
   ,
     #NOM
   })]

(voilà)

denisb a écrit :

dlatr a écrit :

Le 28 mars 09 à 04:10, gk a écrit :

En partant d'une boucle auteur, est ce qu'il est possible de
sélectionner le nom puis le prénom d'un auteur et d'inverser l'ordre
a l'affichage

Filtre swap - SPIP-Contrib

si on choisit de séparer le nom du prénom par une virgule lors de la
création/modification de l'auteur, on peut alors, dans la boucle
AUTEURS, récupérer chaque élément avec :

[prénom : (#NOM|match{(.+?),(.+?), U, 2}|?{
  [<br>nom : (#NOM|match{(.+?),(.+?), U, 1})]
,
  #NOM
})]

Ce que le filtre swap peut faire d'autres filtres peuvent le faire:

Par exemple [(NOM|prénom)] ou [(#NOM|nom)]

Dans mes_fonctions.php:

// Filtre swap (Nom, Prénom -> Prénom Nom)
  function swap($texte){
    $pieces=explode(",",$texte);
    if(count($pieces)==2){
      $return=$pieces[1]." ".$pieces[0];
    }
    else $return=$texte;
    return $return;
  }
  
// Filtre nom
  function nom($texte){
    $pieces=explode(",",$texte);
    if(count($pieces)==2){
      $return=$pieces[0];
    }
    else $return=$texte;
    return $return;
  }
  
// Filtre prenom
  function prenom($texte){
    $pieces=explode(",",$texte);
    if(count($pieces)==2){
      $return=$pieces[1];
    }
    else $return=$texte;
    return $return;
  }

FDM