diff --git a/.gitattributes b/.gitattributes
index 4cf43d0438c2fbc87acf173c8b2481ac790f9ae0..fb3d7ddf6b84495e11a9d1016c0d769d73871891 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -247,8 +247,11 @@ ecrire/img_pack/warning-24.gif -text
 ecrire/img_pack/warning.gif -text
 ecrire/img_pack/xml.gif -text
 ecrire/inc_ajax.php3 -text
+ecrire/inc_articles.php -text
 ecrire/inc_barre.php3 -text
+ecrire/inc_breves.php -text
 ecrire/inc_mini_nav.php -text
+ecrire/inc_naviguer.php -text
 ecrire/lang/ecrire_ru.php3 -text
 ecrire/lang/public_ru.php3 -text
 ecrire/lang/spip_ru.php3 -text
diff --git a/ecrire/articles.php3 b/ecrire/articles.php3
index e552d799d29eb6eb2167d215bc0a64d0df939c29..06dfc196c0f7f1ca80d3c69248cd9897af1e0bfc 100644
--- a/ecrire/articles.php3
+++ b/ecrire/articles.php3
@@ -18,6 +18,8 @@ include_ecrire ("inc_date.php3");
 include_ecrire ("inc_documents.php3");
 include_ecrire ("inc_forum.php3");
 include_ecrire ("inc_abstract_sql.php3");
+$f = find_in_path("inc_articles.php");
+include($f ? $f : (_DIR_INCLUDE . "inc_articles.php"));
 
 $articles_surtitre = lire_meta("articles_surtitre");
 $articles_soustitre = lire_meta("articles_soustitre");
@@ -120,11 +122,6 @@ if ($statut_nouv) {
 	}
 }
 
-// 'publie' => reindexer
-if ($ok_nouveau_statut AND $statut_nouv == 'publie' AND $statut_nouv != $statut_ancien AND (lire_meta('activer_moteur') == 'oui')) {
-	include_ecrire ("inc_index.php3");
-	marquer_indexer('article', $id_article);
-}
 
 // 'dŽpublie' => invalider les caches
 if ($ok_nouveau_statut AND $statut_ancien == 'publie' AND $statut_nouv != $statut_ancien AND $invalider_caches) {
@@ -259,18 +256,6 @@ if ($titre && !$ajout_forum && $flag_editable) {
 	$result = spip_query($query);
 	calculer_rubriques();
 
-	// invalider et reindexer
-	if ($statut_article == 'publie') {
-		if ($invalider_caches) {
-			include_ecrire ("inc_invalideur.php3");
-			suivre_invalideur("id='id_article/$id_article'");
-		}
-		if (lire_meta('activer_moteur') == 'oui') {
-			include_ecrire ("inc_index.php3");
-			marquer_indexer('article', $id_article);
-		}
-	}
-
 	// Stockage des versions
 	if ($articles_versions) {
 		ajouter_version($id_article, $champs_versions, '', $connect_id_auteur);
@@ -295,7 +280,7 @@ if ($titre && !$ajout_forum && $flag_editable) {
 	// marquer l'article (important pour les articles nouvellement crees)
 	spip_query("UPDATE spip_articles SET date_modif=NOW(), auteur_modif=$connect_id_auteur WHERE id_article=$id_article");
 	$id_article_bloque = $id_article;   // message pour inc_presentation
-}
+ }
 
 
 
@@ -1613,17 +1598,10 @@ echo "</div>\n";
 fin_page();
 
 // Taches lentes
-if ($ok_nouveau_statut) {
-	@flush();
-	calculer_rubriques();
-	if ($statut_nouv == 'publie' AND $statut_ancien != $statut_nouv) {
-		include_ecrire("inc_mail.php3");
-		envoyer_mail_publication($id_article);
-	}
-	if ($statut_nouv == "prop" AND $statut_ancien != $statut_nouv AND $statut_ancien != 'publie') {
-		include_ecrire("inc_mail.php3");
-		envoyer_mail_proposition($id_article);
-	}
+
+
+if ($ok_nouveau_statut AND $statut_ancien != $statut_nouv) {
+  cron_articles($id_article, $statut_nouv, $statut_ancien);
 }
 
 ?>
diff --git a/ecrire/breves.php3 b/ecrire/breves.php3
index 40915ac9f8b5ceb9933b88a6683ff0b1bd1a7c09..39db60cf90a70409afe609cbdde4a311e2e71f52 100644
--- a/ecrire/breves.php3
+++ b/ecrire/breves.php3
@@ -12,60 +12,18 @@
 
 
 include ("inc.php3");
+$f = find_in_path("inc_breves.php");
+include($f ? $f : (_DIR_INCLUDE . "inc_breves.php"));
 
 if ($statut AND $connect_statut == "0minirezo") {
-	$query="UPDATE spip_breves SET date_heure=NOW(), statut='$statut' WHERE id_breve=$id_breve";
-	$result=spip_query($query);
-	calculer_rubriques();
-	redirige_par_entete("breves.php3");
+  changer_statut_breves($id_breve, $statut);
+  redirige_par_entete("breves.php3");
 }
 
-
-
 debut_page(_T('titre_page_breves'), "documents", "breves");
 debut_gauche();
-
-echo "<P align=left>";
-	
 debut_droite();
-
-
-
-function enfant($leparent){
-	global $spip_lang_left, $spip_lang_right;
-
- 	$query="SELECT * FROM spip_rubriques WHERE id_parent='$leparent' ORDER BY 0+titre, titre";
- 	$result=spip_query($query);
-
- 	while($row=spip_fetch_array($result)){
-		$id_rubrique=$row['id_rubrique'];
-		$id_parent=$row['id_parent'];
-		$titre=typo($row['titre']);
-		$descriptif=$row['descriptif'];
-		$texte=$row['texte'];
-
-		debut_cadre_enfonce("secteur-24.gif", false, '', $titre.aide ("breves"));
-
-		if ($GLOBALS['connect_statut'] == "0minirezo") $statuts = "'prop', 'refuse', 'publie'";
-		else $statuts = "'prop', 'publie'";
-
-		$query = "SELECT id_breve, date_heure, titre, statut FROM spip_breves ".
-			"WHERE id_rubrique='$id_rubrique' AND statut IN ($statuts) ORDER BY date_heure DESC";
-		afficher_breves('', $query);
-		echo "<div align='$spip_lang_right'>";
-		icone(_T('icone_nouvelle_breve'), "breves_edit.php3?new=oui&id_rubrique=$id_rubrique", "breve-24.gif", "creer.gif");
-		echo "</div>";
-
-		fin_cadre_enfonce();
-
-	}
-}
-
-
-
 enfant(0);
-
-
 fin_page();
 
 ?>
diff --git a/ecrire/iframe_action.php3 b/ecrire/iframe_action.php3
index b3bfd7b569b5cb6160227158cefb03a65a98cc88..3129e262fb8b4660e3a769ed92a9157d041da100 100644
--- a/ecrire/iframe_action.php3
+++ b/ecrire/iframe_action.php3
@@ -10,69 +10,22 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-include ("inc.php3");
+include ("inc_version.php3");
+include_ecrire("inc_auth.php3");
+
 @header("Cache-Control: no-store, no-cache, must-revalidate");
 echo "";
 
-if (($id > 0) && ($connect_statut == "0minirezo")) {
-
-
-	#### OUH LA, il faudrait passer ca et les modifs des articles.php3 etc
-	#### dans un seul fichier, sinon toute modif faite ici doit etre reportee
-	#### la, et inversement : l'enfer
-
-	if ($action == 'statut_article') {
-
-		$id_article = $id;
-		$query = "SELECT statut FROM spip_articles WHERE id_article=$id_article";
-		$result = spip_query($query);
-		if ($row = spip_fetch_array($result)) {
-			$statut_ancien = $row['statut'];
-		}
-
-		
-		if ($statut != $statut_ancien) {
-			$query = "UPDATE spip_articles SET statut='$statut' WHERE id_article=$id_article";
-			$result = spip_query($query);
-			
-			include_ecrire("inc_rubriques.php3");
-
-			if ($statut == 'publie') {
-				spip_query("UPDATE spip_articles SET date=NOW() WHERE id_article=$id_article");
-				include_ecrire ("inc_index.php3");
-				marquer_indexer('article', $id_article);
-				calculer_rubriques();
-				include_ecrire("inc_mail.php3");
-				envoyer_mail_publication($id_article);
-			}
-			if ($statut_ancien == 'publie' AND $invalider_caches) {
-				include_ecrire ("inc_invalideur.php3");
-				suivre_invalideur("id='id_article/$id_article'");
-				calculer_rubriques();
-			}
-			if ($statut == "prop" AND $statut_ancien != 'publie') {
-				include_ecrire("inc_mail.php3");
-				envoyer_mail_proposition($id_article);
-			}
-		}
-	}
-
-	elseif ($action == 'statut_breve') {
-
-		$id_breve = $id;
-		$query = "SELECT statut FROM spip_breves WHERE id_breve=$id_breve";
-		$result = spip_query($query);
-		if ($row = spip_fetch_array($result)) {
-			$statut_ancien = $row['statut'];
-		}
-				
-		if ($statut != $statut_ancien) {
-			$query = "UPDATE spip_breves SET date_heure=NOW(), statut='$statut' WHERE id_breve=$id_breve";
-			$result = spip_query($query);
-			
-			include_ecrire("inc_rubriques.php3");
-			calculer_rubriques();
-		}
-	}
+if ($id && ($connect_statut == "0minirezo")) {
+
+	$nom = "inc_" . $action . ".php";
+	$f = find_in_path($nom);
+	if ($f) 
+	  include($f);
+	elseif (file_exists($f = (_DIR_INCLUDE . $nom)))
+	  include($f);
+	$nom = 'changer_statut_' . $action;
+	if (function_exists($nom))
+		$nom($id, $statut);
  }
 ?>
diff --git a/ecrire/inc_articles.php b/ecrire/inc_articles.php
new file mode 100644
index 0000000000000000000000000000000000000000..2eee6cf52c6c3dfcb74c5e83e79e2aa90072a02b
--- /dev/null
+++ b/ecrire/inc_articles.php
@@ -0,0 +1,60 @@
+<?
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2005                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+function changer_statut_articles($id_article, $statut)
+{
+	spip_log("arti $id_article, $statut");
+	$result = spip_query("SELECT statut FROM spip_articles WHERE id_article=$id_article");
+
+	if ($row = spip_fetch_array($result)) {
+			$statut_ancien = $row['statut'];
+		}
+
+	if ($statut != $statut_ancien) {
+		spip_query("UPDATE spip_articles SET statut='$statut', date=NOW() WHERE id_article=$id_article");			
+		include_ecrire("inc_rubriques.php3");
+		include_ecrire('inc_lang.php3');
+		include_ecrire('inc_filtres.php3');
+		include_ecrire('inc_texte.php3');
+		calculer_rubriques();
+
+		cron_articles($id_article, $statut, $statut_ancien);
+	}
+}
+
+function cron_articles($id_article, $statut, $statut_ancien)
+{
+	global $invalider_caches;
+
+	calculer_rubriques();
+
+	if ($statut == 'publie') {
+		if (lire_meta('activer_moteur') == 'oui') {
+			include_ecrire ("inc_index.php3");
+			marquer_indexer('article', $id_article);
+		}
+		include_ecrire("inc_mail.php3");
+		envoyer_mail_publication($id_article);
+	}
+
+	if ($statut_ancien == 'publie' AND $invalider_caches) {
+	  	include_ecrire ("inc_invalideur.php3");
+		suivre_invalideur("id='id_article/$id_article'");
+	}
+
+	if ($statut == "prop" AND $statut_ancien != 'publie') {
+		include_ecrire("inc_mail.php3");
+		envoyer_mail_proposition($id_article);
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/ecrire/inc_breves.php b/ecrire/inc_breves.php
new file mode 100644
index 0000000000000000000000000000000000000000..b3a02f506a60777708f22305b85d8e360da3595c
--- /dev/null
+++ b/ecrire/inc_breves.php
@@ -0,0 +1,57 @@
+<?
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2005                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+function enfant($leparent){
+	global $spip_lang_left, $spip_lang_right;
+
+ 	$query="SELECT * FROM spip_rubriques WHERE id_parent='$leparent' ORDER BY 0+titre, titre";
+ 	$result=spip_query($query);
+
+ 	while($row=spip_fetch_array($result)){
+		$id_rubrique=$row['id_rubrique'];
+		$id_parent=$row['id_parent'];
+		$titre=typo($row['titre']);
+		$descriptif=$row['descriptif'];
+		$texte=$row['texte'];
+
+		debut_cadre_enfonce("secteur-24.gif", false, '', $titre.aide ("breves"));
+
+		if ($GLOBALS['connect_statut'] == "0minirezo") $statuts = "'prop', 'refuse', 'publie'";
+		else $statuts = "'prop', 'publie'";
+
+		$query = "SELECT id_breve, date_heure, titre, statut FROM spip_breves ".
+			"WHERE id_rubrique='$id_rubrique' AND statut IN ($statuts) ORDER BY date_heure DESC";
+		afficher_breves('', $query);
+		echo "<div align='$spip_lang_right'>";
+		icone(_T('icone_nouvelle_breve'), "breves_edit.php3?new=oui&id_rubrique=$id_rubrique", "breve-24.gif", "creer.gif");
+		echo "</div>";
+
+		fin_cadre_enfonce();
+
+	}
+}
+
+
+function changer_statut_breves($id_breve, $statut)
+{
+ 	$cond = "WHERE id_breve=" . intval($id_breve);
+	list($statut_ancien) = spip_fetch_array(spip_query("SELECT statut FROM spip_breves $cond"));
+				
+	spip_log("$statut != $statut_ancien");
+	if ($statut != $statut_ancien) {
+		spip_query("UPDATE spip_breves SET date_heure=NOW(), statut='$statut'" . $cond);
+		include_ecrire("inc_rubriques.php3");
+		calculer_rubriques();
+	}
+}
+
+?>
diff --git a/ecrire/inc_naviguer.php b/ecrire/inc_naviguer.php
new file mode 100644
index 0000000000000000000000000000000000000000..8b7e59894c4b7fc97034bfd48b54cbfa69680ee9
--- /dev/null
+++ b/ecrire/inc_naviguer.php
@@ -0,0 +1,243 @@
+<?php
+
+function infos_naviguer($id_rubrique, $statut)
+{
+
+	if ($id_rubrique > 0) {
+		debut_boite_info();
+		echo "<CENTER>";
+		echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=1><B>"._T('titre_numero_rubrique')."</B></FONT>";
+		echo "<BR><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=6><B>$id_rubrique</B></FONT>";
+		echo "</CENTER>";
+	
+		voir_en_ligne ('rubrique', $id_rubrique, $statut);
+	
+		fin_boite_info();
+	}
+}
+
+function logo_naviguer($id_rubrique)
+{
+	global $connect_statut;
+	if ($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique)) {
+		if ($id_rubrique)
+			afficher_boite_logo('rub', 'id_rubrique', $id_rubrique,
+			_T('logo_rubrique')." ".aide ("rublogo"), _T('logo_survol'));
+		else
+			afficher_boite_logo('rub', 'id_rubrique', 0,
+			_T('logo_standard_rubrique')." ".aide ("rublogo"),
+			_T('logo_survol'));
+	}
+	
+}
+
+function raccourcis_naviguer($id_rubrique, $id_parent)
+{
+	global $connect_statut;
+
+	debut_raccourcis();
+	
+	icone_horizontale(_T('icone_tous_articles'), "articles_page.php3", "article-24.gif");
+	
+	if (spip_num_rows(spip_query("SELECT id_rubrique FROM spip_rubriques LIMIT 1 OFFSET 0")) > 0) {
+		if ($id_rubrique > 0)
+			icone_horizontale(_T('icone_ecrire_article'), "articles_edit.php3?id_rubrique=$id_rubrique&new=oui", "article-24.gif","creer.gif");
+	
+		$activer_breves = lire_meta("activer_breves");
+		if ($activer_breves != "non" AND $id_parent == "0" AND $id_rubrique != "0") {
+			icone_horizontale(_T('icone_nouvelle_breve'), "breves_edit.php3?id_rubrique=$id_rubrique&new=oui", "breve-24.gif","creer.gif");
+		}
+	}
+	else {
+		if ($connect_statut == '0minirezo') {
+			echo "<p>"._T('info_creation_rubrique');
+		}
+	}
+	
+	fin_raccourcis();
+}
+
+function langue_naviguer($id_rubrique, $id_parent, $flag_editable)
+{
+
+if ($id_rubrique>0 AND lire_meta('multi_rubriques') == 'oui' AND (lire_meta('multi_secteurs') == 'non' OR $id_parent == 0) AND $flag_editable) {
+
+	$row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
+	$langue_rubrique = $row['lang'];
+	$langue_choisie_rubrique = $row['langue_choisie'];
+	if ($id_parent) {
+		$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent"));
+		$langue_parent = $row[0];
+	}
+	else $langue_parent = lire_meta('langue_site');
+
+	debut_cadre_enfonce('langues-24.gif');
+	echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100% BACKGROUND=''><TR><TD BGCOLOR='#EEEECC' class='serif2'>";
+	echo bouton_block_invisible('languesrubrique');
+	echo "<B>";
+	echo _T('titre_langue_rubrique');
+	echo "&nbsp; (".traduire_nom_langue($langue_rubrique).")";
+	echo "</B>";
+	echo "</TD></TR></TABLE>";
+
+	echo debut_block_invisible('languesrubrique');
+	echo "<div class='verdana2' align='center'>";
+	echo menu_langues('changer_lang', $langue_rubrique, '', $langue_parent);
+	echo "</div>\n";
+	echo fin_block();
+
+	fin_cadre_enfonce();
+ }
+}
+
+function contenu_naviguer($id_rubrique, $id_parent, $ze_logo,$flag_editable) {
+
+global $clean_link, $connect_statut, $connect_toutes_rubriques, $options, $spip_lang_left, $spip_lang_right;
+
+///// Afficher les rubriques 
+afficher_enfant_rub($id_rubrique, $flag_editable);
+
+
+//echo "<div align='$spip_lang_left'>";
+
+
+//////////  Vos articles en cours de redaction
+/////////////////////////
+
+echo "<P>";
+
+
+//
+// Verifier les boucles a mettre en relief
+//
+
+$relief = false;
+
+if (!$relief) {
+	$query = "SELECT id_article FROM spip_articles AS articles WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1 OFFSET 0";
+	$result = spip_query($query);
+	$relief = (spip_num_rows($result) > 0);
+}
+
+if (!$relief) {
+	$query = "SELECT id_breve FROM spip_breves WHERE id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop') LIMIT 1 OFFSET 0";
+	$result = spip_query($query);
+	$relief = (spip_num_rows($result) > 0);
+}
+
+if (!$relief AND lire_meta('activer_syndic') != 'non') {
+	$query = "SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1 OFFSET 0";
+	$result = spip_query($query);
+	$relief = (spip_num_rows($result) > 0);
+}
+
+if (!$relief AND lire_meta('activer_syndic') != 'non' AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
+	$query = "SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') LIMIT 1 OFFSET 0";
+	$result = spip_query($query);
+	$relief = (spip_num_rows($result) > 0);
+}
+
+
+if ($relief) {
+	echo "<p>";
+	debut_cadre_couleur();
+	echo "<div class='verdana2' style='color: black;'><b>"._T('texte_en_cours_validation')."</b></div><p>";
+
+	//
+	// Les articles a valider
+	//
+	afficher_articles(_T('info_articles_proposes'),
+		"WHERE id_rubrique='$id_rubrique' AND statut='prop' ORDER BY date DESC");
+
+	//
+	// Les breves a valider
+	//
+	$query = "SELECT * FROM spip_breves WHERE id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop') ORDER BY date_heure DESC";
+	afficher_breves(_T('info_breves_valider'), $query, true);
+
+	//
+	// Les sites references a valider
+	//
+	if (lire_meta('activer_syndic') != 'non') {
+		include_ecrire("inc_sites.php3");
+		afficher_sites(_T('info_site_valider'), "SELECT * FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut='prop' ORDER BY nom_site");
+	}
+
+	//
+	// Les sites a probleme
+	//
+	if (lire_meta('activer_syndic') != 'non' AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
+		include_ecrire("inc_sites.php3");
+		afficher_sites(_T('avis_sites_syndiques_probleme'),
+			"SELECT * FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') AND statut='publie' ORDER BY nom_site");
+	}
+
+	// Les articles syndiques en attente de validation
+	if ($id_rubrique == 0 AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
+		$result = spip_query ("SELECT COUNT(*) AS compte FROM spip_syndic_articles AND statut='dispo'");
+		if (($row = spip_fetch_array($result)) AND $row['compte'])
+			echo "<br><small><a href='sites_tous.php3'>".$row['compte']." "._T('info_liens_syndiques_1')."</a> "._T('info_liens_syndiques_2')."</small>";
+	}
+
+	fin_cadre_couleur();
+}
+
+
+//////////  Les articles en cours de redaction
+/////////////////////////
+
+if ($connect_statut == "0minirezo" AND $options == 'avancees') {
+	afficher_articles(_T('info_tous_articles_en_redaction'),
+		"WHERE statut='prepa' AND id_rubrique='$id_rubrique' ORDER BY date DESC");
+}
+
+
+//////////  Les articles publies
+/////////////////////////
+
+afficher_articles(_T('info_tous_articles_presents'),
+	"WHERE statut='publie' AND id_rubrique='$id_rubrique' ORDER BY date DESC", true);
+
+
+
+if ($id_rubrique > 0){
+	echo "<div align='$spip_lang_right'>";
+	icone(_T('icone_ecrire_article'), "articles_edit.php3?id_rubrique=$id_rubrique&new=oui", "article-24.gif", "creer.gif");
+	echo "</div><p>";
+}
+
+//// Les breves
+
+afficher_breves(_T('icone_ecrire_nouvel_article'), "SELECT * FROM spip_breves WHERE id_rubrique='$id_rubrique' AND statut != 'prop' AND statut != 'prepa' ORDER BY date_heure DESC");
+
+$activer_breves=lire_meta("activer_breves");
+
+if ($id_parent == "0" AND $id_rubrique != "0" AND $activer_breves!="non"){
+	echo "<div align='$spip_lang_right'>";
+	icone(_T('icone_nouvelle_breve'), "breves_edit.php3?id_rubrique=$id_rubrique&new=oui", "breve-24.gif", "creer.gif");
+	echo "</div><p>";
+}
+
+
+
+//// Les sites references
+
+if (lire_meta("activer_sites") == 'oui') {
+	include_ecrire("inc_sites.php3");
+	afficher_sites(_T('titre_sites_references_rubrique'), "SELECT * FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus') ORDER BY nom_site");
+
+	$proposer_sites=lire_meta("proposer_sites");
+	if ($id_rubrique > 0 AND ($flag_editable OR $proposer_sites > 0)) {
+		$link = new Link('sites_edit.php3');
+		$link->addVar('id_rubrique', $id_rubrique);
+		$link->addVar('target', 'sites.php3');
+		$link->addVar('redirect', $clean_link->getUrl());
+	
+		echo "<div align='$spip_lang_right'>";
+		icone(_T('info_sites_referencer'), $link->getUrl(), "site-24.gif", "creer.gif");
+		echo "</div><p>";
+	}
+ }
+}
+
+?>
diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3
index 7947c906e3009312e8b226740cf469e59654a094..fdc94d3c22e9f917989fb4ba6f276f73376dec25 100644
--- a/ecrire/inc_presentation.php3
+++ b/ecrire/inc_presentation.php3
@@ -706,17 +706,17 @@ function puce_statut_breve($id, $statut, $type, $droit) {
 		. $inser_puce
 		. "</div>"
 		. "<div class='puce_breve_popup' id='$type2' onmouseout=\"cacher('$type2');\" style=' margin-left: -".((9*$clip)+1)."px;'>"
-		. http_href_img("javascript:selec_statut($id, '$type', -1, '" . _DIR_IMG_PACK . $puces[0] . "', 'prop');",
+		. http_href_img("javascript:selec_statut('$id', '$type', -1, '" . _DIR_IMG_PACK . $puces[0] . "', 'prop');",
 			$puces[0],
 			"title=\""._T('texte_statut_propose_evaluation')."\"",
 			'','','',
 			$action)
-		. http_href_img("javascript:selec_statut($id, '$type', -10, '" . _DIR_IMG_PACK .$puces[1] . "', 'publie');",
+		. http_href_img("javascript:selec_statut('$id', '$type', -10, '" . _DIR_IMG_PACK .$puces[1] . "', 'publie');",
 		 	$puces[1],
 			"title=\""._T('texte_statut_publie')."\"",
 			'','','',
 			$action)
-		. http_href_img("javascript:selec_statut($id, '$type', -19, '" . _DIR_IMG_PACK .$puces[2] . "', 'refuse');",
+		. http_href_img("javascript:selec_statut('$id', '$type', -19, '" . _DIR_IMG_PACK .$puces[2] . "', 'refuse');",
 			$puces[2],
 			"title=\""._T('texte_statut_refuse')."\"",
 			'','','',
diff --git a/ecrire/naviguer.php3 b/ecrire/naviguer.php3
index 20f0c3d0790e5569834386844014741b10a2348d..e31cbe882ddff0b60f4a02972f8a7e20995b3b56 100644
--- a/ecrire/naviguer.php3
+++ b/ecrire/naviguer.php3
@@ -18,9 +18,10 @@ include_ecrire ("inc_mots.php3");
 include_ecrire ("inc_documents.php3");
 include_ecrire ("inc_abstract_sql.php3");
 
-//
-// Gerer les modifications...
-//
+$f = find_in_path("inc_naviguer.php");
+include($f ? $f : (_DIR_INCLUDE . "inc_naviguer.php"));
+
+////// debut du script
 
 $id_parent = intval($id_parent);
 $id_rubrique = intval($id_rubrique);
@@ -100,11 +101,10 @@ if ($changer_lang AND $id_rubrique>0 AND lire_meta('multi_rubriques') == 'oui' A
 }
 
 //
-// infos sur cette rubrique
+// recuperer les infos sur cette rubrique
 //
 
 if ($row=spip_fetch_array(spip_query("SELECT * FROM spip_rubriques WHERE id_rubrique='$id_rubrique'"))){
-	$id_rubrique=$row['id_rubrique'];
 	$id_parent=$row['id_parent'];
 	$titre=$row['titre'];
 	$descriptif=$row['descriptif'];
@@ -120,13 +120,23 @@ else
 	$titre_page = _T('titre_naviguer_dans_le_site');
 
 
+if ($id_rubrique == 0) {
+	$nom_site = lire_meta("nom_site");
+	$titre = _T('info_racine_site').": ".$nom_site;
+}
+
+if ($id_rubrique ==  0) $ze_logo = "racine-site-24.gif";
+else if ($id_parent == 0) $ze_logo = "secteur-24.gif";
+else $ze_logo = "rubrique-24.gif";
+
+
+
 ///// debut de la page
 debut_page($titre_page, "documents", "rubriques");
 
 
 //////// parents
 
-
 debut_grand_cadre();
 
 if ($id_rubrique  > 0) {
@@ -137,76 +147,26 @@ fin_grand_cadre();
 
 changer_typo('', 'rubrique'.$id_rubrique);
 
-
 debut_gauche();
 
 if ($spip_display != 4) {
-	if ($id_rubrique > 0) {
-		debut_boite_info();
-		echo "<CENTER>";
-		echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=1><B>"._T('titre_numero_rubrique')."</B></FONT>";
-		echo "<BR><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=6><B>$id_rubrique</B></FONT>";
-		echo "</CENTER>";
-	
-		voir_en_ligne ('rubrique', $id_rubrique, $statut);
-	
-		fin_boite_info();
-	}
-	
-	//
-	// Logos de la rubrique
-	//
-	
-	if ($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique)) {
-		if ($id_rubrique)
-			afficher_boite_logo('rub', 'id_rubrique', $id_rubrique,
-			_T('logo_rubrique')." ".aide ("rublogo"), _T('logo_survol'));
-		else
-			afficher_boite_logo('rub', 'id_rubrique', 0,
-			_T('logo_standard_rubrique')." ".aide ("rublogo"),
-			_T('logo_survol'));
-	}
-	
-	
-	//
-	// Afficher les boutons de creation d'article et de breve
-	//
-	debut_raccourcis();
-	
-
-	icone_horizontale(_T('icone_tous_articles'), "articles_page.php3", "article-24.gif");
-	
-	if (spip_num_rows(spip_query("SELECT id_rubrique FROM spip_rubriques LIMIT 1 OFFSET 0")) > 0) {
-		if ($id_rubrique > 0)
-			icone_horizontale(_T('icone_ecrire_article'), "articles_edit.php3?id_rubrique=$id_rubrique&new=oui", "article-24.gif","creer.gif");
-	
-		$activer_breves = lire_meta("activer_breves");
-		if ($activer_breves != "non" AND $id_parent == "0" AND $id_rubrique != "0") {
-			icone_horizontale(_T('icone_nouvelle_breve'), "breves_edit.php3?id_rubrique=$id_rubrique&new=oui", "breve-24.gif","creer.gif");
-		}
-	}
-	else {
-		if ($connect_statut == '0minirezo') {
-			echo "<p>"._T('info_creation_rubrique');
-		}
-	}
-	
-	fin_raccourcis();
-}
 
+  infos_naviguer($id_rubrique, $statut);
 
-debut_droite();
+//
+// Logos de la rubrique
+//
 
+  logo_naviguer($id_rubrique);
+	
+//
+// Afficher les boutons de creation d'article et de breve
+//
 
-if ($id_rubrique == 0) {
-	$nom_site = lire_meta("nom_site");
-	$titre = _T('info_racine_site').": ".$nom_site;
+  raccourcis_naviguer($id_rubrique, $id_parent);
 }
 
-if ($id_rubrique ==  0) $ze_logo = "racine-site-24.gif";
-else if ($id_parent == 0) $ze_logo = "secteur-24.gif";
-else $ze_logo = "rubrique-24.gif";
-
+debut_droite();
 
 debut_cadre_relief($ze_logo);
 
@@ -246,7 +206,7 @@ echo "</table>\n";
 /// Mots-cles
 if ($flag_mots!= 'non' AND $id_rubrique > 0) {
 	echo "\n<p>";
-	formulaire_mots('rubriques', $id_rubrique, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable);
+	formulaire_mots('rubriques', $id_rubrique,  $nouv_mot, $supp_mot, $cherche_mot, $flag_editable);
 }
 
 
@@ -260,186 +220,17 @@ if (strlen($texte) > 1) {
 //
 // Langue de la rubrique
 //
-if ($id_rubrique>0 AND lire_meta('multi_rubriques') == 'oui' AND (lire_meta('multi_secteurs') == 'non' OR $id_parent == 0) AND $flag_editable) {
-
-	$row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
-	$langue_rubrique = $row['lang'];
-	$langue_choisie_rubrique = $row['langue_choisie'];
-	if ($id_parent) {
-		$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent"));
-		$langue_parent = $row[0];
-	}
-	else $langue_parent = lire_meta('langue_site');
-
-	debut_cadre_enfonce('langues-24.gif');
-	echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100% BACKGROUND=''><TR><TD BGCOLOR='#EEEECC' class='serif2'>";
-	echo bouton_block_invisible('languesrubrique');
-	echo "<B>";
-	echo _T('titre_langue_rubrique');
-	echo "&nbsp; (".traduire_nom_langue($langue_rubrique).")";
-	echo "</B>";
-	echo "</TD></TR></TABLE>";
-
-	echo debut_block_invisible('languesrubrique');
-	echo "<div class='verdana2' align='center'>";
-	echo menu_langues('changer_lang', $langue_rubrique, '', $langue_parent);
-	echo "</div>\n";
-	echo fin_block();
-
-	fin_cadre_enfonce();
-}
 
+langue_naviguer($id_rubrique, $id_parent, $flag_editable);
 
 fin_cadre_relief();
 
 
-///// Afficher les rubriques 
-afficher_enfant_rub($id_rubrique, $flag_editable);
-
-
-
-//echo "<div align='$spip_lang_left'>";
-
-
-//////////  Vos articles en cours de redaction
-/////////////////////////
-
-echo "<P>";
-
-
 //
-// Verifier les boucles a mettre en relief
+// Gerer les modifications...
 //
 
-$relief = false;
-
-if (!$relief) {
-	$query = "SELECT id_article FROM spip_articles AS articles WHERE id_rubrique='$id_rubrique' AND statut='prop'$vos_articles LIMIT 1 OFFSET 0";
-	$result = spip_query($query);
-	$relief = (spip_num_rows($result) > 0);
-}
-
-if (!$relief) {
-	$query = "SELECT id_breve FROM spip_breves WHERE id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop') LIMIT 1 OFFSET 0";
-	$result = spip_query($query);
-	$relief = (spip_num_rows($result) > 0);
-}
-
-if (!$relief AND lire_meta('activer_syndic') != 'non') {
-	$query = "SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1 OFFSET 0";
-	$result = spip_query($query);
-	$relief = (spip_num_rows($result) > 0);
-}
-
-if (!$relief AND lire_meta('activer_syndic') != 'non' AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
-	$query = "SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') LIMIT 1 OFFSET 0";
-	$result = spip_query($query);
-	$relief = (spip_num_rows($result) > 0);
-}
-
-
-if ($relief) {
-	echo "<p>";
-	debut_cadre_couleur();
-	echo "<div class='verdana2' style='color: black;'><b>"._T('texte_en_cours_validation')."</b></div><p>";
-
-	//
-	// Les articles a valider
-	//
-	afficher_articles(_T('info_articles_proposes'),
-		"WHERE id_rubrique='$id_rubrique' AND statut='prop'$vos_articles ORDER BY date DESC");
-
-	//
-	// Les breves a valider
-	//
-	$query = "SELECT * FROM spip_breves WHERE id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop') ORDER BY date_heure DESC";
-	afficher_breves(_T('info_breves_valider'), $query, true);
-
-	//
-	// Les sites references a valider
-	//
-	if (lire_meta('activer_syndic') != 'non') {
-		include_ecrire("inc_sites.php3");
-		afficher_sites(_T('info_site_valider'), "SELECT * FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut='prop' ORDER BY nom_site");
-	}
-
-	//
-	// Les sites a probleme
-	//
-	if (lire_meta('activer_syndic') != 'non' AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
-		include_ecrire("inc_sites.php3");
-		afficher_sites(_T('avis_sites_syndiques_probleme'),
-			"SELECT * FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') AND statut='publie' ORDER BY nom_site");
-	}
-
-	// Les articles syndiques en attente de validation
-	if ($id_rubrique == 0 AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
-		$result = spip_query ("SELECT COUNT(*) AS compte FROM spip_syndic_articles AND statut='dispo'");
-		if (($row = spip_fetch_array($result)) AND $row['compte'])
-			echo "<br><small><a href='sites_tous.php3'>".$row['compte']." "._T('info_liens_syndiques_1')."</a> "._T('info_liens_syndiques_2')."</small>";
-	}
-
-	fin_cadre_couleur();
-}
-
-
-
-
-//////////  Les articles en cours de redaction
-/////////////////////////
-
-if ($connect_statut == "0minirezo" AND $options == 'avancees') {
-	afficher_articles(_T('info_tous_articles_en_redaction'),
-		"WHERE statut='prepa' AND id_rubrique='$id_rubrique' ORDER BY date DESC");
-}
-
-
-//////////  Les articles publies
-/////////////////////////
-
-afficher_articles(_T('info_tous_articles_presents'),
-	"WHERE statut='publie' AND id_rubrique='$id_rubrique' ORDER BY date DESC", true);
-
-
-
-if ($id_rubrique > 0){
-	echo "<div align='$spip_lang_right'>";
-	icone(_T('icone_ecrire_article'), "articles_edit.php3?id_rubrique=$id_rubrique&new=oui", "article-24.gif", "creer.gif");
-	echo "</div><p>";
-}
-
-//// Les breves
-
-afficher_breves(_T('icone_ecrire_nouvel_article'), "SELECT * FROM spip_breves WHERE id_rubrique='$id_rubrique' AND statut != 'prop' AND statut != 'prepa' ORDER BY date_heure DESC");
-
-$activer_breves=lire_meta("activer_breves");
-
-if ($id_parent == "0" AND $id_rubrique != "0" AND $activer_breves!="non"){
-	echo "<div align='$spip_lang_right'>";
-	icone(_T('icone_nouvelle_breve'), "breves_edit.php3?id_rubrique=$id_rubrique&new=oui", "breve-24.gif", "creer.gif");
-	echo "</div><p>";
-}
-
-
-
-//// Les sites references
-
-if (lire_meta("activer_sites") == 'oui') {
-	include_ecrire("inc_sites.php3");
-	afficher_sites(_T('titre_sites_references_rubrique'), "SELECT * FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus') ORDER BY nom_site");
-
-	$proposer_sites=lire_meta("proposer_sites");
-	if ($id_rubrique > 0 AND ($flag_editable OR $proposer_sites > 0)) {
-		$link = new Link('sites_edit.php3');
-		$link->addVar('id_rubrique', $id_rubrique);
-		$link->addVar('target', 'sites.php3');
-		$link->addVar('redirect', $clean_link->getUrl());
-	
-		echo "<div align='$spip_lang_right'>";
-		icone(_T('info_sites_referencer'), $link->getUrl(), "site-24.gif", "creer.gif");
-		echo "</div><p>";
-	}
-}
+contenu_naviguer($id_rubrique, $id_parent, $ze_logo,$flag_editable);
 
 /// Documents associes a la rubrique
 
@@ -449,8 +240,6 @@ if ($id_rubrique>0) {
 	 afficher_documents_non_inclus($id_rubrique, "rubrique", $flag_editable);
 }
 
-
-
 ////// Supprimer cette rubrique (si vide)
 
 if (($id_rubrique>0) AND tester_rubrique_vide($id_rubrique) AND $flag_editable) {
@@ -465,8 +254,6 @@ if (($id_rubrique>0) AND tester_rubrique_vide($id_rubrique) AND $flag_editable)
 
 }
 
-
-
 fin_page();
 
 ?>
diff --git a/ecrire/presentation.js b/ecrire/presentation.js
index bad8da3dfd79329f3c3572c60c06f37561f4c17c..2597145150383645d1a40a43ec3bd7c0f2c9a003 100644
--- a/ecrire/presentation.js
+++ b/ecrire/presentation.js
@@ -70,8 +70,7 @@ function selec_statut(id, type, decal, puce, statut) {
 
 		findObj('imgstatut'+type+id).src = puce;
 		frames['iframe_action'].location.href = 
-  'iframe_action.php3?action=statut_'+ type +'&id='+id+'&statut='+statut;
-
+  'iframe_action.php3?action='+ type + 's' + '&id='+id+'&statut='+statut;
 	}
 }