From 5d05165a76a4abebf088dc86388612bf5bc55801 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sat, 21 Oct 2006 10:08:50 +0000
Subject: [PATCH] attention aux champs extra; desormais les fonctions qui
 creent le formulaire extra ou la liste des champs enregistres ne font plus
 echo eux-memes (a reporter dans les plugins) + il y avait un bug dans
 editer_rubriques, car ['champs_extra'] c'est la config des champs, pas les
 donnees envoyees par le redacteur

---
 ecrire/action/editer_rubrique.php |  6 +++---
 ecrire/exec/articles.php          |  2 +-
 ecrire/exec/articles_ortho.php    |  2 +-
 ecrire/exec/articles_versions.php |  2 +-
 ecrire/exec/breves_edit.php       |  2 +-
 ecrire/exec/breves_voir.php       |  2 +-
 ecrire/exec/mots_edit.php         |  2 +-
 ecrire/exec/naviguer.php          |  2 +-
 ecrire/exec/rubriques_edit.php    |  2 +-
 ecrire/exec/sites.php             |  2 +-
 ecrire/exec/sites_edit.php        |  6 +++---
 ecrire/inc/editer_article.php     |  2 +-
 ecrire/inc/extra.php              | 23 +++++++++--------------
 ecrire/inc/legender_auteur.php    |  4 ++--
 14 files changed, 27 insertions(+), 32 deletions(-)

diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php
index 2a86eb745b..1e88566453 100644
--- a/ecrire/action/editer_rubrique.php
+++ b/ecrire/action/editer_rubrique.php
@@ -101,9 +101,9 @@ function enregistre_modifier_naviguer($id_rubrique, $id_parent, $titre, $texte,
 
 	if ($id_parent == $id_rubrique) $parent = ''; // au fou
 
-	if (_request('champs_extra')) {
-			include_spip('inc/extra');
-			$extra = extra_recup_saisie("rubriques");
+	if ($GLOBALS['champs_extra']) {
+		include_spip('inc/extra');
+		$extra = extra_recup_saisie("rubriques");
 	}
 	else $extra = '';
 
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 0f7d727627..45e991d84a 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -401,7 +401,7 @@ function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
 		
 		if ($champs_extra AND $extra) {
 			include_spip('inc/extra');
-			$res .= extra_affichage($extra, "articles", true);
+			$res .= extra_affichage($extra, "articles");
 		}
 	}
 	return $res;
diff --git a/ecrire/exec/articles_ortho.php b/ecrire/exec/articles_ortho.php
index 789ab9c773..0c4f9131d2 100644
--- a/ecrire/exec/articles_ortho.php
+++ b/ecrire/exec/articles_ortho.php
@@ -282,7 +282,7 @@ else {
 
 	if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "articles");
+		echo extra_affichage($extra, "articles");
 	}
 }
 
diff --git a/ecrire/exec/articles_versions.php b/ecrire/exec/articles_versions.php
index dc0e107202..7d14d461c2 100644
--- a/ecrire/exec/articles_versions.php
+++ b/ecrire/exec/articles_versions.php
@@ -319,7 +319,7 @@ if ($id_version) {
 	
 		if ($champs_extra AND $extra) {
 			include_spip('inc/extra');
-			extra_affichage($extra, "articles");
+			echo extra_affichage($extra, "articles");
 		}
 	}
 }
diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index 93bc08c992..17d82dd05a 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -167,7 +167,7 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") {
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		extra_saisie($extra, 'breves', $id_rubrique);
+		echo extra_saisie($extra, 'breves', $id_rubrique);
 	}
 
 	if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique)) {
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 23125f4a20..99139a75d3 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -183,7 +183,7 @@ function afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_gr
 	// afficher les extra
 	if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "breves");
+		echo extra_affichage($extra, "breves");
 	}
 
 	if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
diff --git a/ecrire/exec/mots_edit.php b/ecrire/exec/mots_edit.php
index b85cb3612b..9afdaac7b2 100644
--- a/ecrire/exec/mots_edit.php
+++ b/ecrire/exec/mots_edit.php
@@ -263,7 +263,7 @@ if (acces_mots()){
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		extra_saisie($extra, 'mots', $id_groupe);
+		echo extra_saisie($extra, 'mots', $id_groupe);
 	}
 
 	echo "<DIV align='right'><input type='submit' NAME='Valider' VALUE='"._T('bouton_enregistrer')."' CLASS='fondo'></div>";
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index 06646cadb6..4016ecbfaa 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -92,7 +92,7 @@ function exec_naviguer_dist()
 
 	  if ($extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "rubriques");
+		echo extra_affichage($extra, "rubriques");
 	  }
 
 /// Mots-cles
diff --git a/ecrire/exec/rubriques_edit.php b/ecrire/exec/rubriques_edit.php
index 66c0185bb2..2106f5a0ac 100644
--- a/ecrire/exec/rubriques_edit.php
+++ b/ecrire/exec/rubriques_edit.php
@@ -148,7 +148,7 @@ function exec_rubriques_edit_dist()
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		extra_saisie($extra, 'rubriques', $id_secteur);
+		$form .= extra_saisie($extra, 'rubriques', $id_secteur);
 	}
 
 	$form .= "<input type='hidden' name='new' value='"
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index b83ee9faf5..21c66ac27b 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -506,7 +506,7 @@ else if (preg_match(',^select: (.*),', trim($url_syndic), $regs)) {
 
 if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "sites");
+		echo extra_affichage($extra, "sites");
 	}
 
 fin_cadre_relief();
diff --git a/ecrire/exec/sites_edit.php b/ecrire/exec/sites_edit.php
index c075e0a44b..3cbb14a877 100644
--- a/ecrire/exec/sites_edit.php
+++ b/ecrire/exec/sites_edit.php
@@ -189,9 +189,9 @@ else {
 
 
 if ($champs_extra) {
-		include_spip('inc/extra');
-		extra_saisie($extra, 'sites', intval($id_secteur));
-	}
+	include_spip('inc/extra');
+	echo extra_saisie($extra, 'sites', intval($id_secteur));
+}
 
 
 echo "\n<div ALIGN='right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_enregistrer')."' CLASS='fondo'></div>";
diff --git a/ecrire/inc/editer_article.php b/ecrire/inc/editer_article.php
index a92ff910f6..3db5005266 100644
--- a/ecrire/inc/editer_article.php
+++ b/ecrire/inc/editer_article.php
@@ -141,7 +141,7 @@ function inc_editer_article($row, $lier_trad, $new, $champs_article) {
 		 ("\n<p><b>" . _T('info_post_scriptum') ."</b><br />" . "<textarea name='ps' class='forml' rows='5' cols='40' wrap=soft>" . $ps . "</textarea></p><p>\n") :
 		 '') .
 
-		(!$champs_extra ? '': extra_saisie($extra, 'articles', $id_secteur, false)) .
+		(!$champs_extra ? '': extra_saisie($extra, 'articles', $id_secteur)) .
 
 		"<div align='right'><input class='fondo' type='submit' value='" . _T('bouton_enregistrer') . "' /></div>";
 
diff --git a/ecrire/inc/extra.php b/ecrire/inc/extra.php
index 50dbdc4269..02bf4dbe40 100644
--- a/ecrire/inc/extra.php
+++ b/ecrire/inc/extra.php
@@ -88,15 +88,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 // a partir de la liste des champs, generer la liste des input
 // http://doc.spip.org/@extra_saisie
-function extra_saisie($extra, $type, $ensemble='', $aff=true) {
+function extra_saisie($extra, $type, $ensemble='') {
 	if ($affiche = extra_form($extra, $type, $ensemble)) {
-	  if ($aff) {
-		debut_cadre_enfonce();
-		echo $affiche;
-		fin_cadre_enfonce();
-	  } else {
-	    return debut_cadre_enfonce('',true) . $affiche . fin_cadre_enfonce(true);
-	  }
+		return debut_cadre_enfonce('',true)
+			. $affiche
+			. fin_cadre_enfonce(true);
 	}
 }
 
@@ -322,7 +318,7 @@ function extra_champ_valide($type, $nom_champ) {
 
 // a partir de la liste des champs, generer l'affichage
 // http://doc.spip.org/@extra_affichage
-function extra_affichage($extra, $type, $return=false) {
+function extra_affichage($extra, $type) {
 	$extra = unserialize ($extra);
 	if (!is_array($extra)) return;
 	$champs = $GLOBALS['champs_extra'][$type];
@@ -361,11 +357,10 @@ function extra_affichage($extra, $type, $return=false) {
 			.interdire_scripts($contenu)."<br /></div>\n";
 	}
 
-	if ($affiche) {
-		$affiche = debut_cadre_enfonce('',true) . $affiche . fin_cadre_enfonce(true);
-		if ($return) return $affiche; else echo $affiche;
-	}
-
+	if ($affiche)
+		return debut_cadre_enfonce('',true)
+			. $affiche
+			. fin_cadre_enfonce(true);
 }
 
 ?>
diff --git a/ecrire/inc/legender_auteur.php b/ecrire/inc/legender_auteur.php
index f414786bc8..c0d5d0e92d 100644
--- a/ecrire/inc/legender_auteur.php
+++ b/ecrire/inc/legender_auteur.php
@@ -110,7 +110,7 @@ function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		$corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut'],'', false);
+		$corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut']);
 	}
 
 //
@@ -276,7 +276,7 @@ function legender_auteur_voir($auteur, $redirect)
 
 	if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		$res .= extra_affichage($extra, "auteurs", true);
+		$res .= extra_affichage($extra, "auteurs");
 	}
 
 	return $res;
-- 
GitLab