From 6b8b3b2d20c09f8d2be368eeea06e8df7609fda7 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sun, 20 Aug 2006 13:32:13 +0000 Subject: [PATCH] on remballe les choses bizarres necessaires pour faire de #LESAUTEURS un vrai modele -- c'est plus simple quand c'est moins complique --- dist/modeles/lesauteurs.html | 10 ++-------- ecrire/public/assembler.php | 2 +- ecrire/public/balises.php | 31 +++++++++++++++++++++++++++++-- ecrire/public/references.php | 7 ++++--- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/dist/modeles/lesauteurs.html b/dist/modeles/lesauteurs.html index 0b30ac901f..b65703f9ad 100644 --- a/dist/modeles/lesauteurs.html +++ b/dist/modeles/lesauteurs.html @@ -1,13 +1,7 @@ [(#REM) - Modele pour #LESAUTEURS : - * s'il s'agit d'un article normal, on boucle sur les auteurs de l'article - * s'il s'agit d'un article syndique, on affiche la valeur du champ, - passee dans #ENV par le compilo, en la securisant avec safehtml. - + Modele pour la balise # LESAUTEURS, dans le cas des auteurs d'un article + (pour un article syndique, la balise affiche directement la valeur du champ) ] - <BOUCLE_auteurs(AUTEURS) {id_article} {par nom} {", "}> <a href="#URL_AUTEUR">#NOM</a></BOUCLE_auteurs> - -[(#ID_SYNDIC_ARTICLE|?{#ENV**{lesauteurs}|safehtml})] diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index 801b3a1882..97889707bb 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -447,7 +447,7 @@ function inclure_modele($squelette, $type, $id) { if ($class) $contexte['class'] = $class; -#print_r($contexte); + // Traiter les parametres // par exemple : <img1|center>, <emb12|autostart=true> ou <doc1|lang=en> $contexte = array_merge($contexte, diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index 0287efc270..0e812b7bb1 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -423,8 +423,7 @@ function balise_EXPOSE_dist($p) { return calculer_balise_expose($p, $on, $off); } -// obsolete. utiliser la precedente - +// #EXPOSER est obsolete. utiliser #EXPOSE ci-dessus // http://doc.spip.org/@balise_EXPOSER_dist function balise_EXPOSER_dist($p) { @@ -536,6 +535,34 @@ function balise_LANG_dist ($p) { return $p; } + +// #LESAUTEURS +// les auteurs d'un article (ou d'un article syndique) +// http://www.spip.net/fr_article902.html +// http://www.spip.net/fr_article911.html +// http://doc.spip.org/@balise_LESAUTEURS_dist +function balise_LESAUTEURS_dist ($p) { + // Cherche le champ 'lesauteurs' dans la pile + $_lesauteurs = champ_sql('lesauteurs', $p); + + // Si le champ n'existe pas (cas de spip_articles), on applique + // le modele lesauteurs.html en passant id_article dans le contexte; + // dans le cas contraire on prend le champ 'lesauteurs' (cas de + // spip_syndic_articles) + if ($_lesauteurs AND $_lesauteurs != '$Pile[0][\'lesauteurs\']') { + $p->code = "safehtml($_lesauteurs)"; + // $p->interdire_scripts = true; + } else { + $p->code = "recuperer_fond( + 'modeles/lesauteurs', + array('id_article' => ".champ_sql('id_article', $p)."))"; + $p->interdire_scripts = false; // securite apposee par recuperer_fond() + } + + return $p; +} + + // #RANG // affiche le "numero de l'article" quand on l'a titre '1. Premier article'; // ceci est transitoire afin de preparer une migration vers un vrai systeme de diff --git a/ecrire/public/references.php b/ecrire/public/references.php index ffc347f2f2..5b1295a7f0 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -253,7 +253,7 @@ function calculer_balise($nom, $p) { // fonction speciale d'appel a un modele modeles/truc.html pour la balise #TRUC -// exemples : #LESAUTEURS, #TRADUCTIONS, #DOC, #IMG... +// exemples : #TRADUCTIONS, #DOC, #IMG... // http://doc.spip.org/@calculer_balise_modele_dist function calculer_balise_modele_dist($p){ $nom = strtolower($p->nom_champ); @@ -271,8 +271,9 @@ function calculer_balise_modele_dist($p){ $code_contexte = argumenter_inclure($champ, $p->descr, $p->boucles, $p->id_boucle, false); // Si le champ existe dans la pile, on le met dans le contexte - // (exemple : #LESAUTEURS dans spip_syndic_articles) - $code_contexte[] = "'$nom='.".champ_sql($nom, $p); + // (a priori c'est du code mort ; il servait pour #LESAUTEURS dans + // le cas spip_syndic_articles) + #$code_contexte[] = "'$nom='.".champ_sql($nom, $p); // Reserver la cle primaire de la boucle courante if ($primary = $p->boucles[$p->id_boucle]->primary) { -- GitLab