From 0d4dea6fdcb94e6a31e1f29dd661d5af800848fe Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sat, 3 May 2008 21:56:25 +0000
Subject: [PATCH] #FORMULAIRE_EDITER_SITE, et unification de la verification
 des formulaires_editer_ article, rubrique, breve

---
 dist/formulaires/editer_article/verifier.php  | 15 +------------
 dist/formulaires/editer_breve/verifier.php    | 17 ++-------------
 dist/formulaires/editer_rubrique/verifier.php | 15 +------------
 ecrire/action/editer_site.php                 | 21 +++++++++++--------
 ecrire/exec/sites_edit.php                    | 16 ++++++++++++--
 ecrire/inc/editer.php                         | 19 +++++++++++++++++
 6 files changed, 49 insertions(+), 54 deletions(-)

diff --git a/dist/formulaires/editer_article/verifier.php b/dist/formulaires/editer_article/verifier.php
index 1738c7a539..7c6759828f 100644
--- a/dist/formulaires/editer_article/verifier.php
+++ b/dist/formulaires/editer_article/verifier.php
@@ -17,20 +17,7 @@ include_spip('inc/editer');
 
 function formulaires_editer_article_verifier_dist($id_article='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='articles_edit_config', $row=array(), $hidden=''){
 
-	$erreurs = array();
-	if (intval($id_article)) {
-		$conflits = controler_contenu('article',$id_article);
-		if (count($conflits)) {
-			foreach($conflits as $champ=>$conflit){
-				$erreurs[$champ] .= _L("ATTENTION : Ce champ a &eacute;t&eacute; modifi&eacute; par ailleurs. La valeur actuelle est :<br /><textarea readonly='readonly' class='forml'>".$conflit['base']."</textarea>");
-			}
-		}
-	}
-	foreach(array('titre') as $obli){
-		if (!_request($obli))
-			$erreurs[$obli] .= _L("Cette information est obligatoire");;
-	}
-
+	$erreurs = formulaires_editer_objet_verifier('article',$id_article,array('titre'));
 	return $erreurs;
 }
 
diff --git a/dist/formulaires/editer_breve/verifier.php b/dist/formulaires/editer_breve/verifier.php
index a5a2cc2825..d24d6b4912 100644
--- a/dist/formulaires/editer_breve/verifier.php
+++ b/dist/formulaires/editer_breve/verifier.php
@@ -16,21 +16,8 @@ include_spip('inc/actions');
 include_spip('inc/editer');
 
 function formulaires_editer_breve_verifier_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){
-
-	$erreurs = array();
-	if (intval($id_breve)) {
-		$conflits = controler_contenu('breve',$id_breve);
-		if (count($conflits)) {
-			foreach($conflits as $champ=>$conflit){
-				$erreurs[$champ] .= _L("ATTENTION : Ce champ a &eacute;t&eacute; modifi&eacute; par ailleurs. La valeur actuelle est :<br /><textarea readonly='readonly' class='forml'>".$conflit['base']."</textarea>");
-			}
-		}
-	}
-	foreach(array('titre') as $obli){
-		if (!_request($obli))
-			$erreurs[$obli] .= _L("Cette information est obligatoire");;
-	}
-
+	
+	$erreurs = formulaires_editer_objet_verifier('breve',$id_breve,array('titre'));
 	return $erreurs;
 }
 
diff --git a/dist/formulaires/editer_rubrique/verifier.php b/dist/formulaires/editer_rubrique/verifier.php
index b21fef9aa3..ac07693451 100644
--- a/dist/formulaires/editer_rubrique/verifier.php
+++ b/dist/formulaires/editer_rubrique/verifier.php
@@ -17,20 +17,7 @@ include_spip('inc/editer');
 
 function formulaires_editer_rubrique_verifier_dist($id_rubrique='new', $id_parent=0, $lier_trad=0, $retour='', $config_fonc='rubriques_edit_config', $row=array(), $hidden=''){
 
-	$erreurs = array();
-	if (intval($id_article)) {
-		$conflits = controler_contenu('rubrique',$id_rubrique);
-		if (count($conflits)) {
-			foreach($conflits as $champ=>$conflit){
-				$erreurs[$champ] .= _L("ATTENTION : Ce champ a &eacute;t&eacute; modifi&eacute; par ailleurs. La valeur actuelle est :<br /><textarea readonly='readonly' class='forml'>".$conflit['base']."</textarea>");
-			}
-		}
-	}
-	foreach(array('titre') as $obli){
-		if (!_request($obli))
-			$erreurs[$obli] .= _L("Cette information est obligatoire");;
-	}
-
+	$erreurs = formulaires_editer_objet_verifier('rubrique',$id_rubrique,array('titre'));
 	return $erreurs;
 }
 
diff --git a/ecrire/action/editer_site.php b/ecrire/action/editer_site.php
index 80219f17b8..4660ecfa99 100644
--- a/ecrire/action/editer_site.php
+++ b/ecrire/action/editer_site.php
@@ -49,9 +49,8 @@ function action_editer_site_dist() {
 			$id_syndic = insert_syndic(_request('id_parent'));
 			revisions_sites($id_syndic);
 		} else {
-			redirige_par_entete(
-				generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&')
-			);
+			include_spip('inc/headers');
+			return array(0,redirige_formulaire(generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&')));
 		}
 	}
 	// Envoi depuis le formulaire d'analyse automatique d'un site
@@ -67,10 +66,10 @@ function action_editer_site_dist() {
 				@rename($auto['logo'],
 				_DIR_IMG . 'siteon'.$id_syndic.'.'.$auto['format_logo']);
 		}
-		else
-			redirige_par_entete(
-				generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&')
-			);
+		else{
+			include_spip('inc/headers');
+			return array(0,redirige_formulaire(generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&')));
+		}
 	}
 	// Erreur
 	else {
@@ -113,10 +112,14 @@ function action_editer_site_dist() {
 		// (i.e. appeler la fct suivante avec gestion du verrou)
 		cron(0, array('syndic' => -91));
 	}
-	// Rediriger le navigateur
+	if (_request('redirect')) {
 	$redirect = parametre_url(urldecode(_request('redirect')),
 		'id_syndic', $id_syndic, '&');
-	redirige_par_entete($redirect);
+		include_spip('inc/headers');
+		redirige_par_entete($redirect);
+	}
+	else 
+		return array($id_syndic,'');
 }
 
 // Cette fonction redefinit la tache standard de syndication
diff --git a/ecrire/exec/sites_edit.php b/ecrire/exec/sites_edit.php
index e7533d9f29..5b55d8f246 100644
--- a/ecrire/exec/sites_edit.php
+++ b/ecrire/exec/sites_edit.php
@@ -74,6 +74,18 @@ function exec_sites_edit_dist()
 	echo debut_droite('', true);
 	echo debut_cadre_formulaire("", true);
 
+	$contexte = array(
+	'icone_retour'=>$new=='oui'?'':icone_inline(_T('icone_retour'), generer_url_ecrire("sites","id_syndic=$id_syndic"), "site-24.gif", "rien.gif",$GLOBALS['spip_lang_right']),
+	'redirect'=>generer_url_ecrire("sites"),
+	'titre'=>$nom_site,
+	'new'=>$new == "oui"?$new:$id_syndic,
+	'id_rubrique'=>$id_rubrique,
+	'config_fonc'=>'sites_edit_config'
+	);
+	$page = evaluer_fond("prive/editer/site", $contexte, $connect);
+	echo $page['texte'];
+
+/*
 	if ($new != 'oui') {
 		echo icone_inline(_T('icone_retour'), generer_url_ecrire("sites","id_syndic=$id_syndic"), 'site-24.gif', "rien.gif", $spip_lang_right);
 	}
@@ -213,8 +225,8 @@ function exec_sites_edit_dist()
 				      generer_url_ecrire('sites'),
 				      $form,
 				      " method='post'"
-				      );
-	
+				      );*/
+
 	echo fin_cadre_formulaire(true);
 	
 	echo pipeline('affiche_milieu',array('args'=>array('exec'=>'sites_edit','id_syndic'=>$id_syndic),'data'=>''));
diff --git a/ecrire/inc/editer.php b/ecrire/inc/editer.php
index 00472eb3a1..4704144ce4 100644
--- a/ecrire/inc/editer.php
+++ b/ecrire/inc/editer.php
@@ -29,6 +29,23 @@ function formulaires_editer_objet_traiter($type, $id='new', $id_parent=0, $lier_
 	return $message;
 }
 
+function formulaires_editer_objet_verifier($type,$id='new', $oblis = array()){
+	$erreurs = array();
+	if (intval($id)) {
+		$conflits = controler_contenu($type,$id);
+		if (count($conflits)) {
+			foreach($conflits as $champ=>$conflit){
+				$erreurs[$champ] .= _L("ATTENTION : Ce champ a &eacute;t&eacute; modifi&eacute; par ailleurs. La valeur actuelle est :<br /><textarea readonly='readonly' class='forml'>".$conflit['base']."</textarea>");
+			}
+		}
+	}
+	foreach($oblis as $obli){
+		if (!_request($obli))
+			$erreurs[$obli] .= _L("Cette information est obligatoire");;
+	}
+	return $erreurs;
+}
+
 // http://doc.spip.org/@formulaires_editer_objet_charger
 function formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_trad=0, $retour='', $config_fonc='articles_edit_config', $row=array(), $hidden=''){
 	$table_objet = table_objet($type);
@@ -50,8 +67,10 @@ function formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_
 	// Gaffe: sans ceci, on ecrase systematiquement l'article d'origine
 	// (et donc: pas de lien de traduction)
 	$id = ($new OR $lier_trad) ? 'oui' : $row[$id_table_objet];
+	
 
 	$contexte = $row;
+	$contexte['new'] = $id;
 	$contexte['config'] = $config = $config_fonc($row);
 	$att_text = " class='formo' "
 	. $GLOBALS['browser_caret']
-- 
GitLab