diff --git a/.gitattributes b/.gitattributes
index 7108b2c43a0d010d973bfde43e893d9752a14935..526606f8aabc12913de62d3ed9281c220ad7fe90 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -455,6 +455,7 @@ ecrire/inc/install_ldap3.php -text
 ecrire/inc/install_ldap4.php -text
 ecrire/inc/install_ldap5.php -text
 ecrire/inc/install_unpack.php -text
+ecrire/inc/instituer_article.php -text
 ecrire/inc/instituer_auteur.php -text
 ecrire/inc/joindre.php -text
 ecrire/inc/lang_liste.php -text
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 982efdabf14ea008e1f6083b2fd4160e54501c46..8f408db0ced0ca63b1c7eed8686f62485ed5cdff 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -30,7 +30,6 @@ function exec_articles_dist()
 	$row = spip_fetch_array(spip_query("SELECT * FROM spip_articles WHERE id_article=$id_article"));
 
 	if (!$row) {
-	   // cas du numero hors table
 		$titre = _T('public:aucun_article');
 		debut_page("« $titre »", "naviguer", "articles");
 		debut_grand_cadre();
@@ -67,130 +66,114 @@ function exec_articles_dist()
 
 	$flag_editable = ($statut_rubrique OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop' OR $statut_article == 'poubelle')));
 
-	debut_page("« $titre »", "naviguer", "articles", "", "", $id_rubrique);
-
-	echo	debut_grand_cadre(true),
-		afficher_hierarchie($id_rubrique),
-		fin_grand_cadre(true);
-
-//
-// Affichage de la colonne de gauche
-//
+	// Est-ce que quelqu'un a deja ouvert l'article en edition ?
+	$modif = array();
+	if ($GLOBALS['meta']['articles_modif'] != 'non') {
+		include_spip('inc/drapeau_edition');
+		$modif = qui_edite($id_article, 'article');
+		if ($modif['id_auteur_modif'] == $connect_id_auteur)
+		  $modif = array();
+	}
 
-debut_gauche();
 
-echo boite_info_articles($id_article, $statut_article, $visites, $id_version);
+ // chargement prealable des fonctions produisant des formulaires
 
-//
-// Logos de l'article
-//
+	$dater = charger_fonction('dater', 'inc');
+	$editer_auteurs = charger_fonction('editer_auteurs', 'inc');
+	$discuter = charger_fonction('discuter', 'inc');
 
-  if ($flag_editable AND ($spip_display != 4)) {
-	$iconifier = charger_fonction('iconifier', 'inc');
-	echo $iconifier('id_article', $id_article,'articles');
-  }
+	if ($flag_editable AND ($spip_display != 4)) 
+		$iconifier = charger_fonction('iconifier', 'inc');
+	else $iconifier = '';
 
+	if ($statut_rubrique)
+		$instituer_article = charger_fonction('instituer_article', 'inc');
+	else $instituer_article ='';
 
-// Boites de configuration avancee
+	if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non')
+		$editer_mot = charger_fonction('editer_mot', 'inc');
+	else $editer_mot = '';
 
-if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable)
-  {
-	echo boites_de_config_articles($id_article),
-	  boite_article_virtuel($id_article, $virtuel);
-  }
+	if (($GLOBALS['meta']['multi_articles'] == 'oui')
+	OR (($GLOBALS['meta']['multi_rubriques'] == 'oui') 
+	AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) 
+		$traduction = charger_fonction('referencer_traduction', 'inc');
+	else $traduction ='';
 
-//
-// Articles dans la meme rubrique
-//
+	debut_page("« $titre »", "naviguer", "articles", "", "", $id_rubrique);
 
- echo meme_rubrique_articles($id_rubrique, $id_article, $options),
-   pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''));
+	$res =	debut_grand_cadre(true)
+	.	afficher_hierarchie($id_rubrique)
+	.	fin_grand_cadre(true)
+	.	debut_gauche('accueil',true)
 
-//
-// Affichage de la colonne de droite
-//
+	.	boite_info_articles($id_article, $statut_article, $visites, $id_version)
 
-creer_colonne_droite();
- echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''));
+	.	(!$iconifier ? '' : $iconifier('id_article', $id_article,'articles'))
 
-debut_droite();
+	.	(!($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) ? '' : ( boites_de_config_articles($id_article) . boite_article_virtuel($id_article, $virtuel))) 
 
-// Est-ce que quelqu'un a deja ouvert l'article en edition ?
- $modif = array();
- if ($GLOBALS['meta']['articles_modif'] != 'non') {
-	include_spip('inc/drapeau_edition');
-	$modif = qui_edite($id_article, 'article');
-	if ($modif['id_auteur_modif'] == $connect_id_auteur)
-		$modif = array();
- }
+	  .	meme_rubrique($id_rubrique, $id_article, 'article')
 
- // chargement prealable des fonctions produisant des formulaires
+	.	 pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
 
- $dater = charger_fonction('dater', 'inc');
- $auteurs = charger_fonction('editer_auteurs', 'inc');
+	.	creer_colonne_droite('', true)
 
- if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non')
-   $mots = charger_fonction('editer_mot', 'inc');
- else $mots = '';
+	.	pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
 
- if (($GLOBALS['meta']['multi_articles'] == 'oui')
-	OR (($GLOBALS['meta']['multi_rubriques'] == 'oui') AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) 
-	$traduction = charger_fonction('referencer_traduction', 'inc');
- else $traduction ='';
+	.	debut_droite('',true);
 
- $discuter = charger_fonction('discuter', 'inc');
 
- // affecter les globales dictant les regles de typographie de la langue
- changer_typo('','article'.$id_article);
+// affecter les globales dictant les regles de typographie de la langue
+	changer_typo('','article'.$id_article);
 
- // Envoi de tout le reste de la page
+	// Envoi de tout le reste de la page
 
- echo debut_cadre_relief('', true),
-   titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique, $modif),
+	echo $res,
+	debut_cadre_relief('', true),
+	titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique, $modif),
 
-   "<div>&nbsp;</div>",
-   "<div class='serif' align='$spip_lang_left'>",
+	"<div>&nbsp;</div>",
+	"<div class='serif' align='$spip_lang_left'>",
 
-   $dater($id_article, $flag_editable, $statut_article, $date, $date_redac),
+	$dater($id_article, $flag_editable, $statut_article, $date, $date_redac),
 
-   $auteurs($id_article, $flag_editable, $cherche_auteur, $ids),
+	$editer_auteurs($id_article, $flag_editable, $cherche_auteur, $ids),
 
-   (!$mots ? '' : $mots('article', $id_article, $cherche_mot, $select_groupe, $flag_editable)),
+	(!$editer_mot ? '' : $editer_mot('article', $id_article, $cherche_mot, $select_groupe, $flag_editable)),
 
-   (!$traduction ? '' : $traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err)),
+	(!$traduction ? '' : $traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err)),
 
-   pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')),
+	pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')),
 
-   (!$statut_rubrique ? ''
-    : (debut_cadre_relief('', true)
-	. "\n<div id='instituer_article-$id_article'>"
-	. formulaire_instituer_article($id_article, $statut_article, 'articles', "id_article=$id_article")
-	. '</div>'
-	. fin_cadre_relief(true))),
+	(!$statut_rubrique ? ''
+	 : (debut_cadre_relief('', true)
+		. $instituer_article($id_article, $statut_article)
+		. fin_cadre_relief(true))),
 
-   "\n\n<div align='justify' style='padding: 10px;'>",
-   afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra),
+	"\n\n<div align='justify' style='padding: 10px;'>",
+	afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra),
 
-   (!$flag_editable ? ''
-   : ("\n<div align='$spip_lang_right'><br />"
+	(!$flag_editable ? ''
+	: ("\n<div align='$spip_lang_right'><br />"
 	.  bouton_modifier_articles($id_article, $id_rubrique, $modif,_T('texte_travail_article', $modif), "warning-24.gif", "")
-      . "</div>")),
-   (($spip_display == 4) ? ''
-    : articles_documents($flag_editable, 'article', $id_article)),
+	   . "</div>")),
+	(($spip_display == 4) ? ''
+	 : articles_documents($flag_editable, 'article', $id_article)),
 
-   (($flag_auteur AND  $statut_article == 'prepa' AND !$statut_rubrique) 
-    ? demande_publication($id_article)
-    : ''),
-   "</div></div>",
+	(($flag_auteur AND  $statut_article == 'prepa' AND !$statut_rubrique) 
+	 ? demande_publication($id_article)
+	 : ''),
+	"</div></div>",
 
-   fin_cadre_relief(true),
+	fin_cadre_relief(true),
 
-   "<br /><br />\n<div align='center'>",
-    icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi","statut=prive&id_article=$id_article&titre_message=" .rawurlencode($titre) . "&url=" . generer_url_retour("articles","id_article=$id_article")), "forum-interne-24.gif", "creer.gif", '', false),
+	"<br /><br />\n<div align='center'>",
+	 icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi","statut=prive&id_article=$id_article&titre_message=" .rawurlencode($titre) . "&url=" . generer_url_retour("articles","id_article=$id_article")), "forum-interne-24.gif", "creer.gif", '', false),
 	"</div><br />",
 	$discuter($id_article, false, $debut);
 
-  fin_page();
+	fin_page();
 }
 
 function articles_documents($flag_editable, $type, $id)
@@ -244,8 +227,7 @@ function boite_info_articles($id_article, $statut_article, $visites, $id_version
 {
 	global $connect_statut, $options, $flag_revisions;
 
-	$res = debut_boite_info(true)
-	. "<div align='center'>\n"
+	$res ="<div align='center'>\n"
 	. "<font face='Verdana,Arial,Sans,sans-serif' size='1'><b>"
 	. _T('info_numero_article')."</b></font>\n"
 	. "<br /><font face='Verdana,Arial,Sans,sans-serif' size='6'><b>$id_article</b></font>\n"
@@ -266,11 +248,9 @@ function boite_info_articles($id_article, $statut_article, $visites, $id_version
 		$res .= icone_horizontale(_T('ortho_verifier'), generer_url_ecrire("articles_ortho", "id_article=$id_article"), "ortho-24.gif", "rien.gif", false, $js_ortho);
 	}
 
-	$res .= fin_boite_info(true);
-	return $res;
+	return  debut_boite_info(true). $res . fin_boite_info(true);
 }
 
-
 //
 // Boites de configuration avancee
 //
@@ -328,37 +308,6 @@ function boite_article_virtuel($id_article, $virtuel)
 	return debut_cadre_relief("site-24.gif", true) . $f . fin_cadre_relief(true);
 }
 
-// http://doc.spip.org/@meme_rubrique_articles
-function meme_rubrique_articles($id_rubrique, $id_article, $options, $order='date', $limit=30)
-{
-	global $spip_lang_right, $spip_lang_left;
-
-	$vos_articles = spip_query("SELECT id_article, titre, statut FROM spip_articles WHERE id_rubrique=$id_rubrique AND (statut = 'publie' OR statut = 'prop') AND id_article != $id_article ORDER BY $order DESC LIMIT $limit");
-	if (!spip_num_rows($vos_articles)) return '';
-
-	$retour = "<div>&nbsp;</div>"
-	. "<div class='bandeau_rubriques' style='z-index: 1;'>"
-	. bandeau_titre_boite2(_T('info_meme_rubrique'), "article-24.gif",'','',false)
-	. "<div class='plan-articles'>";
-
-	$numero = ($options != "avancees") ?'':_T('info_numero_abbreviation');
-
-	while($row = spip_fetch_array($vos_articles)) {
-		$ze_article = $row['id_article'];
-		$retour .= "<a class='"
-		. $row['statut']
-		. "' style='font-size: 10px;' href='"
-		. generer_url_ecrire("articles","id_article=$ze_article")
-		. "'>"
-		. (($options !== "avancees") ? '' :
-		     "<div class='arial1' style='float: $spip_lang_right; color: black; padding-$spip_lang_left: 4px;'><b>$numero$ze_article</b></div>")
-		. typo($row['titre'])
-		. "</a>";
-	}
-	$retour .=  "</div></div>";
-	return $retour;
-}
-
 // http://doc.spip.org/@bouton_modifier_articles
 function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode, $ip, $im)
 {
@@ -375,8 +324,7 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
 {
 	global  $dir_lang, $spip_lang_left, $spip_lang_right;
 
-	$res .= "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"
-	. "<tr width='100%'><td valign='top'>";
+	$res = '';
 
 	if ($surtitre) {
 		$res .= "<span $dir_lang><font face='arial,helvetica' size='3'><b>";
@@ -393,23 +341,22 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
 	}
 	
 	if ($descriptif OR $url_site OR $nom_site) {
-		$res .= "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>"
-		.  "<font size=2 face='Verdana,Arial,Sans,sans-serif'>";
 
 		$texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : '';
 
 		$texte_case .=  ($nom_site.$url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : '';
 
-		$res .= propre($texte_case)
+		$res .= "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>"
+		. "<font size='2' face='Verdana,Arial,Sans,sans-serif'>"
+		. propre($texte_case)
 		. "</font>"
 		. "</div>";
 	}
 	
-	if ($statut_article == 'prop') {
+	if ($statut_article == 'prop')
 		$res .= "<P><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2 COLOR='red'><B>"._T('text_article_propose_publication')."</B></FONT></P>";
-	}
 	
-	$res .= "</td>";
+	$res = "<td valign='top'>$res</td>";
 
 	if ($flag_editable) {
 		$res .= "<td valign='top' align='$spip_lang_right'>"
@@ -417,12 +364,12 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
 		. "</td>\n";
 	}
 
-	$res .= "</tr></table>\n";
-	return $res;
+	return "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"
+	. "\n<tr width='100%'>"
+	. $res
+	. "</tr></table>\n";
 }
 
-
-
 // http://doc.spip.org/@afficher_corps_articles
 function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
 {
@@ -476,34 +423,4 @@ function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
 	}
 	return $res;
 }
-
-// http://doc.spip.org/@formulaire_instituer_article
-function formulaire_instituer_article($id_article, $statut, $script, $args)
-{
-  $res =
-	("\n<center>" . 
-	"<b>" ._T('texte_article_statut') ."</b>" .
-	"\n<select name='statut_nouv' size='1' class='fondl'\n" .
-	"onChange=\"document.statut.src='" .
-	_DIR_IMG_PACK .
-	"' + puce_statut(options[selectedIndex].value);" .
-	" setvisibility('valider_statut', 'visible');\">\n" .
-	"<option"  . mySel("prepa", $statut)  ." style='background-color: white'>" ._T('texte_statut_en_cours_redaction') ."</option>\n" .
-	"<option"  . mySel("prop", $statut)  . " style='background-color: #FFF1C6'>" ._T('texte_statut_propose_evaluation') ."</option>\n" .
-	"<option"  . mySel("publie", $statut)  . " style='background-color: #B4E8C5'>" ._T('texte_statut_publie') ."</option>\n" .
-	"<option"  . mySel("poubelle", $statut) .
-	http_style_background('rayures-sup.gif')  . '>'  ._T('texte_statut_poubelle') ."</option>\n" .
-	"<option"  . mySel("refuse", $statut)  . " style='background-color: #FFA4A4'>" ._T('texte_statut_refuse') ."</option>\n" .
-	"</select>" .
-	" &nbsp; " .
-	http_img_pack("puce-".puce_statut($statut).'.gif', "", "border='0' NAME='statut'") .
-	"  &nbsp;\n" .
-	"<span class='visible_au_chargement' id='valider_statut'>" .
-	"<input type='submit' value='"._T('bouton_valider')."' CLASS='fondo' />" .
-	"</span>" .
-	aide("artstatut") .
-	 "</center>");
-  
-  return redirige_action_auteur('instituer_article',$id_article,'articles', "id_article=$id_article", $res, " method='post'");
-}
 ?>
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index c62c27bd4dd6363cf9d3e454be4d9b12084ae901..1ec57f15ccf682a6af7867e624b4f2d0647390aa 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -82,6 +82,9 @@ function afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_gr
 	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),'data'=>''));
 	creer_colonne_droite();
 	echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),'data'=>''));
+
+	echo meme_rubrique($id_rubrique, $id_breve, 'breve', 'date_heure');
+
 	debut_droite();
 	
 	debut_cadre_relief("breve-24.gif");
diff --git a/ecrire/inc/instituer_article.php b/ecrire/inc/instituer_article.php
new file mode 100644
index 0000000000000000000000000000000000000000..44495206ed900ce2d627f0211926d40142ff2d04
--- /dev/null
+++ b/ecrire/inc/instituer_article.php
@@ -0,0 +1,47 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2006                                                *
+ *  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.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function inc_instituer_article_dist($id_article, $statut)
+{
+  $res =
+	"\n<div id='instituer_article-$id_article'>" .
+	"\n<center>" . 
+	"<b>" .
+	_T('texte_article_statut') .
+	"</b>" .
+	"\n<select name='statut_nouv' size='1' class='fondl'\n" .
+	"onChange=\"document.statut.src='" .
+	_DIR_IMG_PACK .
+	"' + puce_statut(options[selectedIndex].value);" .
+	" setvisibility('valider_statut', 'visible');\">\n" .
+	"<option"  . mySel("prepa", $statut)  ." style='background-color: white'>" ._T('texte_statut_en_cours_redaction') ."</option>\n" .
+	"<option"  . mySel("prop", $statut)  . " style='background-color: #FFF1C6'>" ._T('texte_statut_propose_evaluation') ."</option>\n" .
+	"<option"  . mySel("publie", $statut)  . " style='background-color: #B4E8C5'>" ._T('texte_statut_publie') ."</option>\n" .
+	"<option"  . mySel("poubelle", $statut) .
+	http_style_background('rayures-sup.gif')  . '>'  ._T('texte_statut_poubelle') ."</option>\n" .
+	"<option"  . mySel("refuse", $statut)  . " style='background-color: #FFA4A4'>" ._T('texte_statut_refuse') ."</option>\n" .
+	"</select>" .
+	" &nbsp; " .
+	http_img_pack("puce-".puce_statut($statut).'.gif', "", "border='0' NAME='statut'") .
+	"  &nbsp;\n" .
+	"<span class='visible_au_chargement' id='valider_statut'>" .
+	"<input type='submit' value='"._T('bouton_valider')."' CLASS='fondo' />" .
+	"</span>" .
+	aide("artstatut") .
+	 "</center>"
+	. '</div>';
+  
+  return redirige_action_auteur('instituer_article',$id_article,'articles', "id_article=$id_article", $res, " method='post'");
+}
+?>
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 90f14c02cdff1d22be5dbec164de3fa4b4bdac24..30e5f10d0542ab3040df2f7914d777e71df227b1 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -2500,7 +2500,7 @@ function fin_cadre_formulaire(){
 //
 
 // http://doc.spip.org/@debut_gauche
-function debut_gauche($rubrique = "accueil") {
+function debut_gauche($rubrique = "accueil", $return=false) {
 	global $connect_statut;
 	global $options, $spip_display;
 	global $connect_id_auteur;
@@ -2529,13 +2529,14 @@ function debut_gauche($rubrique = "accueil") {
 		$rspan = '';
 	}
 
-	echo "<br /><table width='$largeur_ecran' cellpadding='0' cellspacing='0' border='0'>
+	$res = "<br /><table width='$largeur_ecran' cellpadding='0' cellspacing='0' border='0'>
 		<tr><td width='$largeur' class='colonne_etroite serif' valign='top' $rspan>
 		<div style='width: ${largeur}px; overflow:hidden;'>
 \n";
 		
-	if ($spip_display == 4) echo "<!-- ";
+	if ($spip_display == 4) $res .= "<!-- ";
 
+	if ($return) return $res; else echo $res;
 }
 
 
@@ -2544,91 +2545,67 @@ function debut_gauche($rubrique = "accueil") {
 //
 
 // http://doc.spip.org/@creer_colonne_droite
-function creer_colonne_droite($rubrique=""){
+function creer_colonne_droite($rubrique="", $return= false){
 	global $deja_colonne_droite;
 	global $flag_3_colonnes, $flag_centre_large;
 	global $spip_lang_rtl, $spip_lang_left;
 
-	if ($flag_3_colonnes AND !$deja_colonne_droite) {
-		$deja_colonne_droite = true;
+	if (!$flag_3_colonnes OR $deja_colonne_droite) return '';
+	$deja_colonne_droite = true;
 
-		if ($flag_centre_large) {
+	if ($flag_centre_large) {
 			$espacement = 17;
 			$largeur = 140;
-		}
-		else {
+	} else {
 			$espacement = 37;
 			$largeur = 200;
-		}
-
-
-		echo "<td width=$espacement rowspan=2 class='colonne_etroite'>&nbsp;</td>";
-		echo "<td rowspan=1 class='colonne_etroite'></td>";
-		echo "<td width=$espacement rowspan=2 class='colonne_etroite'>&nbsp;</td>";
-		echo "<td width=$largeur rowspan=2 align='$spip_lang_left' valign='top' class='colonne_etroite'><p />";
-
 	}
 
+	$res = "<td width='"
+	.  $espacement
+	.  "' rowspan='2' class='colonne_etroite'>&nbsp;</td>"
+	. "<td rowspan='1' class='colonne_etroite'></td>"
+	. "<td width='"
+	.  $espacement
+	.  "'rowspan=2 class='colonne_etroite'>&nbsp;</td>"
+	. "<td width='"
+	. $largeur 
+	. "' rowspan=2 align='"
+	. $spip_lang_left
+	. "' valign='top' class='colonne_etroite'><p />";
+
+	if ($return) return $res; else echo $res;
 }
 
 // http://doc.spip.org/@debut_droite
-function debut_droite($rubrique="") {
+function debut_droite($rubrique="", $return= false) {
 	global $options, $spip_ecran, $deja_colonne_droite, $spip_display;
-	global $connect_id_auteur, $connect_statut, $connect_toutes_rubriques;
-	global $flag_3_colonnes, $flag_centre_large, $couleur_foncee, $couleur_claire;
-	global $spip_lang_left;
-
-	if ($spip_display == 4) echo " -->";
-
-	echo "</div>\n"; # largeur fixe, cf. debut_gauche
-
-	if ($options == "avancees") {
-		// liste des articles bloques
-		if ($GLOBALS['meta']["articles_modif"] != "non") {
-			include_spip('inc/drapeau_edition');
-			$articles_ouverts = liste_drapeau_edition ($connect_id_auteur, 'article');
-			if (count($articles_ouverts)) {
-
-
-
-		//	$vos_articles = spip_query("SELECT id_article, id_rubrique, titre, statut FROM spip_articles WHERE statut='prop' ORDER BY date DESC LIMIT 5");
-		//	if (spip_num_rows($vos_articles) > 0) {
-				echo "<div>&nbsp;</div>";
-				echo "<div class='bandeau_rubriques' style='z-index: 1;'>";
-				echo bandeau_titre_boite2(_T('info_cours_edition'), "article-24.gif", $couleur_foncee, 'white', false);
-				echo "<div class='plan-articles-bloques'>";
+	global $spip_lang_left, $couleur_foncee, $couleur_claire;
+	global $flag_3_colonnes, $flag_centre_large;
 
+	$res = '';
 
-				foreach ($articles_ouverts as $row) {
-					$ze_article = $row['id_article'];
-					$ze_titre = $row['titre'];
-					$statut = $row["statut"];
-					
-					echo "<div class='$statut'><a style='font-size: 10px;' href='" . generer_url_ecrire("articles","id_article=$ze_article") . "'>$ze_titre</a>";
+	if ($spip_display == 4) $res .= " -->";
 
-					$nb_liberer ++;
-					echo "<div style='text-align:right; font-size: 9px;'>", debloquer_article($ze_article,_T('lien_liberer')), "</div>";
+	$res .= "</div>\n"; # largeur fixe, cf. debut_gauche
 
-					echo "</div>";
+	if ($options == "avancees") {
 
-				}
-				echo "</div></div>";
-			}
-		}
-		
-		if (!$deja_colonne_droite) creer_colonne_droite($rubrique);
+		$res .= liste_articles_bloques();
+		if (!$deja_colonne_droite) 
+		  $res .= creer_colonne_droite($rubrique, true);
 	}
 
-	echo "<div>&nbsp;</div></td>";
+	$res .= "<div>&nbsp;</div></td>";
 
 	if (!$flag_3_colonnes) {
-		echo "<td width='50'>&nbsp;</td>";
+		$res .= "<td width='50'>&nbsp;</td>";
 	}
 	else {
 		if (!$deja_colonne_droite) {
-			creer_colonne_droite($rubrique);
+			$res .= creer_colonne_droite($rubrique, true);
 		}
-		echo "</td></tr><tr>";
+		$res .= "</td></tr><tr>";
 	}
 
 	if ($spip_ecran == 'large' AND $flag_centre_large)
@@ -2636,13 +2613,48 @@ function debut_droite($rubrique="") {
 	else
 		$largeur = 500;
 
-	echo '<td width="'.$largeur.'" valign="top" align="'.$spip_lang_left.'" rowspan="1" class="serif">';
+	$res .= '<td width="'.$largeur.'" valign="top" align="'.$spip_lang_left.'" rowspan="1" class="serif">';
 
 	// touche d'acces rapide au debut du contenu
-	echo "\n<a name='saut' href='#saut' accesskey='s'></a>\n";
+	$res .= "\n<a name='saut' href='#saut' accesskey='s'></a>\n";
+
+	if ($return) return $res; else echo $res;
 }
 
+function liste_articles_bloques()
+{
+	global $connect_id_auteur, $couleur_foncee;
 
+	$res = '';
+	if ($GLOBALS['meta']["articles_modif"] != "non") {
+		include_spip('inc/drapeau_edition');
+		$articles_ouverts = liste_drapeau_edition ($connect_id_auteur, 'article');
+		if (count($articles_ouverts)) {
+			$res .= "<div>&nbsp;</div>"
+			. "<div class='bandeau_rubriques' style='z-index: 1;'>"
+			. bandeau_titre_boite2(_T('info_cours_edition'), "article-24.gif", $couleur_foncee, 'white', false)
+			. "<div class='plan-articles-bloques'>";
+
+			foreach ($articles_ouverts as $row) {
+				$ze_article = $row['id_article'];
+				$ze_titre = $row['titre'];
+				$statut = $row["statut"];
+					
+				$res .= "<div class='$statut'><a style='font-size: 10px;' href='" 
+				. generer_url_ecrire("articles","id_article=$ze_article")
+				. "'>$ze_titre</a>"
+				. "<div style='text-align:right; font-size: 9px;'>"
+				. debloquer_article($ze_article,_T('lien_liberer'))
+				. "</div>"
+				. "</div>";
+			}
+			$res .= "</div></div>";
+		}
+	}
+	return $res;
+}
+	
+///// 
 //
 // Presentation de l'interface privee, fin de page et flush()
 //
@@ -2701,6 +2713,43 @@ function debloquer_article($arg, $texte) {
 	  "</a>";
 }
 
+
+function meme_rubrique($id_rubrique, $id, $type, $order='date', $limit=30)
+{
+	global $spip_lang_right, $spip_lang_left, $options;
+
+	$table = $type . 's';
+	$key = 'id_' . $type;
+
+	$voss = spip_query("SELECT $key AS id, titre, statut FROM spip_$table WHERE id_rubrique=$id_rubrique AND (statut = 'publie' OR statut = 'prop') AND ($key != $id) ORDER BY $order DESC LIMIT $limit");
+
+	if (!spip_num_rows($voss)) return '';
+
+	$numero = ($options != "avancees") ?'':_T('info_numero_abbreviation');
+	$style = "float: $spip_lang_right; color: black; padding-$spip_lang_left: 4px;";
+	$retour = '';
+
+	while($row = spip_fetch_array($voss)) {
+		$ze = $row['id'];
+		$retour .= "<a class='"
+		. $row['statut']
+		. "' style='font-size: 10px;' href='"
+		  . generer_url_ecrire($table,"$key=$ze")
+		. "'>"
+		. (($options !== "avancees") ? '' :
+		     "<div class='arial1' style='$style'><b>$numero$ze</b></div>")
+		. typo($row['titre'])
+		. "</a>";
+	}
+
+	return "<div>&nbsp;</div>"
+	. "<div class='bandeau_rubriques' style='z-index: 1;'>"
+	. bandeau_titre_boite2(_T('info_meme_rubrique'), "article-24.gif",'','',false)
+	. "<div class='plan-articles'>"
+	. $retour
+	. "</div></div>";
+}
+
 //
 // Afficher la hierarchie des rubriques
 //