From 08b8b500d1a6d6ec42c5fa04702b57c72d8d18d0 Mon Sep 17 00:00:00 2001
From: kent1 <kent1@arscenic.info>
Date: Wed, 23 Jan 2013 15:36:47 +0000
Subject: [PATCH] Report de r20116 :
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Permettre à la balise #LESAUTEURS d'être multi objet, si on est dans une boucle, on va chercher le type de la boucle pour savoir quel est le type d'objet et l'id_truc de la table que l'on passe en objet / id_objet au modèle.
---
 ecrire/public/balises.php | 37 ++++++++++++++++++++++++++++---------
 1 file changed, 28 insertions(+), 9 deletions(-)

diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index 8c40bbd583..d7f4cfb163 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -440,11 +440,22 @@ 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
+/**
+ * #LESAUTEURS
+ * affiche la liste des auteurs d'un objet
+ * soit le champs lesauteurs existe dans la table et à ce moment là, retourne son contenu
+ * soit la balise appelle le modele lesauteurs.html en lui passant le couple
+ * objet/id_objet dans son environnement
+ * 
+ * http://www.spip.net/fr_article902.html
+ * http://www.spip.net/fr_article911.html
+ * http://doc.spip.org/@balise_LESAUTEURS_dist
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+ */
 function balise_LESAUTEURS_dist ($p) {
 	// Cherche le champ 'lesauteurs' dans la pile
 	$_lesauteurs = champ_sql('lesauteurs', $p, false);
@@ -458,13 +469,21 @@ function balise_LESAUTEURS_dist ($p) {
 		$p->code = "safehtml($_lesauteurs)";
 		// $p->interdire_scripts = true;
 	} else {
-		$connect = !$p->id_boucle ? ''
-		  : $p->boucles[$p->id_boucle]->sql_serveur;
-
+		if(!$p->id_boucle){
+			$connect = '';
+			$objet = 'article';
+			$id_table_objet = 'id_article';
+		}
+		else{
+			$connect = $p->boucles[$p->id_boucle]->sql_serveur;
+			$type_boucle = $p->boucles[$p->id_boucle]->type_requete;
+			$objet = objet_type($type_boucle);
+			$id_table_objet = id_table_objet($type_boucle);
+		}
 		$c = memoriser_contexte_compil($p);
 
 		$p->code = sprintf(CODE_RECUPERER_FOND, "'modeles/lesauteurs'",
-				   "array('id_article' => ".champ_sql('id_article', $p) .")",
+				   "array('objet'=>'".$objet."','id_objet' => ".champ_sql($id_table_objet, $p) .")",
 				   "'trim'=>true, 'compil'=>array($c)",
 				   _q($connect));
 		$p->interdire_scripts = false; // securite apposee par recuperer_fond()
-- 
GitLab