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