Coucou,
quelques astuces pour les auteurs (page en préparation pour la doc sur uZine:
cf. http://www.uzine.net/ecrire/articles.php3?id_article=1149)
- Je me suis créé des rédacteurs dont la seule fonction est d'intervenir sur
des articles, sans jamais en être "auteurs" dans la partie publique (notion
de "secrétaire de rédaction") : si le nom d'un auteur commence par '@',
celui-ci ne s'affiche plus dans les boucles AUTEURS, reprogrammées avec un
judicieux {nom==^[^@]} ; gros avantage sur un site de presse : le secrétaire
de rédaction ne risque pas d'apparaître par mégarde comme l'auteur de
l'éditorial.
exemple de boucle AUTEURS prenant en compte les "secrétaires de rédaction" :
<BOUCLE_AF(AUTEURS){id_article}{par nom}{nom==^[^@]}{", "}>#NOM</BOUCLE_AF>
- Les auteurs d'articles sont nommés "à l'envers", histoire de pouvoir être
classés dans l'ordre alphabétique : 'Bush_George W.' et 'Clinton_William'.
Du coup il faut rétablir l'ordre prénom-nom au moment de l'affichage. Pour
cela un simple filtre dans mes_fonctions.php3 :
// inverse le Nom_Prenom : "Borges_Jorge Luis" -> "Jorge Luis Borges"
function prenom_nom($blaze) {
return ereg_replace("(.*)_(.*)","\\2 \\1",$blaze);
}
et, dans les squelettes :
<BOUCLE_AF(AUTEURS){id_article}{par nom}{nom==^[^@]}{", "}>[(#NOM|prenom_nom)</BOUCLE_AF>
- Pour pouvoir afficher "par George W. Bush, William Clinton, et Anthony
Blair" j'ai besoin d'une autre fonction, qui celle-là doit figurer DANS LE
SQUELETTE, puisqu'elle s'exécutera au moment de la lecture du fichier cache
(à chaque requête, donc). On passera les noms dans une variable php qui sera
ensuite moulinée par une fonction auteur_et_auteur(). Il faut donc utiliser
addslashes et stripslashes de manière à ne pas avoir de bug si un nom
d'auteur contient un guillemet '"' (sait-on jamais...)
D'où le bout de squelette final :
.../...
<?
// auteur et auteur
function auteur_et_auteur($tous) {
return ereg_replace(", ([^,]*)$"," et \\1",$tous);
}
$tous_auteurs = stripslashes('<BOUCLE_AF(AUTEURS){id_article}{par nom}{nom==^[^@]}{", "}>[(#NOM|prenom_nom|addslashes)</BOUCLE_AF>');
if ($tous_auteurs) echo "par ".$tous_auteurs;
?>
.../...
<<<<<<<<<<<<<<<<
-- Fil