Création de balise - vérification sur champ_sql - existence d'une valeur

Vincent Callies <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <CADbHwBBdostaOiFBtVKtDZHBRXt7aM13knSJOB4d+Nt0aH5ptg@mail.gmail.com>
Bonjour les écureuils,

J'ai un problème classique. Une table avec trois champs : le *prénom*, le *nom
d'usage* (ex:femme mariée) et le *nom de famille* (ex:nom de naissance).

J'ai créé une balise, appelée dans une boucle, pour faire ressortir *le nom
pertinent,* c'est à dire d'usage lorsqu'il existe, sinon du nom de famille.

J'ai deux rédactions, dans mon fichier *mon_plugin_fonctions.php* dont la
seconde fonctionne, mais pas la première, et je ne comprends pas pourquoi.
Quelqu'un pourrait-il m'expliquer pourquoi la première rédaction - plus
simple - ne donne pas satisfaction ?

Première rédaction dysfonctionnelle : Que le nom d'usage soit indiqué dans
la table ou non, le nom est considéré comme existant.

function balise_LE_NOM ($p) {
$_nom = (champ_sql('nom_usage', $p)) ? champ_sql('nom_usage', $p) :
champ_sql('nom_famille', $p) ;
$p->code = "$_nom";
return $p;
}

Seconde rédaction opérationnelle :

function balise_LE_NOM ($p) {
// chopper les valeurs des champ sql dans la boucle
$_nom_usage = champ_sql('nom_usage', $p) ;
$_nom_famille = champ_sql('nom_famille', $p) ;
$_nom = "(strlen($_nom_usage))
? $_nom_usage
: $_nom_famille";
$p->code = "$_nom";
return $p;
}

Merci par avance pour vos lumières. Et accessoirement dois-je protéger
l'écriture de sortie d'un nom qui serait avec une apostrophe ou un
caractère spécial ou bien SPIP fait cela tout seul ?

Thrax
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.