diff --git a/.gitattributes b/.gitattributes
index f3b7237f94687af26bf06532c0fb72dc544ef863..b1eb4ab4a461c2e7896e5cf04dc2390cb37020bf 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -195,6 +195,7 @@ dist/images/suivi-forum-24.gif -text
 dist/images/suivi-petition-24.gif -text
 dist/images/supprimer.gif -text
 dist/images/synchro-24.gif -text
+dist/images/tab.png -text
 dist/images/telecharger.gif -text
 dist/images/test.gif -text
 dist/images/test.jpg -text
@@ -237,9 +238,12 @@ dist/javascript/bgiframe.js -text
 dist/javascript/dragdrop_interface.js -text
 dist/javascript/form.js -text
 dist/javascript/jquery.js -text
+dist/javascript/jquery.tabs.min.js -text
 dist/javascript/multilang.js -text
 dist/javascript/pause.js -text
 dist/jquery.js.html -text
+dist/jquery.tabs-ie.css -text
+dist/jquery.tabs.css -text
 dist/minipres.css -text
 dist/modeles/article_mots.html -text
 dist/modeles/article_traductions.html -text
@@ -257,6 +261,13 @@ dist/out.gif -text
 dist/polices/dustismo-license.txt -text svneol=unset#application/octet-stream
 dist/polices/dustismo.ttf -text
 dist/polices/dustismo_bold.ttf -text
+dist/prive/article_infos.html -text
+dist/prive/article_infos_fonctions.php -text
+dist/prive/breve_infos.html -text
+dist/prive/breve_infos_fonctions.php -text
+dist/prive/rubrique_infos.html -text
+dist/prive/site_infos.html -text
+dist/prive/site_infos_fonctions.php -text
 dist/puce.gif -text
 dist/puce_rtl.gif -text
 dist/spip.png -text
@@ -586,6 +597,8 @@ ecrire/inc/informer.php -text
 ecrire/inc/informer_auteur.php -text
 ecrire/inc/instituer_article.php -text
 ecrire/inc/instituer_auteur.php -text
+ecrire/inc/instituer_breve.php -text
+ecrire/inc/instituer_site.php -text
 ecrire/inc/joindre.php -text
 ecrire/inc/lang_liste.php -text
 ecrire/inc/legender.php -text
diff --git a/dist/images/tab.png b/dist/images/tab.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7501058a7bcb652911281121359d6a5378e0dcf
Binary files /dev/null and b/dist/images/tab.png differ
diff --git a/dist/javascript/jquery.tabs.min.js b/dist/javascript/jquery.tabs.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..674fc5cc3336c01753f08ec0111ff5fa69835233
--- /dev/null
+++ b/dist/javascript/jquery.tabs.min.js
@@ -0,0 +1,14 @@
+/**
+ * Tabs - jQuery plugin for accessible, unobtrusive tabs
+ * @requires jQuery v1.1.1
+ *
+ * http://stilbuero.de/tabs/
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * Version: 2.7.4
+ */
+(function($){$.extend({tabs:{remoteCount:0}});$.fn.tabs=function(initial,settings){if(typeof initial=='object')settings=initial;settings=$.extend({initial:(initial&&typeof initial=='number'&&initial>0)?--initial:0,disabled:null,bookmarkable:$.ajaxHistory?true:false,remote:false,spinner:'Loading&#8230;',hashPrefix:'remote-tab-',fxFade:null,fxSlide:null,fxShow:null,fxHide:null,fxSpeed:'normal',fxShowSpeed:null,fxHideSpeed:null,fxAutoHeight:false,onClick:null,onHide:null,onShow:null,navClass:'tabs-nav',selectedClass:'tabs-selected',disabledClass:'tabs-disabled',containerClass:'tabs-container',hideClass:'tabs-hide',loadingClass:'tabs-loading',tabStruct:'div'},settings||{});$.browser.msie6=$.browser.msie&&($.browser.version&&$.browser.version<7||/MSIE 6.0/.test(navigator.userAgent));function unFocus(){scrollTo(0,0);}return this.each(function(){var container=this;var nav=$('ul.'+settings.navClass,container);nav=nav.size()&&nav||$('>ul:eq(0)',container);var tabs=$('a',nav);if(settings.remote){tabs.each(function(){var id=settings.hashPrefix+(++$.tabs.remoteCount),hash='#'+id,url=this.href;this.href=hash;$('<div id="'+id+'" class="'+settings.containerClass+'"></div>').appendTo(container);$(this).bind('loadRemoteTab',function(e,callback){var $$=$(this).addClass(settings.loadingClass),span=$('span',this)[0],tabTitle=span.innerHTML;if(settings.spinner){span.innerHTML='<em>'+settings.spinner+'</em>';}setTimeout(function(){$(hash).load(url,function(){if(settings.spinner){span.innerHTML=tabTitle;}$$.removeClass(settings.loadingClass);callback&&callback();});},0);});});}var containers=$('div.'+settings.containerClass,container);containers=containers.size()&&containers||$('>'+settings.tabStruct,container);nav.is('.'+settings.navClass)||nav.addClass(settings.navClass);containers.each(function(){var $$=$(this);$$.is('.'+settings.containerClass)||$$.addClass(settings.containerClass);});var hasSelectedClass=$('li',nav).index($('li.'+settings.selectedClass,nav)[0]);if(hasSelectedClass>=0){settings.initial=hasSelectedClass;}if(location.hash){tabs.each(function(i){if(this.hash==location.hash){settings.initial=i;if(($.browser.msie||$.browser.opera)&&!settings.remote){var toShow=$(location.hash);var toShowId=toShow.attr('id');toShow.attr('id','');setTimeout(function(){toShow.attr('id',toShowId);},500);}unFocus();return false;}});}if($.browser.msie){unFocus();}containers.filter(':eq('+settings.initial+')').show().end().not(':eq('+settings.initial+')').addClass(settings.hideClass);$('li',nav).removeClass(settings.selectedClass).eq(settings.initial).addClass(settings.selectedClass);tabs.eq(settings.initial).trigger('loadRemoteTab').end();if(settings.fxAutoHeight){var _setAutoHeight=function(reset){var heights=$.map(containers.get(),function(el){var h,jq=$(el);if(reset){if($.browser.msie6){el.style.removeExpression('behaviour');el.style.height='';el.minHeight=null;}h=jq.css({'min-height':''}).height();}else{h=jq.height();}return h;}).sort(function(a,b){return b-a;});if($.browser.msie6){containers.each(function(){this.minHeight=heights[0]+'px';this.style.setExpression('behaviour','this.style.height = this.minHeight ? this.minHeight : "1px"');});}else{containers.css({'min-height':heights[0]+'px'});}};_setAutoHeight();var cachedWidth=container.offsetWidth;var cachedHeight=container.offsetHeight;var watchFontSize=$('#tabs-watch-font-size').get(0)||$('<span id="tabs-watch-font-size">M</span>').css({display:'block',position:'absolute',visibility:'hidden'}).appendTo(document.body).get(0);var cachedFontSize=watchFontSize.offsetHeight;setInterval(function(){var currentWidth=container.offsetWidth;var currentHeight=container.offsetHeight;var currentFontSize=watchFontSize.offsetHeight;if(currentHeight>cachedHeight||currentWidth!=cachedWidth||currentFontSize!=cachedFontSize){_setAutoHeight((currentWidth>cachedWidth||currentFontSize<cachedFontSize));cachedWidth=currentWidth;cachedHeight=currentHeight;cachedFontSize=currentFontSize;}},50);}var showAnim={},hideAnim={},showSpeed=settings.fxShowSpeed||settings.fxSpeed,hideSpeed=settings.fxHideSpeed||settings.fxSpeed;if(settings.fxSlide||settings.fxFade){if(settings.fxSlide){showAnim['height']='show';hideAnim['height']='hide';}if(settings.fxFade){showAnim['opacity']='show';hideAnim['opacity']='hide';}}else{if(settings.fxShow){showAnim=settings.fxShow;}else{showAnim['min-width']=0;showSpeed=1;}if(settings.fxHide){hideAnim=settings.fxHide;}else{hideAnim['min-width']=0;hideSpeed=1;}}var onClick=settings.onClick,onHide=settings.onHide,onShow=settings.onShow;tabs.bind('triggerTab',function(){var li=$(this).parents('li:eq(0)');if(container.locked||li.is('.'+settings.selectedClass)||li.is('.'+settings.disabledClass)){return false;}var hash=this.hash;if($.browser.msie){$(this).trigger('click');if(settings.bookmarkable){$.ajaxHistory.update(hash);location.hash=hash.replace('#','');}}else if($.browser.safari){var tempForm=$('<form action="'+hash+'"><div><input type="submit" value="h" /></div></form>').get(0);tempForm.submit();$(this).trigger('click');if(settings.bookmarkable){$.ajaxHistory.update(hash);}}else{if(settings.bookmarkable){location.hash=hash.replace('#','');}else{$(this).trigger('click');}}});tabs.bind('disableTab',function(){var li=$(this).parents('li:eq(0)');if($.browser.safari){li.animate({opacity:0},1,function(){li.css({opacity:''});});}li.addClass(settings.disabledClass);});if(settings.disabled&&settings.disabled.length){for(var i=0,k=settings.disabled.length;i<k;i++){tabs.eq(--settings.disabled[i]).trigger('disableTab').end();}};tabs.bind('enableTab',function(){var li=$(this).parents('li:eq(0)');li.removeClass(settings.disabledClass);if($.browser.safari){li.animate({opacity:1},1,function(){li.css({opacity:''});});}});tabs.bind('click',function(e){var trueClick=e.clientX;var clicked=this,li=$(this).parents('li:eq(0)'),toShow=$(this.hash),toHide=containers.filter(':visible');if(container['locked']||li.is('.'+settings.selectedClass)||li.is('.'+settings.disabledClass)||typeof onClick=='function'&&onClick(this,toShow[0],toHide[0])===false){this.blur();return false;}container['locked']=true;if(toShow.size()){if($.browser.msie&&settings.bookmarkable){var toShowId=this.hash.replace('#','');toShow.attr('id','');setTimeout(function(){toShow.attr('id',toShowId);},0);}var resetCSS={display:'',overflow:'',height:''};if(!$.browser.msie){resetCSS['opacity']='';}function switchTab(){if(settings.bookmarkable&&trueClick){$.ajaxHistory.update(clicked.hash);}toHide.animate(hideAnim,hideSpeed,function(){$(clicked).parents('li:eq(0)').addClass(settings.selectedClass).siblings().removeClass(settings.selectedClass);toHide.addClass(settings.hideClass).css(resetCSS);if(typeof onHide=='function'){onHide(clicked,toShow[0],toHide[0]);}if(!(settings.fxSlide||settings.fxFade||settings.fxShow)){toShow.css('display','block');}toShow.animate(showAnim,showSpeed,function(){toShow.removeClass(settings.hideClass).css(resetCSS);if($.browser.msie){toHide[0].style.filter='';toShow[0].style.filter='';}if(typeof onShow=='function'){onShow(clicked,toShow[0],toHide[0]);}container['locked']=null;});});}if(!settings.remote){switchTab();}else{$(clicked).trigger('loadRemoteTab',[switchTab]);}}else{alert('There is no such container.');}var scrollX=window.pageXOffset||document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft||0;var scrollY=window.pageYOffset||document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop||0;setTimeout(function(){window.scrollTo(scrollX,scrollY);},0);this.blur();return settings.bookmarkable&&!!trueClick;});if(settings.bookmarkable){$.ajaxHistory.initialize(function(){tabs.eq(settings.initial).trigger('click').end();});}});};var tabEvents=['triggerTab','disableTab','enableTab'];for(var i=0;i<tabEvents.length;i++){$.fn[tabEvents[i]]=(function(tabEvent){return function(tab){return this.each(function(){var nav=$('ul.tabs-nav',this);nav=nav.size()&&nav||$('>ul:eq(0)',this);var a;if(!tab||typeof tab=='number'){a=$('li a',nav).eq((tab&&tab>0&&tab-1||0));}else if(typeof tab=='string'){a=$('li a[@href$="#'+tab+'"]',nav);}a.trigger(tabEvent);});};})(tabEvents[i]);}$.fn.activeTab=function(){var selectedTabs=[];this.each(function(){var nav=$('ul.tabs-nav',this);nav=nav.size()&&nav||$('>ul:eq(0)',this);var lis=$('li',nav);selectedTabs.push(lis.index(lis.filter('.tabs-selected')[0])+1);});return selectedTabs[0];};})(jQuery);
\ No newline at end of file
diff --git a/dist/jquery.js.html b/dist/jquery.js.html
index 0f6e7bf73545a8f382add32fd4f41b9a7cbbd459..efae610716e0f0cda2ceff9eee368858b63018f2 100644
--- a/dist/jquery.js.html
+++ b/dist/jquery.js.html
@@ -17,6 +17,7 @@
 [(#INCLURE{javascript/jquery.js}|compacte_js)]
 [(#INCLURE{javascript/form.js}|compacte_js)]
 [(#INCLURE{javascript/ajaxCallback.js}|compacte_js)]
+[(#INCLURE{javascript/jquery.tabs.min.js}|compacte_js)]
 
 [(#REM) js ajoutee par les plugin et a la volee]
 [(#ENV{script}|charge_scripts|compacte_js)]
diff --git a/dist/jquery.tabs-ie.css b/dist/jquery.tabs-ie.css
new file mode 100644
index 0000000000000000000000000000000000000000..b0dd7f4ec661cfbc3112cdf7facd440556b717ea
--- /dev/null
+++ b/dist/jquery.tabs-ie.css
@@ -0,0 +1,20 @@
+/*
+Tabs - additional IE specific bug fixes
+
+Recommended usage (Conditional Comments):
+<!--[if lte IE 7]>
+<link rel="stylesheet" href="tabs_ie.css" type="text/css" media="projection, screen" />
+<![endif]-->
+
+*/
+.tabs-nav { /* auto clear */
+    display: inline-block;
+}
+.tabs-nav .tabs-disabled {
+    position: relative; /* fixes opacity */
+    filter: alpha(opacity=40);
+}
+.tabs-nav .tabs-disabled a span {
+    _height: 19px; /* for some reason the height is 1px to less with opacity... */
+    min-height: 19px; /* ...in both IE 6 and 7 */
+}
diff --git a/dist/jquery.tabs.css b/dist/jquery.tabs.css
new file mode 100644
index 0000000000000000000000000000000000000000..e65a42f314618c2642185907d4dd4a4616164703
--- /dev/null
+++ b/dist/jquery.tabs.css
@@ -0,0 +1,96 @@
+/* Caution! Ensure accessibility in print and other media types... */
+@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
+    .tabs-hide {
+        display: none;
+    }
+}
+
+/* Hide useless elements in print layouts... */
+@media print {
+    .tabs-nav {
+        display: none;
+    }
+}
+
+/* Skin */
+.tabs-nav {
+    list-style: none;
+    margin: 0;
+    padding: 0 0 0 4px;
+}
+.tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
+    display: block;
+    clear: both;
+    content: " ";
+}
+.tabs-nav li {
+    float: left;
+    margin: 0 0 0 1px;
+    min-width: 84px; /* be nice to Opera */
+}
+.tabs-nav a, .tabs-nav a span {
+    display: block;
+    padding: 0 10px;
+    background: url(dist/images/tab.png) no-repeat;
+}
+.tabs-nav a {
+    position: relative;
+    top: 1px;
+    z-index: 2;
+    padding-left: 0;
+    color: #000;
+    font-size: 1em;
+    line-height: 1.2;
+    text-align: center;
+    text-decoration: none;
+    white-space: nowrap; /* required in IE 6 */    
+}
+.tabs-nav .tabs-selected a {
+    color: #000;
+}
+.tabs-nav .tabs-selected a, .tabs-nav a:hover, .tabs-nav a:focus, .tabs-nav a:active {
+    background-position: 100% -150px;
+    outline: 0; /* prevent dotted border in Firefox */
+}
+.tabs-nav a, .tabs-nav .tabs-disabled a:hover, .tabs-nav .tabs-disabled a:focus, .tabs-nav .tabs-disabled a:active {
+    background-position: 100% -100px;
+}
+.tabs-nav a span {
+    width: 64px; /* IE 6 treats width as min-width */
+    min-width: 64px;
+    height: 18px; /* IE 6 treats height as min-height */
+    min-height: 18px;
+    padding-top: 6px;
+    padding-right: 0;
+}
+*>.tabs-nav a span { /* hide from IE 6 */
+    width: auto;
+    height: auto;
+}
+.tabs-nav .tabs-selected a span {
+    padding-top: 7px;
+}
+.tabs-nav .tabs-selected a span, .tabs-nav a:hover span, .tabs-nav a:focus span, .tabs-nav a:active span {
+    background-position: 0 -50px;
+}
+.tabs-nav a span, .tabs-nav .tabs-disabled a:hover span, .tabs-nav .tabs-disabled a:focus span, .tabs-nav .tabs-disabled a:active span {
+    background-position: 0 0;
+}
+.tabs-nav .tabs-selected a:link, .tabs-nav .tabs-selected a:visited, .tabs-nav .tabs-disabled a:link, .tabs-nav .tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
+    cursor: text;
+}
+.tabs-nav a:hover, .tabs-nav a:focus, .tabs-nav a:active { /* @ Opera, we need to be explicit again here now... */
+    cursor: pointer;
+}
+.tabs-nav .tabs-disabled {
+    opacity: .4;
+}
+.tabs-container {
+    border-top: 1px solid #999;
+    padding: 1em 0 0 0;
+    background: #f8f7f3; /* declare background color for container to avoid distorted fonts in IE while fading */
+}
+.tabs-loading em {
+    padding: 0 0 0 20px;
+    background: url(dist/images/loading.gif) no-repeat 0 50%;
+}
diff --git a/dist/prive/article_infos.html b/dist/prive/article_infos.html
new file mode 100644
index 0000000000000000000000000000000000000000..fcbfb4ca03e494e4c1d61d88bc202d802f432f8a
--- /dev/null
+++ b/dist/prive/article_infos.html
@@ -0,0 +1,11 @@
+<BOUCLE_art(ARTICLES){id_article=#ENV{id}}{statut?}>
+<div class='infos'>
+<div class='numero'><:info_numero_article:><p>#ID_ARTICLE</p></div>
+[(#ID_ARTICLE|instituer_article{#ID_RUBRIQUE,#STATUT})]
+<p class='origine'>[(#DATE|affdate)][<br /><:par_auteur:><span class='lesauteurs'> (#LESAUTEURS|couper{150})]</span><p>
+<BOUCLE_docs(DOCUMENTS){id_article}></BOUCLE_docs><p class='nb_docs'>#TOTAL_BOUCLE <:documents:></p><//B_docs>
+<p class='statistiques'>Cet article a une popularite de #POPULARITE et a re&ccedil;u #VISITES visites</p>
+<p class='forums'>xx messages de forums</p>
+<p class='signatues'>xx signatures</p>
+</div>
+</BOUCLE_art>
\ No newline at end of file
diff --git a/dist/prive/article_infos_fonctions.php b/dist/prive/article_infos_fonctions.php
new file mode 100644
index 0000000000000000000000000000000000000000..b2e1e13cea54221ea08afb5e5551721c614b5d8f
--- /dev/null
+++ b/dist/prive/article_infos_fonctions.php
@@ -0,0 +1,10 @@
+<?php
+function instituer_article($id_article, $id_rubrique, $statut=-1){
+	$statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique);
+	if ($statut_rubrique) {
+		$instituer_article = charger_fonction('instituer_article', 'inc');
+		return $instituer_article($id_article,$statut);
+	}
+	return "";
+}
+?>
\ No newline at end of file
diff --git a/dist/prive/breve_infos.html b/dist/prive/breve_infos.html
new file mode 100644
index 0000000000000000000000000000000000000000..6d04bab7e0784c17ea5848f573fa3b9cbc4a8559
--- /dev/null
+++ b/dist/prive/breve_infos.html
@@ -0,0 +1,9 @@
+<BOUCLE_breve(BREVES){id_breve=#ENV{id}}{statut?}>
+<div class='infos'>
+<div class='numero'><:info_gauche_numero_breve:><p>#ID_BREVE</p></div>
+[(#ID_BREVE|instituer_breve{#ID_RUBRIQUE,#STATUT})]
+<p class='origine'>[(#DATE|affdate)]</span><p>
+<BOUCLE_docs(DOCUMENTS){id_breve}></BOUCLE_docs><p class='nb_docs'>#TOTAL_BOUCLE <:documents:></p><//B_docs>
+<p class='forums'>xx messages de forums</p>
+</div>
+</BOUCLE_breve>
\ No newline at end of file
diff --git a/dist/prive/breve_infos_fonctions.php b/dist/prive/breve_infos_fonctions.php
new file mode 100644
index 0000000000000000000000000000000000000000..812f599635bad4cb4b5c804ce08a1cecccc08ff2
--- /dev/null
+++ b/dist/prive/breve_infos_fonctions.php
@@ -0,0 +1,10 @@
+<?php
+function instituer_breve($id_breve, $id_rubrique, $statut=-1){
+	$statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique);
+	if ($statut_rubrique) {
+		$instituer_breve = charger_fonction('instituer_breve', 'inc');
+		return $instituer_breve($id_breve,$statut);
+	}
+	return "";
+}
+?>
\ No newline at end of file
diff --git a/dist/prive/rubrique_infos.html b/dist/prive/rubrique_infos.html
new file mode 100644
index 0000000000000000000000000000000000000000..53b4ad160315b4af48f8185d2689794dff3605da
--- /dev/null
+++ b/dist/prive/rubrique_infos.html
@@ -0,0 +1,7 @@
+<BOUCLE_rub(RUBRIQUES){id_rubrique=#ENV{id}}{statut?}>
+<div class='infos'>
+<div class='numero'><:titre_numero_rubrique:><p>#ID_RUBRIQUE</p></div>
+<BOUCLE_docs(DOCUMENTS){id_article}></BOUCLE_docs><p class='nb_docs'>#TOTAL_BOUCLE <:documents:></p><//B_docs>
+[<p class='forums'>(#ENV{n_forums,''}|?{' '})[(#VAL{icone_suivi_forum}|_T{#ARRAY{nb_forums,#ENV{n_forums}}})]</p>]
+</div>
+</BOUCLE_rub>
\ No newline at end of file
diff --git a/dist/prive/site_infos.html b/dist/prive/site_infos.html
new file mode 100644
index 0000000000000000000000000000000000000000..410b8266e4f1319c03e658a7da3391fd3885c542
--- /dev/null
+++ b/dist/prive/site_infos.html
@@ -0,0 +1,9 @@
+<BOUCLE_site(SITES){id_syndic=#ENV{id}}{statut?}>
+<div class='infos'>
+<div class='numero'><:titre_site_numero:><p>#ID_SYNDIC</p></div>
+[(#ID_SYNDIC|instituer_site{#ID_RUBRIQUE,#STATUT})]
+<BOUCLE_docs(DOCUMENTS){id_syndic}></BOUCLE_docs><p class='nb_docs'>#TOTAL_BOUCLE <:documents:></p><//B_docs>
+<p class='forums'>xx messages de forums</p>
+<p class='signatues'>xx signatures</p>
+</div>
+</BOUCLE_site>
\ No newline at end of file
diff --git a/dist/prive/site_infos_fonctions.php b/dist/prive/site_infos_fonctions.php
new file mode 100644
index 0000000000000000000000000000000000000000..0a8542b5aa8d89d608f283933f8529d4dfec4951
--- /dev/null
+++ b/dist/prive/site_infos_fonctions.php
@@ -0,0 +1,10 @@
+<?php
+function instituer_site($id_syndic, $id_rubrique, $statut=-1){
+	$statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique);
+	if ($statut_rubrique) {
+		$instituer_site = charger_fonction('instituer_site', 'inc');
+		return $instituer_site($id_syndic,$statut);
+	}
+	return "";
+}
+?>
\ No newline at end of file
diff --git a/dist/style_prive.html b/dist/style_prive.html
index 6d3f81a91a2e812cb186593b233a03daf1447f8b..a53819e6851f8358439f3fbc0e13ef13220e67bc 100644
--- a/dist/style_prive.html
+++ b/dist/style_prive.html
@@ -35,7 +35,7 @@ body {
 	scrollbar-track-color: #GET{foncee};
 	scrollbar-arrow-color: #GET{foncee};
 }
-body, body * { font-family: Verdana, Geneva, Sans, sans-serif; }
+body, body * { font-size:100%;font-family: Verdana, Geneva, Sans, sans-serif; }
 
 /* Espaceur de blocs */
 .nettoyeur { clear: both; margin: 0; padding: 0; border: none; height: 0; line-height: 1px; font-size: 1px; }
@@ -44,18 +44,27 @@ body, body * { font-family: Verdana, Geneva, Sans, sans-serif; }
 .invisible { position: absolute; top: -3000em; height: 1%; }
 .none { display: none; }
 
+#page {font-size:small;}
 /* ecran etroit*/
-#conteneur,.table_page {margin:0 auto;text-align:left;width:750px;}
+#conteneur,.table_page {clear:both;margin-left:auto;margin-right:auto;text-align:left;width:750px;}
 #navigation {float:left;width:200px;min-height:100px;}
-#contenu {float:left;margin-left:35px;width:500px;}
+#contenu {float:left;margin-left:30px;width:505px;}
 #extra {float:left;width:200px;}
 
 /* ecran large*/
-.large #conteneur,.large .table_page {margin:0 auto;text-align:left;width:950px;}
+.large #conteneur,.large .table_page {margin-left:auto;margin-right:auto;text-align:left;width:950px;}
 .large #navigation {float:left;width:200px;}
 .large #contenu {float:left;margin-left:17px;width:540px;}
 .large #extra {float:right;width:170px;}
 
+div.table_page {margin-top:1em;}
+#contenu {font-size:small;}
+
+ul#chemin {font-size:0.9em;}
+ul#chemin li {list-style:none;float:#GET{left};}
+ul#chemin,ul#chemin ul,ul#chemin li {margin:0;padding:0;}
+ul#chemin ul,ul#chemin li,ul#chemin li span {display:block;float:#GET{left};}
+
 h1 { 
 	color: #GET{foncee};
 	font-size:large;
@@ -379,64 +388,57 @@ a.icone26:hover img {
 }
 
 
-.icone36, icone36-danger {
+.icone36 {
 	border: none;
-	padding: 0;
+	padding: 5px 0;
 	margin: 0;
 	text-align: center;
 	text-decoration: none;
+	font-size: x-small;
+	width:72px;
 }
-.icone36 a, .icone36 a:hover, icone36-danger a, .icone36-danger a:hover {
+.icone36 a, .icone36 a,a.icone36, a.icone36:hover {
 	text-decoration: none;
 }
-.icone36 a img, .icone36 img {
-	margin: 0; 
+.icone36 a img, a.icone36 img {
+	margin: 0 auto;
 	display: inline;
 	padding: 4px;
 	background-color: #eee;
 	border: 2px solid #GET{foncee};
 }
-.icone36 a:hover img {
-	margin: 0; 
-	display: inline;
-	padding: 4px;
+.icone36 a:hover img,a.icone36:hover img {
 	background-color: #fff;
 	border: 2px solid #666;
 }
-.icone36-danger img {
-	margin: 0; 
-	display: inline;
-	padding: 3px;
+.icone36.danger img {
 	background-color: #fff;
 	border: 2px solid #ff9999;
 }
-.icone36-danger a:hover img {
-	margin: 0; 
-	display: inline;
-	padding: 3px;
+.icone36.danger a:hover img,a.icone36.danger:hover img {
 	background-color: #fff;
 	border: 2px solid red;
 }
-.icone36-danger span {
-	font-weight: bold;
-	font-size: 10px;
-	color: red; display: block; margin: 2px;
-	width: 100%
-}
 .icone36 span {
 	font-weight: bold;
-	font-size: 10px;
 	color: #GET{foncee}; 
 	display: block; 
-	margin: 2px;
-	width: 100%
-}
-.icone36 a:hover span {
-	font-weight: bold;
-	font-size: 10px;
-	color: #000; display: block; margin: 2px;
+	margin: 2px auto;
 	width: 100%;
+	height:3em;
+}
+.icone36 a:hover span,a.icone36:hover span {
+	color: #000; 
 }
+.icone36.danger span {
+	color: #ff9999;
+}
+.icone36.danger a:hover span,a.icone36.danger:hover span {
+	color: red; 
+}
+a.icone36.historique-24 {width:90px;}
+a.icone36.suivi-forum-24 {width:100px;}
+
 
 
 /* Icones 48 * 48 et 24 * 24 */
@@ -1922,3 +1924,64 @@ div.puce_article_popup, span.puce_article_popup {
 div.puce_breve_popup, span.puce_breve_popup {
 	width: 27px; 
 }
+
+[(#INCLURE{dist/jquery.tabs.css})]
+.boite_onglets {clear:both;margin-top:15px;}
+.tabs-nav a { color: #GET{foncee};}
+/* generique */
+
+#contenu #voir span.label {margin-top:1em;font-size:x-small;display:block;clear:both;font-style:italic;}
+#contenu #voir span p { margin-top:0;}
+#navigation .infos .numero {font-size:x-small;font-weight:bold;text-align:center;}
+#navigation .infos .numero p {
+	font-size:x-large;margin:5px 0;color:#333;
+	font-family: verdana, helvetica, arial, sans;
+}
+#contenu .bandeau_actions {border-top:1px solid #eee;border-bottom:1px solid #eee;margin:5px 0;clear:both;}
+#contenu .bandeau_actions a:hover {background:#fff;}
+#contenu .logo_titre {float:#GET{right};margin:5px 0;margin-#GET{left}:5px;}
+
+ul.instituer {
+	/*float:#GET{right};*/
+	text-align:#GET{left};
+	border-top:1px solid #eee;
+	border-bottom:1px solid #eee;
+	margin :0;
+	padding:5px 0;
+	/*font-size:0.9em;*/
+}
+ul.instituer li {list-style:none;margin:0;padding:0;}
+ul.instituer li ul {margin:0;padding:0;}
+ul.instituer li ul li a { display:block;}
+ul.instituer li ul li img {margin:1px 1px -1px;margin-#GET{right}:5px;visibility:hidden;border:1px solid #f8f7f3;}
+ul.instituer li.selected img,ul.instituer li a:hover img {visibility:visible;}
+ul.instituer a:hover {background:#eee;}
+ul.instituer li.prepa.selected a,ul.instituer li.prepa a:hover {background:#fff;}
+ul.instituer li.prop.selected a,ul.instituer li.prop a:hover {background:#f89058;color:#fff;}
+ul.instituer li.publie.selected a,ul.instituer li.publie a:hover {background:#9dba00;color:#fff;}
+ul.instituer li.poubelle.selected a,ul.instituer li.poubelle a:hover {background:#000;}
+ul.instituer li.refuse.selected a,ul.instituer li.refuse a:hover {background:#ff0000;color:#fff;}
+
+#voir.tabs-container {background:#fff; padding:5px;border:1px solid #999;}
+
+/* exec/articles */
+.articles h1 {color:#000;font-size:large;margin-top:5px;}
+#voir .article_prop {text-align:center;font-weight:bold;font-size:small;color:red;}
+
+/* exec/naviguer */
+.naviguer h1 {color:#000;font-size:large;margin-top:5px;}
+#contenu div.gauche {width:49%;float:#GET{left};}
+#contenu div.droite {width:49%;float:#GET{right};}
+
+/* exec/sites */
+.sites h1 {color:#000;font-size:large;margin-top:5px;}
+#voir .site_prop {text-align:center;font-weight:bold;font-size:small;color:red;}
+#voir .site_syndique {font-weight:bold;text-align:center;}
+#voir .site_syndique img {vertical-align:middle;}
+#voir .date_syndic {margin-top:1em;}
+#voir .mise_a_jour_syndic { float:#GET{right};}
+
+/* exec/breves_voir */
+.breves h1 {color:#000;font-size:large;margin-top:5px;}
+#voir .breve_prop {text-align:center;font-weight:bold;font-size:small;color:red;}
+#props .langue {text-align:center;}
\ No newline at end of file
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index fcb72fd6a0206ba83435844a493c3174551a2e86..67367b7ff8df14776444b8632b2c5dd7ca4f6d3c 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -29,15 +29,12 @@ function exec_articles_dist()
 		$res = $row['titre'] = _T('public:aucun_article');
 		$row['id_rubrique'] = 0;
 	} else {
-		$discuter = charger_fonction('discuter', 'inc');
 		$row['titre'] = sinon($row["titre"],_T('info_sans_titre'));
 
 		$res = debut_gauche('accueil',true)
 		.  articles_affiche($id_article, $row, _request('cherche_auteur'), _request('ids'), _request('cherche_mot'), _request('select_groupe'), _request('trad_err'))
 		  . "<br /><br /><div class='centered'>"
-		  . icone_inline(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=prive&id=$id_article&script=articles") ."#formulaire", "forum-interne-24.gif", "creer.gif")
 		. "</div>"
-		. $discuter($id_article, false,  _request('debut'))
 		. fin_gauche()
 ;
 	}
@@ -98,6 +95,18 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot
 	$editer_mot = charger_fonction('editer_mot', 'inc');
 	$editer_auteurs = charger_fonction('editer_auteurs', 'inc');
 	$referencer_traduction = charger_fonction('referencer_traduction', 'inc');
+	$discuter = charger_fonction('discuter', 'inc');
+
+	$logo = '';
+ 	$chercher_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
+	if ($chercher_logo) {
+		$chercher_logo = charger_fonction('chercher_logo', 'inc');
+		if ($logo = $chercher_logo($id_article, 'id_article', 'on')) {
+			list($fid, $dir, $nom, $format) = $logo;
+			include_spip('inc/filtres_images');
+			$logo = image_reduire("<img src='$fid' alt='' />", 75, 60);
+		}
+	}
 
 	if ($flag_editable AND ($spip_display != 4)) {
 		$iconifier = charger_fonction('iconifier', 'inc');
@@ -114,59 +123,81 @@ function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot
 		)
 	));
 
-	$res =
-		debut_boite_info(true). $boite . fin_boite_info(true)
-	.	$icone
-
-	.	boites_de_config_articles($id_article)
-	.	($flag_editable ? boite_article_virtuel($id_article, $virtuel):'')
-	.	meme_rubrique($id_rubrique, $id_article, 'article')
-
-	.	 pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
-
-	.	creer_colonne_droite('', true)
-
-	.	pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
-
-	.	debut_droite('',true);
+	$navigation =
+	  debut_boite_info(true). $boite . fin_boite_info(true)
+	  . ($flag_editable ? boite_article_virtuel($id_article, $virtuel):'')
+	  . meme_rubrique($id_rubrique, $id_article, 'article')
+	  . pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''));
+	
+	$extra = creer_colonne_droite('', true)
+	  . pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
+	  . debut_droite('',true);
 
-// affecter les globales dictant les regles de typographie de la langue
+	// affecter les globales dictant les regles de typographie de la langue
 	changer_typo($row['lang']);
+	
+	$actions = 
+		voir_en_ligne('article', $id_article, $statut_article, 'racine-24.gif', false)
+	 . ($flag_editable ? bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif",$spip_lang_right) : "")
+	 . icone_inline(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=prive&id=$id_article&script=articles") ."#formulaire", "forum-interne-24.gif", "creer.gif", $spip_lang_left);
+	 
+	// revisions d'articles
+	if (($GLOBALS['meta']["articles_versions"]=='oui')
+		AND $row['id_version']>1
+		AND autoriser('voirrevisions', 'article', $id_article))
+			$actions .= icone_inline(_T('info_historique_lien'), generer_url_ecrire("articles_versions","id_article=$id_article"), "historique-24.gif", "rien.gif", $spip_lang_left);
+
+	// statistiques
+	if ($row['statut'] == 'publie'
+		AND $row['visites'] > 0
+		AND $GLOBALS['meta']["activer_statistiques"] != "non"
+		AND autoriser('voirstats', $type, $id))
+			$actions .= icone_inline(_T('icone_evolution_visites', array('visites' => $row['visites'])), generer_url_ecrire("statistiques_visites","id_article=$id"), "statistiques-24.gif","rien.gif", $spip_lang_left);
+
+	$actions .= "<div class='nettoyeur'></div>";
+	
+	$haut =
+		($logo ? "<div class='logo_titre'>$logo</div>" : "")
+		. gros_titre($titre, '' , false)
+		. "<div class='bandeau_actions'>$actions</div>";
+
+	$onglet_contenu = array(_L('Contenu'),
+	  afficher_corps_articles($virtuel,$statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $chapo, $texte, $ps, $extra)
+	  );
+
+	$onglet_proprietes = array(_L('Propri&eacute;t&eacute;s'),
+	  $dater($id_article, $flag_editable, $statut_article, 'article', 'articles', $date, $date_redac)
+	  . $editer_auteurs('article', $id_article, $flag_editable, $cherche_auteur, $ids)
+	  . (!$editer_mot ? '' : $editer_mot('article', $id_article, $cherche_mot, $select_groupe, $flag_editable))
+	  . (!$referencer_traduction ? '' : $referencer_traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err))
+	  . pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
+	  );
+
+	$onglet_documents = array(_L('Documents'),
+	  $icone
+	  . articles_documents('article', $id_article)
+	  );
+	
+	$onglet_interactivite = array(_L('Interactivit&eacute;'),
+	  boites_de_config_articles($id_article)
+		);
+		
+	$onglet_discuter = array(_L('Discuter'),
+		$discuter($id_article, false,  _request('debut'))
+		);
 
-	return $res
-	. debut_cadre_relief('', true)
-	. titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique, $modif)
-	. "\n<div style='margin-top: 10px' class='serif'>"
-
-	. $dater($id_article, $flag_editable, $statut_article, 'article', 'articles', $date, $date_redac)
-
-	. $editer_auteurs('article', $id_article, $flag_editable, $cherche_auteur, $ids)
-
-	. (!$editer_mot ? '' : $editer_mot('article', $id_article, $cherche_mot, $select_groupe, $flag_editable))
-
-	. (!$referencer_traduction ? '' : $referencer_traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err))
-
-	. pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
-
-	. (!$statut_rubrique ? ''
-	 : (debut_cadre_relief('', true)
-		. $instituer_article($id_article, $statut_article)
-		. fin_cadre_relief(true)))
-
-	. "\n<div style='text-align: justify; padding: 10px;'>"
-	. afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra)
-
-	. (!$flag_editable ? ''
-	   :  (bouton_modifier_articles($id_article, $id_rubrique, $modif,_T('texte_travail_article', $modif), "warning-24.gif", '', 'right') . "<br class='nettoyeur' />"))
-	. (($spip_display == 4) ? ''
-	 : articles_documents('article', $id_article))
 
-	. (($statut_article == 'prepa' AND !$statut_rubrique
-	AND spip_num_rows(auteurs_article($id_article, " id_auteur=$connect_id_auteur")))
-	 ? $instituer_article($id_article)
-	 : '')
-	. "</div></div>"
-	. fin_cadre_relief(true);
+	return 
+	  $navigation
+	  . $extra 
+	  . $haut 
+	  . afficher_onglets_pages(array(
+	    //'resume'=>$onglet_resume,
+	    'voir'=>$onglet_contenu,
+	    'props'=>$onglet_proprietes,
+	    'docs'=>$onglet_documents,
+	    'interactivite'=>$onglet_interactivite,	    
+	    'discuter'=>$onglet_discuter));
 }
 
 // http://doc.spip.org/@articles_documents
@@ -285,48 +316,8 @@ function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode,
 	else return icone_inline(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), "article-24.gif", "edit.gif", $align);
 }
 
-// http://doc.spip.org/@titres_articles
-function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique, $modif)
-{
-	global  $lang_objet, $spip_lang_left, $spip_lang_right;
-
-	$lang_dir = lang_dir($lang_objet);
-
-	$res = '';
-	if ($flag_editable) {
-		$res .= bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif",$spip_lang_right);
-	}
-
-	if ($surtitre) {
-		$res .= "<span  dir='$lang_dir' class='arial1 spip_medium'><b>" . typo($surtitre) . "</b></span>\n";
-	}
-	 
-	$res .= gros_titre($titre, puce_statut($statut_article, " style='vertical-align: center'") . " &nbsp; ", false);
-
-	
-	if ($soustitre) {
-		$res .= "<span  dir='$lang_dir' class='arial1 spip_medium'><b>" . typo($soustitre) . "</b></span>\n";
-	}
-	$res .= "<div class='nettoyeur'></div>";
-	if ($descriptif OR $url_site OR $nom_site) {
-
-		$texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : '';
-
-		$texte_case .=  ($nom_site OR $url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : '';
-
-		$res .= "<br />\n<div  dir='$lang_dir' style='padding: 4px; border: 1px dashed #aaaaaa; background-color: #e4e4e4; text-align: $spip_lang_left;' class='Verdana1 spip_x-small'>"
-		. propre($texte_case)
-		. "</div>";
-	}
-	
-	if ($statut_article == 'prop')
-		$res .= "<p style='color: red' class='verdana1 spip_small'><b>"._T('text_article_propose_publication')."</b></p>";
-	
-	return $res;
-}
-
 // http://doc.spip.org/@afficher_corps_articles
-function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
+function afficher_corps_articles($virtuel, $statut_article, $surtitre, $soustitre, $descriptif, $url_site, $nom_site, $chapo, $texte, $ps,  $extra)
 {
   global $champs_extra, $les_notes, $lang_objet;
 
@@ -335,6 +326,9 @@ function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
 global $id_article;
 
 	$res = '';
+	
+	if ($statut_article == 'prop')
+		$res .= "<p class='article_prop'>"._T('text_article_propose_publication')."</p>";
 
 	if ($virtuel) {
 		$res .= debut_boite_info(true)
@@ -344,36 +338,48 @@ global $id_article;
 		.  propre("[->$virtuel]")
 		. '</div>'
 		.  fin_boite_info(true);
-	} else {
-
-		if (strlen($chapo) > 0) {
-			$res .= "\n<div  dir='$lang_dir' style='font-weight: bold;' class='spip_small crayon article-chapo-$id_article'>"
-			. propre($chapo)
-			. "</div>";
-		}
-
-		if (strlen($texte) > 0) {
-			$res .= "\n<div  dir='$lang_dir' class='crayon article-texte-$id_article'>"
-			.  propre($texte)
-			.  "<div class='nettoyeur'></div>"
-			.  "</div>";
-		}
-
-		if (strlen($ps)) {
-			$res .= debut_cadre_enfonce('',true)
-			. "\n<div  dir='$lang_dir' style='font-size: small;' class='verdana1 crayon article-ps-$id_article'>"
-			. justifier("<b>"._T('info_ps')."</b> ".propre($ps))
-			. "</div>"
-			. fin_cadre_enfonce(true);
-		}
-
-		if ($les_notes) {
-			$res .= debut_cadre_relief('',true)
-			. "\n<div  dir='$lang_dir' class='arial11'>"
-			. justifier("<b>"._T('info_notes')."&nbsp;:</b> ".$les_notes)
-			. "</div>"
-			. fin_cadre_relief(true);
-		}
+	}
+	else {
+		if (strlen($surtitre)>0)
+			$res .= 
+			  "<span class='label'>"._T('texte_sur_titre')."</span>"
+			  . "<span  dir='$lang_dir' class='surtitre crayon article-surtitre-$id_article'>" . typo($surtitre) . "</span>\n";
+
+		if (strlen($soustitre)>0)
+			$res .= 
+			  "<span class='label'>"._T('texte_sous_titre')."</span>"
+			  . "<span  dir='$lang_dir' class='soustitre crayon article-soustitre-$id_article'>" . typo($soustitre) . "</span>\n";
+
+		if (strlen($descriptif)>0)
+			$res .= 
+			  "<span class='label'>"._T('info_descriptif')."</span>"
+			  . "<span  dir='$lang_dir' class='descriptif crayon article-descriptif-$id_article'>" . propre($descriptif) . "</span>\n";
+			
+		if ($url_site OR $nom_site)
+			$res .= 
+			  "<span class='label'>"._T('entree_liens_sites')."</span>"
+			  . "<span  dir='$lang_dir' class='url_site crayon article-url_site-$id_article'>" . propre("[".$nom_site."->".$url_site."]") . "</span>\n";
+	
+		if (strlen($chapo) > 0) 
+			$res .= 
+			  "<span class='label'>"._T('info_chapeau')."</span>"
+			  . "<span  dir='$lang_dir' class='chapo crayon article-chapo-$id_article'>" . propre($chapo) . "</span>\n";
+
+		if (strlen($texte) > 0)
+			$res .= 
+			  "<span class='label'>"._T('info_texte')."</span>"
+			  . "<span  dir='$lang_dir' class='texte crayon article-texte-$id_article'>" . propre($texte) . "</span>\n";
+
+		if (strlen($ps) > 0)
+			$res .= 
+			  "<span class='label'>"._T('info_ps')."</span>"
+			  . "<span  dir='$lang_dir' class='ps crayon article-ps-$id_article'>" . propre($ps) . "</span>\n";
+
+		if ($les_notes)
+			$res .= 
+			  "<span class='label'>"._T('info_notes')."</span>"
+			  . "<span  dir='$lang_dir' class='notes'>"
+			  . justifier($les_notes);
 		
 		if ($champs_extra AND $extra) {
 			include_spip('inc/extra');
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 31c6e957c40a459f6803e1bbb00e90baff6ed420..418abc8d7291fd395c6ac4e8ed8651ed719b52d2 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -20,7 +20,7 @@ include_spip("inc/indexation");
 // http://doc.spip.org/@afficher_breves_voir
 function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 {
-	global $champs_extra, $les_notes, $spip_display;
+	global $champs_extra, $les_notes, $spip_display, $spip_lang_left, $spip_lang_right;
 	$result = spip_query("SELECT * FROM spip_breves WHERE id_breve=$id_breve");
 
 	if ($row = sql_fetch($result)) {
@@ -70,35 +70,19 @@ function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 	echo $commencer_page("&laquo; $titre_breve &raquo;", "naviguer", "breves", $id_rubrique);
 	
 	echo debut_grand_cadre(true);
-	
 	echo afficher_hierarchie($id_rubrique);
-	
 	echo fin_grand_cadre(true);
-	if (!$row) {echo _T('public:aucune_breve'); exit;}
-	echo debut_gauche('', true);
 	
-	echo debut_boite_info(true);
-	
-	$res = "\n<div style='font-weight: bold; text-align: center' class='verdana1 spip_xx-small'>" 
-	. _T('info_gauche_numero_breve')
-	. "<br /><span class='spip_xx-large'>"
-	. $id_breve
-	. '</span></div>';
-
-	echo $res;
-	echo voir_en_ligne ('breve', $id_breve, $statut,'', false);
+	echo debut_gauche('', true);
 	
-	echo fin_boite_info(true);
-
-
-	//////////////////////////////////////////////////////
-	// Logos de la breve
-	//
-
-	if (($spip_display != 4) AND $id_breve>0 AND autoriser('publierdans','rubrique',$id_rubrique)) {
-		$iconifier = charger_fonction('iconifier', 'inc');
-		echo $iconifier('id_breve', $id_breve, 'breves_voir'); 
-	}
+	echo debut_boite_info(true)
+	  . pipeline ('boite_infos', array('data' => '',
+		'args' => array(
+			'type'=>'breve',
+			'id' => $id_breve,
+			'row' => $row
+		)))
+		. fin_boite_info(true);
 
 	echo pipeline('affiche_gauche',
 		array(
@@ -106,29 +90,26 @@ function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 		'data'=>''
 		)
 	);
-
-	echo bloc_des_raccourcis(icone_horizontale(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","new=oui&id_rubrique=$id_rubrique"), "breve-24.gif","creer.gif", false));
-
-	
-
 	echo creer_colonne_droite('', true);
-
 	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');
 
-	echo debut_droite('', true);
+	if (($spip_display != 4) AND $id_breve>0 AND autoriser('publierdans','rubrique',$id_rubrique))
+		$iconifier = charger_fonction('iconifier', 'inc');
+	if ($flag_editable AND ($statut == 'publie'))
+		$dater = charger_fonction('dater', 'inc');
+	$editer_mot = charger_fonction('editer_mot', 'inc');
+	if ($champs_extra AND $extra)
+		include_spip('inc/extra');
 	
-	echo debut_cadre_relief("breve-24.gif", true);
-	//echo "</td>";
-
-	if ($flag_editable) {
-		echo icone_inline(
+	$actions = 
+		voir_en_ligne('article', $id_article, $statut_article, 'racine-24.gif', false)
+	  . ($flag_editable ? icone_inline(
 			// TODO -- _L("Fil a travaille sur cette breve il y a x minutes")
 			!$modif ? _T('icone_modifier_breve')
 				: _T('texte_travail_article', $modif),
@@ -136,104 +117,118 @@ function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 			!$modif ? "breve-24.gif" : "warning-24.gif",
 			!$modif ? "edit.gif" : '',
 			$GLOBALS['spip_lang_right']
-		);
-	}
-	echo gros_titre($titre,'', false). "<br class='nettoyeur' />";
-
-	if ($flag_editable AND ($statut == 'publie')) {
-	
-		if ($statut == 'publie') {	
-	
-			$dater = charger_fonction('dater', 'inc');
-			echo $dater($id_breve, $flag_editable, $statut, 'breve', 'breves_voir', $date_heure);
-		}
-		else {
-			echo "<p><span class='verdana1 spip_medium'><b>".affdate($date_heure)."&nbsp;</b></span></p>";
+		) : "")
+	 . icone_inline(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","new=oui&id_rubrique=$id_rubrique"), "breve-24.gif","creer.gif", $spip_lang_left)
+	 . icone_inline(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=prive&id=$id_breve&script=breves_voir") . '#formulaire', "forum-interne-24.gif", "creer.gif", $spip_lang_left);
+	/*
+	if (autoriser('publierdans','rubrique',$id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
+		$actions .= icone_inline(_T('icone_refuser_breve'), 
+		      redirige_action_auteur('editer_breve', "$id_breve-statut-refuse", "breves_voir","id_breve=$id_breve"), "breve-24.gif", "supprimer.gif", $spip_lang_right);
+		$actions .= icone_inline(_T('icone_publier_breve'), 
+		      redirige_action_auteur('editer_breve',"$id_breve-statut-publie","breves_voir","id_breve=$id_breve"), "breve-24.gif", "racine-24.gif", $spip_lang_right);
+		echo "</div>";
+	}	*/
+	 
+	$actions .= "<div class='nettoyeur'></div>";
+	
+	$logo = '';
+ 	$chercher_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
+	if ($chercher_logo) {
+		$chercher_logo = charger_fonction('chercher_logo', 'inc');
+		if ($logo = $chercher_logo($id_breve, 'id_breve', 'on')) {
+			list($fid, $dir, $nom, $format) = $logo;
+			include_spip('inc/filtres_images');
+			$logo = image_reduire("<img src='$fid' alt='' />", 75, 60);
 		}
 	}
 
-	$editer_mot = charger_fonction('editer_mot', 'inc');
-	echo $editer_mot('breve', $id_breve, $cherche_mot, $select_groupe, $flag_editable);
+	$haut =
+		($logo ? "<div class='logo_titre'>$logo</div>" : "")
+	  . gros_titre($titre,'', false)
+		. "<div class='bandeau_actions'>$actions</div>";
+
+	$onglet_contenu = array(_L('Contenu'),
+		(($flag_editable AND ($statut !== 'publie')) ? "<p class='breve_prop'>".affdate($date_heure)."</p>" : "")
+	  . (strlen($descriptif) > 1 ? 
+		  "<span class='label'>"._T('info_descriptif')."</span>"
+		  . "<span  dir='$lang_dir' class='descriptif crayon rubrique-descriptif-$id_rubrique'>" . propre($descriptif) . "</span>\n" :"")
+		. (($url_site OR $nom_site) ? 
+			  "<span class='label'>"._T('entree_liens_sites')."</span>"
+			  . "<span  dir='$lang_dir' class='url_site crayon article-url_site-$id_article'>" . propre("[".$nom_site."->".$url_site."]") . "</span>\n" :"" )
+		. (strlen($texte) > 1 ? 
+		  "<span class='label'>"._T('info_texte')."</span>"
+		  . "<span  dir='$lang_dir' class='texte crayon rubrique-texte-$id_rubrique'>" . propre($texte) . "</span>\n" :"")
+		. ($les_notes ?
+		  "<span class='label'>"._T('info_notes')."</span>"
+			  . "<span  dir='$lang_dir' class='notes'>"
+			  . justifier($les_notes) : "")
+		. (($champs_extra AND $extra) ? extra_affichage($extra, "breves") : "" )
 
-	//
-	// Langue de la breve
-	//
-	if (($GLOBALS['meta']['multi_articles'] == 'oui') AND ($flag_editable)) {
-		$row = sql_fetch(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
-		$langue_parent = $row['lang'];
-	
-		$row = sql_fetch(spip_query("SELECT lang, langue_choisie FROM spip_breves WHERE id_breve=$id_breve"));
-		$langue_breve = $row['lang'];
-	
-		$bouton = bouton_block_depliable(_T('titre_langue_breve')."&nbsp; (".traduire_nom_langue($langue_breve).")",false,'languesbreve');
-		echo debut_cadre_enfonce('langues-24.gif',true,'',$bouton);
-	
-		echo debut_block_depliable(false,'languesbreve');
-		echo "<div style='text-align: center'>";
+		);
 
-		if ($menu = liste_options_langues('changer_lang', $langue_breve, $langue_parent))
-			$lien = "\nonchange=\"this.nextSibling.firstChild.style.visibility='visible';\"";
-			$menu = select_langues('changer_lang', $lien, $menu)
-			. "<span><input type='submit' class='visible_au_chargement fondo' value='". _T('bouton_changer')."' /></span>";
+	$onglet_proprietes = array(_L('Propri&eacute;t&eacute;s'),
+		($dater ? $dater($id_breve, $flag_editable, $statut, 'breve', 'breves_voir', $date_heure) : "")
+	  . $editer_mot('breve', $id_breve, $cherche_mot, $select_groupe, $flag_editable)
+	  . ((($GLOBALS['meta']['multi_articles'] == 'oui') AND ($flag_editable)) ? langue_breve($id_breve,$row):"")
+	  . pipeline('affiche_milieu',array(
+			'args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),
+			'data'=>''))
+		  );
 
-		echo redirige_action_auteur('editer_breve', "$id_breve/$id_rubrique", "breves_voir","id_breve=$id_breve", $menu);
-		echo "</div>\n";
-		echo fin_block();
+	$onglet_documents = array(_L('Documents'),
+		($iconifier ? $iconifier('id_breve', $id_breve, 'breves_voir') : "")
+	  );
 	
-		echo fin_cadre_enfonce(true);
-	}
-	echo pipeline('affiche_milieu',
-		array(
-		'args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),
-		'data'=>''
-		)
-	);
-
-	echo justifier(propre($texte))."\n";
-
-	$texte_case = ($lien_titre.vider_url($lien_url)) ? "{{"._T('lien_voir_en_ligne')."}} [".$lien_titre."->".$lien_url."]" : '';
-	echo propre($texte_case);
-
-	if ($les_notes) {
-		echo "<hr width='70%' height='1' align='left'><span class='spip_small'>$les_notes</span>\n";
-	}
-
-	// afficher les extra
-	if ($champs_extra AND $extra) {
-		include_spip('inc/extra');
-		echo extra_affichage($extra, "breves");
-	}
-
-	if (autoriser('publierdans','rubrique',$id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
-		echo "<div style='float: right; margin: 10px;'>";
-		echo icone_inline(_T('icone_refuser_breve'), 
-		      redirige_action_auteur('editer_breve', "$id_breve-statut-refuse", "breves_voir","id_breve=$id_breve"), "breve-24.gif", "supprimer.gif");
-		echo "</div>";
-		echo "<div style='float: right; margin: 10px;'>";
-		echo icone_inline(_T('icone_publier_breve'), 
-		      redirige_action_auteur('editer_breve',"$id_breve-statut-publie","breves_voir","id_breve=$id_breve"), "breve-24.gif", "racine-24.gif");
-		echo "</div>";
-	}	
-
+	$onglet_interactivite = array(_L('Interactivit&eacute;'),
+		);
+		
+	$onglet_discuter = array(_L('Discuter'),
+		afficher_forum(sql_select("*", 'spip_forum', "statut='prive' AND id_breve=$id_breve AND id_parent=0",'', "date_heure DESC",  "20"), "breves_voir", "id_breve=$id_breve")
+	  );
+
+
+	echo 
+		debut_droite('', true)
+	  . $haut 
+	  . afficher_onglets_pages(array(
+	    //'resume'=>$onglet_resume,
+	    'voir'=>$onglet_contenu,
+	    'props'=>$onglet_proprietes,
+	    'docs'=>$onglet_documents,
+	    'interactivite'=>$onglet_interactivite,	    
+	    'discuter'=>$onglet_discuter))
+	  . fin_gauche()
+	  . fin_page();
+}
 
-	echo fin_cadre_relief(true);
-	
-	//////////////////////////////////////////////////////
-	// Forums
+function langue_breve($id_breve, $row){
+	$id_rubrique = $row['id_rubrique'];
 	//
+	// Langue de la breve
+	//
+	$row2 = sql_fetch(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
+	$langue_parent = $row2['lang'];
 	
-	echo "<br /><br />";
-	
-	echo "\n<div class='centered'>";
-	echo icone_inline(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=prive&id=$id_breve&script=breves_voir") . '#formulaire',
-	     "forum-interne-24.gif", "creer.gif");
-	echo "</div>";
+	$langue_breve = $row['lang'];
 	
-	echo "<br />";
+	$res = "";
+	$bouton = bouton_block_depliable(_T('titre_langue_breve')."&nbsp; (".traduire_nom_langue($langue_breve).")",false,'languesbreve');
+	$res .= debut_cadre_enfonce('langues-24.gif',true,'',$bouton);
 	
-	echo afficher_forum(sql_select("*", 'spip_forum', "statut='prive' AND id_breve=$id_breve AND id_parent=0",'', "date_heure DESC",  "20"), "breves_voir", "id_breve=$id_breve");
+	$res .= debut_block_depliable(false,'languesbreve');
+	$res .= "<div class='langue'>";
+
+	if ($menu = liste_options_langues('changer_lang', $langue_breve, $langue_parent))
+		$lien = "\nonchange=\"this.nextSibling.firstChild.style.visibility='visible';\"";
+	$menu = select_langues('changer_lang', $lien, $menu)
+	. "<span><input type='submit' class='visible_au_chargement fondo' value='". _T('bouton_changer')."' /></span>";
+
+	$res .= redirige_action_auteur('editer_breve', "$id_breve/$id_rubrique", "breves_voir","id_breve=$id_breve", $menu);
+	$res .= "</div>\n";
+	$res .= fin_block();
 	
-	echo fin_gauche(), fin_page();
+	$res .= fin_cadre_enfonce(true);
+	return $res;
 }
 
 // http://doc.spip.org/@exec_breves_voir_dist
@@ -242,5 +237,4 @@ function exec_breves_voir_dist()
 	afficher_breves_voir(intval(_request('id_breve')), _request('cherche_mot'), _request('select_groupe'));
 }
 
-
-?>
+?>
\ No newline at end of file
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index 263f1ccf6a4a7f42f471a98f88b56e9940388788..bcfdb336bde639ff0065d731c3e24c0757b0ec2c 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -18,7 +18,7 @@ include_spip('inc/forum');
 // http://doc.spip.org/@exec_naviguer_dist
 function exec_naviguer_dist()
 {
-	global $spip_display;
+	global $spip_display,$spip_lang_left,$spip_lang_right;
 
 	$cherche_mot = _request('cherche_mot');
 	$id_rubrique = intval(_request('id_rubrique'));
@@ -57,137 +57,184 @@ function exec_naviguer_dist()
 		   "rubriques",
 		   $id_rubrique);
 
-	  echo debut_grand_cadre(true);
+	echo debut_grand_cadre(true);
+	if ($id_rubrique  > 0) echo afficher_hierarchie($id_parent);
+	else $titre = _T('info_racine_site').": ". $GLOBALS['meta']["nom_site"];
+	echo fin_grand_cadre(true);
 
-	  if ($id_rubrique  > 0) echo afficher_hierarchie($id_parent);
-	  else $titre = _T('info_racine_site').": ". $GLOBALS['meta']["nom_site"];
-	  echo fin_grand_cadre(true);
-
-	  changer_typo($lang);
+	changer_typo($lang);
 	  
-	  if (!autoriser('voir','rubrique',$id_rubrique)){
-			echo "<strong>"._T('avis_acces_interdit')."</strong>";
-			echo fin_page();
-			exit;
-	  }
-
-	  echo debut_gauche('', true);
-
-	if ($spip_display != 4) {
-
-		infos_naviguer($id_rubrique, $statut, $ze_logo);
+	if (!autoriser('voir','rubrique',$id_rubrique)){
+		echo "<strong>"._T('avis_acces_interdit')."</strong>";
+		echo fin_page();
+		exit;
+  }
 
-		//
-		// Logos de la rubrique
-		//
-		if ($flag_editable AND ($spip_display != 4)) {
-			$iconifier = charger_fonction('iconifier', 'inc');
-			echo $iconifier('id_rubrique', $id_rubrique, 'naviguer');
+	echo debut_gauche('', true);
+	
+	if (autoriser('publierdans','rubrique',$id_rubrique)) {
+		$id_parent = sql_fetch(spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
+		if (!$id_parent['id_parent']) {
+		  list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique);
+		  $n_forums = spip_num_rows(spip_query("SELECT id_forum FROM $from" .($where ? (" WHERE $where") : '')));
 		}
 	}
 
-		echo pipeline('affiche_gauche',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''));
+	echo infos_naviguer($id_rubrique, $statut, $ze_logo, $n_forums);
 
-		//
-		// Afficher les boutons de creation d'article et de breve
-		//
-	if ($spip_display != 4) {
+	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''));
+
+	//
+	// Afficher les boutons de creation d'article et de breve
+	//
+	/*if ($spip_display != 4) {
 		raccourcis_naviguer($id_rubrique, $id_parent);
-	}
+	}*/
 		
 
-		echo creer_colonne_droite('', true);
-		echo pipeline('affiche_droite',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''));	  
-		echo debut_droite('', true);
-
-	  echo debut_cadre_relief($ze_logo, true);
-
-	  montre_naviguer($id_rubrique, $titre, $descriptif, $ze_logo, $flag_editable);
-
-	  if ($extra) {
-		include_spip('inc/extra');
-		echo extra_affichage($extra, "rubriques");
-	  }
-
-/// Mots-cles
-	if ($id_rubrique > 0) {
-	      $editer_mot = charger_fonction('editer_mot', 'inc');
-	      echo $editer_mot('rubrique', $id_rubrique,  $cherche_mot,  $select_groupe, $flag_editable);
-	}
+	echo creer_colonne_droite('', true);
+	echo pipeline('affiche_droite',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''));	  
+	echo debut_droite('', true);
+
+	//  echo debut_cadre_relief($ze_logo, true);
+	$actions = 
+		voir_en_ligne ('rubrique', $id_rubrique, $statut, 'racine-24.gif', false)
+		. icone_inline(_T('icone_tous_articles'), generer_url_ecrire("articles_page"), "article-24.gif", '', $spip_lang_left)
+  	. (($id_rubrique > 0 AND $flag_editable)?icone_inline(_T('icone_modifier_rubrique'), generer_url_ecrire("rubriques_edit","id_rubrique=$id_rubrique&retour=nav"), $ze_logo, "edit.gif", $spip_lang_right):"")
+		////// Supprimer cette rubrique (si vide)
+		.	((($id_rubrique>0) AND tester_rubrique_vide($id_rubrique) AND $flag_editable)?
+	    icone_inline(_T('icone_supprimer_rubrique'), redirige_action_auteur('supprimer', "rubrique-$id_rubrique", "naviguer","id_rubrique=$id_parent"), $ze_logo, "supprimer.gif", $spip_lang_right)
+	    :"")
+	  . (autoriser('creerrubriquedans','rubrique',$id_rubrique)?
+	    (!$id_rubrique
+		    ? icone_inline(_T('icone_creer_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav"), "secteur-24.gif", "creer.gif",$spip_lang_left)
+		    : icone_inline(_T('icone_creer_sous_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav&id_parent=$id_rubrique"), "rubrique-24.gif", "creer.gif",$spip_lang_left))
+		    :"");
 
+	$n = spip_num_rows(spip_query("SELECT id_rubrique FROM spip_rubriques LIMIT 1"));
+	if ($n) {
+		if (autoriser('creerarticledans','rubrique',$id_rubrique))
+		  $actions .= icone_inline(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","id_rubrique=$id_rubrique&new=oui"), "article-24.gif","creer.gif", $spip_lang_left);
+	
+		$activer_breves = $GLOBALS['meta']["activer_breves"];
+		if (autoriser('creerbrevedans','rubrique',$id_rubrique,NULL,array('id_parent'=>$id_parent)))
+		  $actions .= icone_inline(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","id_rubrique=$id_rubrique&new=oui"), "breve-24.gif","creer.gif", $spip_lang_left);
 
-	if (strlen($texte) > 1) {
-		echo "\n<div class='verdana1 spip_medium'>", justifier(propre($texte)), "</div>";
+		if (autoriser('creersitedans','rubrique',$id_rubrique))
+			$actions .= icone_inline(_T('info_sites_referencer'), generer_url_ecrire('sites_edit', "id_rubrique=$id_rubrique"), "site-24.gif", "creer.gif", $spip_lang_left);
 	}
 	
-	langue_naviguer($id_rubrique, $id_parent, $flag_editable);
-	    
-	echo fin_cadre_relief(true);
-
-	echo "<div>\n";
-	echo afficher_enfant_rub($id_rubrique, autoriser('creerrubriquedans','rubrique',$id_rubrique), true);
-
-	echo contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable);
-	echo "</div>\n";
-
-
-/// Documents associes a la rubrique
-	if ($id_rubrique > 0) {
-
-		echo naviguer_doc($id_rubrique, "rubrique", 'naviguer', $flag_editable);
+	$actions .= "<div class='nettoyeur'></div>";
+	
+	$logo = '';
+ 	$chercher_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
+	if ($chercher_logo) {
+		$chercher_logo = charger_fonction('chercher_logo', 'inc');
+		if ($logo = $chercher_logo($id_rubrique, 'id_rubrique', 'on')) {
+			list($fid, $dir, $nom, $format) = $logo;
+			include_spip('inc/filtres_images');
+			$logo = image_reduire("<img src='$fid' alt='' />", 75, 60);
+		}
 	}
+	$haut =
+		($logo ? "<div class='logo_titre'>$logo</div>" : "")
+	  . gros_titre((!acces_restreint_rubrique($id_rubrique) ? '' :
+	  http_img_pack("admin-12.gif",'', "width='12' height='12'",
+			      _T('info_administrer_rubrique'))) .
+	     $titre,'', false)
+		. "<div class='bandeau_actions'>$actions</div>";
 
-	echo pipeline('affiche_milieu',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''));	  
-
-
-////// Supprimer cette rubrique (si vide)
-
-	echo bouton_supprimer_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable);
-
-	echo fin_gauche(), fin_page();
+	if ($extra)
+		include_spip('inc/extra');
+	if ($id_rubrique > 0)
+		$editer_mot = charger_fonction('editer_mot', 'inc');
+
+	$onglet_proprietes = array(_L('Proprietes'),
+		/// Mots-cles
+		($editer_mot ? $editer_mot('rubrique', $id_rubrique,  $cherche_mot,  $select_groupe, $flag_editable):"")
+		. langue_naviguer($id_rubrique, $id_parent, $flag_editable)
+		. pipeline('affiche_milieu',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''))
+	);
+
+	/*$onglet_enfants = array(_L('Enfants'),
+		afficher_enfant_rub($id_rubrique, false, true)
+	);*/
+
+	$onglet_contenu = array(_L('Contenu'),
+		($extra?extra_affichage($extra, "rubriques"):"")
+	  . (strlen($descriptif) > 1 ? 
+		  "<span class='label'>"._T('info_descriptif')."</span>"
+		  . "<span  dir='$lang_dir' class='descriptif crayon rubrique-descriptif-$id_rubrique'>" . propre($descriptif) . "</span>\n" :"")
+		. (strlen($texte) > 1 ? 
+		  "<span class='label'>"._T('info_texte')."</span>"
+		  . "<span  dir='$lang_dir' class='texte crayon rubrique-texte-$id_rubrique'>" . propre($texte) . "</span>\n" :"")
+		. contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable)
+	);
+
+	$onglet_enfants = array(_L('Sous-rubriques'),
+	  afficher_enfant_rub($id_rubrique, false, true)
+	);
+
+
+	// Logos de la rubrique
+	$iconifier = charger_fonction('iconifier', 'inc');
+	$onglet_documents = array(_L('Documents'),
+	  $iconifier('id_rubrique', $id_rubrique, 'naviguer')
+		/// Documents associes a la rubrique
+		. ($id_rubrique > 0 ? naviguer_doc($id_rubrique, "rubrique", 'naviguer', $flag_editable) :"" )
+	);
+	
+	$onglet_interactivite = "";
+  if ($n_forums)
+    $onglet_interactivite = icone_inline(_T('icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controle_forum","id_rubrique=$id_rubrique"), "suivi-forum-24.gif", "", $spip_lang_right);
+	$onglet_interactivite = array(_L('Interactivit&eacute;'),
+	  $onglet_interactivite
+		);
+
+	echo 
+		$haut,
+	  afficher_onglets_pages(array(
+	    //'enfants'=>$onglet_enfants,
+	    'voir'=>$onglet_contenu,
+	    'sousrub'=>$onglet_enfants,
+	    'props'=>$onglet_proprietes,
+	    'docs'=>$onglet_documents,
+	    'interactivite'=>$onglet_interactivite
+	    )),
+	  fin_gauche(),
+	  fin_page();
 }
 
 // http://doc.spip.org/@infos_naviguer
-function infos_naviguer($id_rubrique, $statut, $ze_logo)
+function infos_naviguer($id_rubrique, $statut, $ze_logo, $n_forums)
 {
-	if ($id_rubrique > 0) {
-		$res = "\n<div style='font-weight: bold; text-align: center' class='verdana1 spip_xx-small'>"
-		  .  _T('titre_numero_rubrique')
-		  . "<br /><span class='spip_xx-large'>"
-		  . $id_rubrique
-		  . '</span></div>';
-
-		echo debut_boite_info(true);
-		echo $res;
-		echo voir_en_ligne ('rubrique', $id_rubrique, $statut, '', false);
-	
-		if (autoriser('publierdans','rubrique',$id_rubrique)) {
-			$id_parent = sql_fetch(spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
-			if (!$id_parent['id_parent']) {
-			  list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique);
-			  $n = spip_num_rows(spip_query("SELECT id_forum FROM $from" .($where ? (" WHERE $where") : '')));
-
-			  if ($n)
-			    echo icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $n)), generer_url_ecrire("controle_forum","id_rubrique=$id_rubrique"), "suivi-forum-24.gif", "", false);
-			}
-		}
-		echo fin_boite_info(true);
-
-		$res = '';
-		$q = spip_query("SELECT A.nom, A.id_auteur FROM spip_auteurs AS A LEFT JOIN spip_auteurs_rubriques AS R ON A.id_auteur=R.id_auteur WHERE R.id_rubrique=$id_rubrique");
-		while ($row = sql_fetch($q)) {
-			  $id = $row['id_auteur'];
-
-			 $res .= 
-				http_img_pack('admin-12.gif','','') .
+	$boite = pipeline ('boite_infos', array('data' => '',
+		'args' => array(
+			'type'=>'rubrique',
+			'id' => $id_rubrique,
+			'row' => $row,
+			'n_forums' => $n_forums
+		)
+	));
+
+	$navigation =
+	  ($boite ?debut_boite_info(true). $boite . fin_boite_info(true):"");
+
+	$q = spip_query("SELECT A.nom, A.id_auteur FROM spip_auteurs AS A LEFT JOIN spip_auteurs_rubriques AS R ON A.id_auteur=R.id_auteur WHERE R.id_rubrique=$id_rubrique");
+	$res = "";
+	while ($row = sql_fetch($q)) {
+		$id = $row['id_auteur'];
+		$res .= 
+			http_img_pack('admin-12.gif','','') .
 			    " <a href='" . generer_url_ecrire('auteur_infos', "id_auteur=$id") .
 				"'>" .
 				extraire_multi($row['nom']) .
 				'</a><br />';
-		}
-		if ($res)
-			echo '<br />', debut_cadre_relief("fiche-perso-24.gif", true, '', _T('info_administrateurs')), $res, fin_cadre_relief(true);
 	}
+	if ($res)
+		$navigation .= debut_cadre_relief("fiche-perso-24.gif", true, '', _T('info_administrateurs')). $res . fin_cadre_relief(true);
+
+	return $navigation;
 }
 
 
@@ -218,38 +265,38 @@ function raccourcis_naviguer($id_rubrique, $id_parent)
 // http://doc.spip.org/@langue_naviguer
 function langue_naviguer($id_rubrique, $id_parent, $flag_editable)
 {
-
-if ($id_rubrique>0 AND $GLOBALS['meta']['multi_rubriques'] == 'oui' AND ($GLOBALS['meta']['multi_secteurs'] == 'non' OR $id_parent == 0) AND $flag_editable) {
-
-	$row = sql_fetch(spip_query("SELECT lang, langue_choisie FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
-	$langue_rubrique = $row['lang'];
-	$langue_choisie_rubrique = $row['langue_choisie'];
-	$langue_parent = '';
-	if ($id_parent) {
-		$row = sql_fetch(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent"));
-		$langue_parent = $row['lang'];
-	} 
-	if (!$langue_parent)
-		$langue_parent = $GLOBALS['meta']['langue_site'];
-	if (!$langue_rubrique)
-		$langue_rubrique = $langue_parent;
-
-	echo debut_cadre_enfonce('langues-24.gif', true);
-	echo bouton_block_depliable(_T('titre_langue_rubrique')."&nbsp; (".traduire_nom_langue($langue_rubrique).")",false,'languesrubrique');
-
-	echo debut_block_depliable(false,'languesrubrique');
-	echo "<div class='verdana2' style='text-align: center;'>";
-	if ($menu = liste_options_langues('changer_lang', $langue_rubrique, $langue_parent)) {
-		$lien = redirige_action_auteur('instituer_langue_rubrique', "$id_rubrique-$id_parent","naviguer","id_rubrique=$id_rubrique");
-		$lien = ("\nonchange=\"document.location.href='$lien" .
-			 "&amp;changer_lang='+this.options[this.selectedIndex].value\"");
-		echo select_langues('changer_lang', $lien, $menu);
+	$res = "";
+	if ($id_rubrique>0 AND $GLOBALS['meta']['multi_rubriques'] == 'oui' AND ($GLOBALS['meta']['multi_secteurs'] == 'non' OR $id_parent == 0) AND $flag_editable) {
+
+		$row = sql_fetch(spip_query("SELECT lang, langue_choisie FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
+		$langue_rubrique = $row['lang'];
+		$langue_choisie_rubrique = $row['langue_choisie'];
+		$langue_parent = '';
+		if ($id_parent) {
+			$row = sql_fetch(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent"));
+			$langue_parent = $row['lang'];
+		} 
+		if (!$langue_parent)
+			$langue_parent = $GLOBALS['meta']['langue_site'];
+		if (!$langue_rubrique)
+			$langue_rubrique = $langue_parent;
+
+		$res .= debut_cadre_enfonce('langues-24.gif', true);
+		$res .= bouton_block_depliable(_T('titre_langue_rubrique')."&nbsp; (".traduire_nom_langue($langue_rubrique).")",false,'languesrubrique');
+
+		$res .= debut_block_depliable(false,'languesrubrique');
+		$res .= "<div class='verdana2' style='text-align: center;'>";
+		if ($menu = liste_options_langues('changer_lang', $langue_rubrique, $langue_parent)) {
+			$lien = redirige_action_auteur('instituer_langue_rubrique', "$id_rubrique-$id_parent","naviguer","id_rubrique=$id_rubrique");
+			$lien = ("\nonchange=\"document.location.href='$lien" .
+				 "&amp;changer_lang='+this.options[this.selectedIndex].value\"");
+			$res .= select_langues('changer_lang', $lien, $menu);
+		}
+		$res .=  "</div>\n";
+		$res .=  fin_block();
+		$res .=  fin_cadre_enfonce(true);
 	}
-	echo "</div>\n";
-	echo fin_block();
-
-	echo fin_cadre_enfonce(true);
- }
+	return $res;
 }
 
 // http://doc.spip.org/@contenu_naviguer
@@ -257,118 +304,114 @@ function contenu_naviguer($id_rubrique, $id_parent) {
 
 	global  $spip_lang_right;
 
-//
-// Verifier les boucles a mettre en relief
-//
+	//
+	// Verifier les boucles a mettre en relief
+	//
 
 	$relief = spip_num_rows(spip_query("SELECT id_article FROM spip_articles AS articles WHERE id_rubrique=$id_rubrique AND statut='prop' LIMIT 1"));
 
 	if (!$relief) {
 		$relief = spip_num_rows(spip_query("SELECT id_breve FROM spip_breves WHERE id_rubrique=$id_rubrique AND (statut='prepa' OR statut='prop') LIMIT 1"));
- }
+	}
 
 	if (!$relief AND $GLOBALS['meta']['activer_sites'] != 'non') {
 		$relief = spip_num_rows(spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique=$id_rubrique AND statut='prop' LIMIT 1"));
- }
+	}
 
 	if (!$relief AND $GLOBALS['meta']['activer_syndic'] != 'non'
-	AND autoriser('publierdans','rubrique',$id_rubrique)) {
-
+	  AND autoriser('publierdans','rubrique',$id_rubrique)) {
 		$relief = spip_num_rows(spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique=$id_rubrique AND (syndication='off' OR syndication='sus') AND statut='publie' LIMIT 1"));
 	}
 
-
 	$res = '';
 
 	if ($relief) {
 
-	$res .= debut_cadre_couleur('',true);
-	$res .= "<div class='verdana2' style='color: black;'><b>"._T('texte_en_cours_validation')."</b></div>";
-
-	//
-	// Les articles a valider
-	//
-	$res .= afficher_objets('article',_T('info_articles_proposes'),	array('WHERE' => "id_rubrique=$id_rubrique AND statut='prop'", 'ORDER BY' => "date DESC"));
-
-	//
-	// Les breves a valider
-	//
-	$res .= afficher_objets('breve','<b>' . _T('info_breves_valider') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique=$id_rubrique AND (statut='prepa' OR statut='prop')", 'ORDER BY' => "date_heure DESC"), true);
+		$res .= debut_cadre_couleur('',true);
+		$res .= "<div class='verdana2' style='color: black;'><b>"._T('texte_en_cours_validation')."</b></div>";
 
+		//
+		// Les articles a valider
+		//
+		$res .= afficher_objets('article',_T('info_articles_proposes'),	array('WHERE' => "id_rubrique=$id_rubrique AND statut='prop'", 'ORDER BY' => "date DESC"));
 
-	//
-	// Les sites references a valider
-	//
-	if ($GLOBALS['meta']['activer_sites'] != 'non') {
-		$res .= afficher_objets('site','<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND statut='prop'", 'ORDER BY' => "nom_site"));
-	}
+		//
+		// Les breves a valider
+		//
+		$res .= afficher_objets('breve','<b>' . _T('info_breves_valider') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique=$id_rubrique AND (statut='prepa' OR statut='prop')", 'ORDER BY' => "date_heure DESC"), true);
 
-	//
-	// Les sites a probleme
-	//
-	if ($GLOBALS['meta']['activer_sites'] != 'non'
-	AND autoriser('publierdans','rubrique',$id_rubrique)) {
+		//
+		// Les sites references a valider
+		//
+		if ($GLOBALS['meta']['activer_sites'] != 'non') {
+			$res .= afficher_objets('site','<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND statut='prop'", 'ORDER BY' => "nom_site"));
+		}
 
-		$res .= afficher_objets('site','<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND (syndication='off' OR syndication='sus') AND statut='publie'", 'ORDER BY' => "nom_site"));
-	}
+		//
+		// Les sites a probleme
+		//
+		if ($GLOBALS['meta']['activer_sites'] != 'non'
+		AND autoriser('publierdans','rubrique',$id_rubrique)) {
+	
+			$res .= afficher_objets('site','<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('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 autoriser('publierdans','rubrique',$id_rubrique)) {
-
-		$cpt = sql_fetch(spip_query("SELECT COUNT(*) AS n FROM spip_syndic_articles WHERE statut='dispo'"));
-		if ($cpt = $cpt['n'])
-			$res .= "<br /><small><a href='" .
-				generer_url_ecrire("sites_tous") .
-				"' style='color: black;'>" .
-				$cpt .
-				" " .
-				_T('info_liens_syndiques_1') .
-				" " .
-				_T('info_liens_syndiques_2') .
-				"</a></small>";
-	}
+		// Les articles syndiques en attente de validation
+		if ($id_rubrique == 0 
+		AND autoriser('publierdans','rubrique',$id_rubrique)) {
+	
+			$cpt = sql_fetch(spip_query("SELECT COUNT(*) AS n FROM spip_syndic_articles WHERE statut='dispo'"));
+			if ($cpt = $cpt['n'])
+				$res .= "<br /><small><a href='" .
+					generer_url_ecrire("sites_tous") .
+					"' style='color: black;'>" .
+					$cpt .
+					" " .
+					_T('info_liens_syndiques_1') .
+					" " .
+					_T('info_liens_syndiques_2') .
+					"</a></small>";
+		}
 
-	$res .= fin_cadre_couleur(true);
+		$res .= fin_cadre_couleur(true);
 	}
 
-//////////  Les articles en cours de redaction
-/////////////////////////
+	//////////  Les articles en cours de redaction
+	/////////////////////////
 
-	  $res .= afficher_objets('article',_T('info_tous_articles_en_redaction'), array("WHERE" => "statut='prepa' AND id_rubrique=$id_rubrique", 'ORDER BY' => "date DESC"));
+  $res .= afficher_objets('article',_T('info_tous_articles_en_redaction'), array("WHERE" => "statut='prepa' AND id_rubrique=$id_rubrique", 'ORDER BY' => "date DESC"));
 
 
-//////////  Les articles publies
-/////////////////////////
+	//////////  Les articles publies
+	/////////////////////////
 
-	  $res .= afficher_objets('article',_T('info_tous_articles_presents'), array("WHERE" => "statut='publie' AND id_rubrique=$id_rubrique", 'ORDER BY' => "date DESC"));
+  $res .= afficher_objets('article',_T('info_tous_articles_presents'), array("WHERE" => "statut='publie' AND id_rubrique=$id_rubrique", 'ORDER BY' => "date DESC"));
 	  
-	if (autoriser('creerarticledans','rubrique',$id_rubrique)){
+	/*if (autoriser('creerarticledans','rubrique',$id_rubrique)){
 	  $res .=  "<div style='float:$spip_lang_right'>" .
 	    icone_inline(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","id_rubrique=$id_rubrique&new=oui"), "article-24.gif", "creer.gif", $spip_lang_right, 'non') . "</div><br class='nettoyeur' />";
-	}
+	}*/
 
-//// Les breves
+	//// Les breves
 
 	$res .= afficher_objets('breve','<b>' . _T('icone_ecrire_nouvel_article') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique=$id_rubrique AND statut != 'prop' AND statut != 'prepa'", 'ORDER BY' => "date_heure DESC"));
 
-
-	if (autoriser('creerbrevedans','rubrique',$id_rubrique,NULL,array('id_parent'=>$id_parent))){
+	/*if (autoriser('creerbrevedans','rubrique',$id_rubrique,NULL,array('id_parent'=>$id_parent))){
 	  $res .=  "<div style='float:$spip_lang_right'>" .
 	    icone_inline(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","id_rubrique=$id_rubrique&new=oui"), "breve-24.gif", "creer.gif",$spip_lang_right, 'non') . "</div><br class='nettoyeur' />";
-	}
+	}*/
 
-//// Les sites references
+	//// Les sites references
 
 	if ($GLOBALS['meta']["activer_sites"] == 'oui') {
-		$res .= '<br />' . afficher_objets('site','<b>' . _T('titre_sites_references_rubrique') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'ORDER BY' => 'nom_site'));
+		$res .= afficher_objets('site','<b>' . _T('titre_sites_references_rubrique') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'ORDER BY' => 'nom_site'));
 
-		if ($id_rubrique > 0
+		/*if ($id_rubrique > 0
 		AND (autoriser('creersitedans','rubrique',$id_rubrique))) {
 			$res .= "<div style='float:$spip_lang_right'>" .
-icone_inline(_T('info_sites_referencer'), generer_url_ecrire('sites_edit', "id_rubrique=$id_rubrique"), "site-24.gif", "creer.gif",$spip_lang_right, 'non')
+		    icone_inline(_T('info_sites_referencer'), generer_url_ecrire('sites_edit', "id_rubrique=$id_rubrique"), "site-24.gif", "creer.gif",$spip_lang_right, 'non')
 			  . "</div><br class='nettoyeur' />";
-		}
+		}*/
 	}
 	return $res;
 }
@@ -420,26 +463,12 @@ EOF;
 // http://doc.spip.org/@montre_naviguer
 function montre_naviguer($id_rubrique, $titre, $descriptif, $logo, $flag_editable)
 {
-  global $spip_lang_right, $spip_lang_left;
-
-  echo "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>";
-  echo "<tr><td style='width: 100%' valign='top'>";
-  echo gros_titre((!acces_restreint_rubrique($id_rubrique) ? '' :
-		http_img_pack("admin-12.gif",'', "width='12' height='12'",
+	global $spip_lang_right, $spip_lang_left;
+	return 
+	  gros_titre((!acces_restreint_rubrique($id_rubrique) ? '' :
+	  http_img_pack("admin-12.gif",'', "width='12' height='12'",
 			      _T('info_administrer_rubrique'))) .
 	     $titre,'', false);
-  echo "</td>";
-
-  if ($id_rubrique > 0 AND $flag_editable) {
-	echo "<td>", http_img_pack("rien.gif", ' ', "width='5'") ."</td>\n";
-	echo "<td  valign='top'>", icone_inline(_T('icone_modifier_rubrique'), generer_url_ecrire("rubriques_edit","id_rubrique=$id_rubrique&retour=nav"), $logo, "edit.gif", $spip_lang_right), "</td>";
-}
-  echo "</tr>\n";
-
-  if (strlen($descriptif) > 1) {
-	echo "<tr><td align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; ' class='verdana1 spip_small'>", propre($descriptif."~"), "</td></tr>\n";
-  }
-  echo "</table>\n";
 }
 
 // http://doc.spip.org/@tester_rubrique_vide
@@ -465,10 +494,9 @@ function tester_rubrique_vide($id_rubrique) {
 // http://doc.spip.org/@bouton_supprimer_naviguer
 function bouton_supprimer_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable)
 {
-	if (($id_rubrique>0) AND tester_rubrique_vide($id_rubrique) AND $flag_editable) {
-
-	  return "<br /><div class='centered'>" . icone_inline(_T('icone_supprimer_rubrique'), redirige_action_auteur('supprimer', "rubrique-$id_rubrique", "naviguer","id_rubrique=$id_parent"), $ze_logo, "supprimer.gif") . "</div>";
-	}
+	if (($id_rubrique>0) AND tester_rubrique_vide($id_rubrique) AND $flag_editable)
+	  return icone_inline(_T('icone_supprimer_rubrique'), redirige_action_auteur('supprimer', "rubrique-$id_rubrique", "naviguer","id_rubrique=$id_parent"), $ze_logo, "supprimer.gif") . "</div>";
+	return "";
 }
 
 ?>
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index 2aef69ada8a6c2a217b61f6cb662465045583940..154ffc9bffd550c185eb2841448242ee4282e3b1 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -44,14 +44,14 @@ function exec_sites_dist()
 
 	if (!$id_syndic)
 	  echo _T('public:aucun_site'); 
-	else afficher_site($id_syndic, $id_rubrique, $nom_site, $row);
+	else 
+		afficher_site($id_syndic, $id_rubrique, $nom_site, $row);
 	echo fin_page();
 }
 
 
 // http://doc.spip.org/@afficher_site
-function afficher_site($id_syndic, $id_rubrique, $nom_site, $row)
-{
+function afficher_site($id_syndic, $id_rubrique, $nom_site, $row){
 
 	global $spip_lang_left,  $spip_lang_right, $spip_display;
 
@@ -68,37 +68,44 @@ function afficher_site($id_syndic, $id_rubrique, $nom_site, $row)
 	$extra=$row["extra"];
 
 	$flag_administrable = autoriser('modifier','site',$id_syndic);
-
 	$flag_editable = ($flag_administrable OR ($GLOBALS['meta']["proposer_sites"] > 0 AND ($statut == 'prop')));
 
-	echo debut_grand_cadre(true);
+	if ($id_syndic AND $flag_administrable AND ($spip_display != 4))
+		$iconifier = charger_fonction('iconifier', 'inc');
+	if ($flag_editable AND ($statut == 'publie'))
+		$dater = charger_fonction('dater', 'inc');
+	$editer_mot = charger_fonction('editer_mot', 'inc');
+	if ($flag_administrable)
+		$instituer_site = charger_fonction('instituer_site','inc');
+	if ($GLOBALS['champs_extra'] AND $extra)
+		include_spip('inc/extra');
 
-	echo afficher_hierarchie($id_rubrique);
+	$logo = '';
+ 	$chercher_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
+	if ($chercher_logo) {
+		$chercher_logo = charger_fonction('chercher_logo', 'inc');
+		if ($logo = $chercher_logo($id_syndic, 'id_syndic', 'on')) {
+			list($fid, $dir, $nom, $format) = $logo;
+			include_spip('inc/filtres_images');
+			$logo = image_reduire("<img src='$fid' alt='' />", 75, 60);
+		}
+	}
 
+	echo debut_grand_cadre(true);
+	echo afficher_hierarchie($id_rubrique);
 	echo fin_grand_cadre(true);
 
 	echo debut_gauche('', true);
-
 	echo debut_boite_info(true);
-
-	$res = "\n<div style='font-weight: bold; text-align: center' class='verdana1 spip_xx-small'>"
-		  .  _T('titre_site_numero')
-		  . "<br /><span class='spip_xx-large'>"
-		  . $id_syndic
-		  . '</span></div>';
-	echo $res;
-	echo voir_en_ligne ('site', $id_syndic, $statut,'', false);
+	echo pipeline ('boite_infos', array('data' => '',
+		'args' => array(
+			'type'=>'site',
+			'id' => $id_syndic,
+			'row' => $row
+			)
+	));
 	echo fin_boite_info(true);
 
-
-	echo "\n<br /><div class='centered' style='margin-top:10px'>";
-	echo icone_inline(_T('icone_voir_sites_references'), generer_url_ecrire("sites_tous",""), "site-24.gif","rien.gif");
-	echo "</div>";
-
-	if ($id_syndic AND $flag_administrable AND ($spip_display != 4)) {
-		$iconifier = charger_fonction('iconifier', 'inc');
-		echo $iconifier('id_syndic', $id_syndic, 'sites');
-	}
 	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>''));
 
 	echo creer_colonne_droite('', true);
@@ -106,122 +113,109 @@ function afficher_site($id_syndic, $id_rubrique, $nom_site, $row)
 
 	echo debut_droite('', true);
 
-	echo debut_cadre_relief("site-24.gif", true);
-
 	if ($syndication == 'off' OR $syndication == 'sus') 
 	  $droit = $id_rubrique;
 	else $droit = 0;
 
 	$url_affichee = $url_site;
-
 	if (strlen($url_affichee) > 40) $url_affichee = substr($url_affichee, 0, 30)."...";
 
-	if ($flag_editable) {
-		echo icone_inline(_T('icone_modifier_site'), generer_url_ecrire('sites_edit',"id_syndic=$id_syndic"), "site-24.gif", "edit.gif",$spip_lang_right);
-	}
-	$puce_statut = charger_fonction('puce_statut', 'inc');
-	echo gros_titre($nom_site, $puce_statut(0,$statut,0,'site'), false);
-	echo "<a href='$url_site'><b>$url_affichee</b></a>";
-	echo "<div class='nettoyeur'></div>";
-
-	if (strlen($descriptif)) {
-		echo "<div style='text-align: left; padding: 0 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4; margin: 5px 15px 0 0; ' class='verdana1 spip_xsmall'>";
-		echo propre('{{'._T('info_descriptif').'}} '. $descriptif);
-		echo "</div>";
-	}
-
-	if ($flag_editable AND ($statut == 'publie')) {
-		if ($statut == 'publie') {
-
-			$dater = charger_fonction('dater', 'inc');
-			echo $dater($id_syndic, $flag_editable, $statut, 'syndic', 'sites', $date_heure);
-		} else {
-			echo "<br />\n<span class='verdana1 spip_medium'>"._T('info_site_propose')." <b>".affdate($date_heure)."&nbsp;</b></span>";
-	}
-}
-
-	$editer_mot = charger_fonction('editer_mot', 'inc');
-	echo $editer_mot('syndic', $id_syndic,  $cherche_mot,  $select_groupe, $flag_editable);
-
-	echo pipeline('affiche_milieu',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>''));
-
-	if ($flag_administrable) {
-		echo debut_cadre_relief("racine-site-24.gif", true);
-
-		$corps = "\n<div style='text-align: center'><label for='statut'><b>"
-		. _T('info_statut_site_1')
-		. "</b></label> &nbsp;&nbsp; \n"
-		.  "<select name='statut' id='statut' size='1' class='fondl'>\n"
-		.  my_sel("prop",_T('info_statut_site_3'),$statut)
-		.  my_sel("publie",_T('info_statut_site_2'),$statut)
-		.  my_sel("refuse",_T('info_statut_site_4'),$statut);
-
-		if (!in_array($statut, array('prop', 'publie', 'refuse')))
-			$corps .=  my_sel($statut,$statut,$statut);
-
-		$corps .= "</select>\n"
-		. " &nbsp;&nbsp;&nbsp; "
-		. "<input type='submit' value='"
-		. _T('bouton_valider')
-		.  "' class='fondo' />\n"
-		.  "</div>\n";
-
-		echo redirige_action_auteur('editer_site',
-			$id_syndic,
-			'sites',
-			"id_syndic=$id_syndic&id_parent=$id_rubrique",
-			$corps);
-		echo fin_cadre_relief(true);
-	}
-
-
-	if ($syndication == "oui" OR $syndication == "off" OR $syndication == "sus") {
-		echo "<br /><p class='verdana1 spip_medium centered'><a href='".htmlspecialchars($url_syndic)."'>",	http_img_pack('feed.png', 'RSS', ' class="x" style="vertical-align:middle;"'),	'</a> <b>'._T('info_site_syndique').'</b></p>';
-
-
-		if ($syndication == "off" OR $syndication=="sus") {
-			echo debut_boite_info(true);
-			echo _T('avis_site_syndique_probleme', array('url_syndic' => quote_amp($url_syndic)));
-
-			echo redirige_action_auteur('editer_site',
+	$actions = 
+		voir_en_ligne('site', $id_syndic, $statut, 'racine-24.gif', false)
+	 . ($flag_editable ? icone_inline(_T('icone_modifier_site'), generer_url_ecrire('sites_edit',"id_syndic=$id_syndic"), "site-24.gif", "edit.gif",$spip_lang_right) : "")
+	 . icone_inline(_T('icone_voir_sites_references'), generer_url_ecrire("sites_tous",""), "site-24.gif","rien.gif", $spip_lang_left)
+	 . icone_inline (_T('icone_poster_message'), generer_url_ecrire('forum_envoi', "id=$id_syndic&statut=prive&script=sites") . '#formulaire', "forum-interne-24.gif", "creer.gif", $spip_lang_left)
+	 . "<div class='nettoyeur'></div>";
+
+	$haut =
+		($logo ? "<div class='logo_titre'>$logo</div>" : "")
+		. gros_titre($nom_site, '' , false)
+	  . "<a href='$url_site' class='url_site'>$url_affichee</a>"
+		. "<div class='bandeau_actions'>$actions</div>";
+
+	$onglet_contenu = array(_L('Contenu'),
+		($statut == 'prop' ? "<p class='site_prop'>"._T('info_site_propose')." <b>".affdate($date_heure)."&nbsp;</b></p>" : "")
+
+		. (strlen($descriptif) > 1 ? 
+		  "<span class='label'>"._T('info_descriptif')."</span>"
+		  . "<span  dir='$lang_dir' class='descriptif crayon rubrique-descriptif-$id_rubrique'>" . propre($descriptif) . "</span>\n" :"")
+
+		. (($syndication == "oui" OR $syndication == "off" OR $syndication == "sus") ?
+		  "<p class='site_syndique'><a href='".htmlspecialchars($url_syndic)."'>"
+		  .	http_img_pack('feed.png', 'RSS').	'</a>'._T('info_site_syndique').'</p>' 
+
+			. (($syndication == "off" OR $syndication=="sus") ?
+			  "<div class='site_syndique_probleme'>" . _T('avis_site_syndique_probleme', array('url_syndic' => quote_amp($url_syndic)))
+			  . redirige_action_auteur('editer_site',
+					$id_syndic,
+			    'sites',
+			    '',
+			    "<input type='hidden' name='reload' value='oui' />
+			    <input type='submit' value=\""
+				  . attribut_html(_T('lien_nouvelle_recuperation'))
+				  . "\" class='fondo spip_xx-small' />")
+				. "</div>"
+			  : "")
+		  
+			. afficher_objets('syndic_article',_T('titre_articles_syndiques'), array('FROM' => 'spip_syndic_articles', 'WHERE' => "id_syndic=$id_syndic", 'ORDER BY' => "date DESC"), $id_syndic)
+			
+			. ($date_syndic ? "<div class='date_syndic'>" . _T('info_derniere_syndication').' '.affdate_heure($date_syndic) .".</div>" : "")
+			. "<div class='mise_a_jour_syndic'>" 
+			. generer_action_auteur('editer_site',
 				$id_syndic,
-				'sites',
-				'',
+				generer_url_ecrire('sites'),
 				"<input type='hidden' name='reload' value='oui' />
-			<input type='submit' value=\""
-			. attribut_html(_T('lien_nouvelle_recuperation'))
-			. "\" class='fondo spip_xx-small' />"
-						    );
-			echo fin_boite_info(true);
-		}
-		echo afficher_objets('syndic_article',_T('titre_articles_syndiques'), array('FROM' => 'spip_syndic_articles', 'WHERE' => "id_syndic=$id_syndic", 'ORDER BY' => "date DESC"), $id_syndic);
-
-
-	// afficher la date de dernier acces a la syndication
-
-		if ($date_syndic)
-		  echo "<div style='text-align: left' class='verdana1 spip_small'>",  _T('info_derniere_syndication').' '.affdate_heure($date_syndic), ".</div>\n";
+				<input type='submit' value=\""
+				. attribut_html(_T('lien_mise_a_jour_syndication'))
+				. "\" class='fondo spip_xx-small' />", " method='post'")
+			. "</div>"
+			
+			: choix_feed($id_syndic, $id_rubrique, $nom_site, $row))
+
+		. (($GLOBALS['champs_extra'] AND $extra) ? extra_affichage($extra, "sites") : "")
+
+	  );
+
+	$onglet_proprietes = array(_L('Propri&eacute;t&eacute;s'),
+		($dater ? $dater($id_syndic, $flag_editable, $statut, 'syndic', 'sites', $date_heure) : "")
+	  . $editer_mot('syndic', $id_syndic,  $cherche_mot,  $select_groupe, $flag_editable)
+	  . ($flag_administrable ? options_moderation($row) : "")
+	  . pipeline('affiche_milieu',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>''))
+	  );
+
+	$onglet_documents = array(_L('Documents'),
+	  $iconifier ? $iconifier('id_syndic', $id_syndic, 'sites') :""
+	  //. articles_documents('article', $id_article)
+	  );
+	
+	$onglet_interactivite = array(_L('Interactivit&eacute;'),
+		""
+	);
+		
+	$onglet_discuter = array(_L('Discuter'),
+    ($result_forum = spip_query("SELECT * FROM spip_forum WHERE statut='prive' AND id_syndic=$id_syndic AND id_parent=0 ORDER BY date_heure DESC LIMIT 20") ?
+    	afficher_forum($result_forum, "sites","id_syndic=$id_syndic")
+    	:"")
+		);
+
+	echo 
+	  $haut 
+	  . afficher_onglets_pages(array(
+	    //'resume'=>$onglet_resume,
+	    'voir'=>$onglet_contenu,
+	    'props'=>$onglet_proprietes,
+	    'docs'=>$onglet_documents,
+	    'interactivite'=>$onglet_interactivite,	    
+	    'discuter'=>$onglet_discuter));
+}
 
-		echo "<br /><div style='float: right'>\n";
-		echo generer_action_auteur('editer_site',
-			$id_syndic,
-			generer_url_ecrire('sites'),
-			"<input type='hidden' name='reload' value='oui' />
-		<input type='submit' value=\""
-			. attribut_html(_T('lien_mise_a_jour_syndication'))
-			. "\" class='fondo spip_xx-small' />",
-					   " method='post'"
-					   );
-		echo "</div><br />\n";
-
-	// Options
-		if ($flag_administrable) {
-
-			$moderation = $mod;
-			if ($moderation != 'oui') $moderation='non';
-
-		$res = '';
-		$res .= "<div style='text-align: ".$GLOBALS['spip_lang_left']."'>".
+function options_moderation($row) {
+	$id_syndic = $row['id_syndic'];
+	$moderation = $row['moderation'];
+	if ($moderation != 'oui') $moderation='non';
+	
+	$res = '';
+	$res .= "<div style='text-align: ".$GLOBALS['spip_lang_left']."'>".
 		  _T('syndic_choix_moderation')
 		. "<div style='padding-$spip_lang_left: 40px;'>"
 		. afficher_choix('moderation', $moderation,
@@ -230,110 +224,99 @@ function afficher_site($id_syndic, $id_rubrique, $nom_site, $row)
 			'oui' => _T('info_bloquer') .' ('._T('bouton_radio_modere_priori').')' ))
 		. "</div></div>\n";
 		
-		// Oublier les vieux liens ?
-		// Depublier les liens qui ne figurent plus ?
+	// Oublier les vieux liens ?
+	// Depublier les liens qui ne figurent plus ?
 
-		$res .= "\n<div>&nbsp;</div>"
+	$res .= "\n<div>&nbsp;</div>"
 		. "\n<div style='text-align:".$GLOBALS['spip_lang_left']."'>"._T('syndic_choix_oublier'). '</div>'
 		. "\n<ul style='text-align:".$GLOBALS['spip_lang_left']."'>\n";
 
-		$on = array('oui' => _T('item_oui'), 'non' => _T('item_non'));
-		if (!$miroir = $row['miroir']) $miroir = 'non';
-		$res .= "\n<li>"._T('syndic_option_miroir').' '
-		. afficher_choix('miroir', $miroir, $on, " &nbsp; ")
-		. "</li>\n";
-
-		if (!$oubli = $row['oubli']) $oubli = 'non';
-		$res .= "\n<li>"
-		. _T('syndic_option_oubli', array('mois' => 2)).' '
-		. afficher_choix('oubli', $oubli, $on," &nbsp; ")
-		. "</li>\n"
-		. "</ul>\n";
-
-		// Prendre les resumes ou le texte integral ?
-		if (!$resume = $row['resume']) $resume = 'oui';
-		$res .= "\n<div style='text-align: $spip_lang_left'>"
-		.  _T('syndic_choix_resume') 
-		. "\n<div style='padding-$spip_lang_left: 40px;'>"
-		. afficher_choix('resume', $resume,
-			array(	'oui' => _T('syndic_option_resume_oui'),
-				'non' => _T('syndic_option_resume_non')	))
-		. "</div></div>\n";
-
-		// Bouton "Valider"
-		$res .= "\n<div style='text-align:$spip_lang_right'><input type='submit' value='"._T('bouton_valider')."' class='fondo' /></div>\n";
-		echo debut_cadre_relief('feed.png', true, "", _T('syndic_options').aide('artsyn')),	
-		  redirige_action_auteur('editer_site',
+	$on = array('oui' => _T('item_oui'), 'non' => _T('item_non'));
+	if (!$miroir = $row['miroir']) 
+		$miroir = 'non';
+
+	$res .= "\n<li>"._T('syndic_option_miroir').' '
+	  . afficher_choix('miroir', $miroir, $on, " &nbsp; ")
+	  . "</li>\n";
+
+	if (!$oubli = $row['oubli'])
+		$oubli = 'non';
+	$res .= "\n<li>"
+	  . _T('syndic_option_oubli', array('mois' => 2)).' '
+	  . afficher_choix('oubli', $oubli, $on," &nbsp; ")
+	  . "</li>\n"
+	  . "</ul>\n";
+
+	// Prendre les resumes ou le texte integral ?
+	if (!$resume = $row['resume'])
+		$resume = 'oui';
+	
+	$res .= "\n<div style='text-align: $spip_lang_left'>"
+	  .  _T('syndic_choix_resume') 
+	  . "\n<div style='padding-$spip_lang_left: 40px;'>"
+	  . afficher_choix('resume', $resume,
+	    array(	'oui' => _T('syndic_option_resume_oui'),
+	      'non' => _T('syndic_option_resume_non')	))
+	  . "</div></div>\n";
+
+	// Bouton "Valider"
+	$res .= "\n<div style='text-align:$spip_lang_right'><input type='submit' value='"._T('bouton_valider')."' class='fondo' /></div>\n";
+	
+	return
+	  debut_cadre_relief('feed.png', true, "", _T('syndic_options').aide('artsyn'))
+	  . redirige_action_auteur('editer_site',
 					 "options/$id_syndic",
 					 'sites',
 					 '',
 					 $res,
-					 " method='post'"),
-		  fin_cadre_relief(true);
-	}
-	}
-
-// Cas d'un site pour lesquels feedfinder a un ou plusieurs flux,
-// et l'on propose de choisir
-else if (preg_match(',^\s*select: (.*),', $url_syndic, $regs)) {
-
-	$res = "<br /><br />\n";
-	foreach (
-		array('id_rubrique', 'nom_site', 'url_site', 'descriptif', 'statut')
-	as $var) {
-		$res .= "<input type='hidden' name='$var' value=\"".entites_html($$var)."\" />\n";
-	}
-
-	$res .= "<div style='text-align: $spip_lang_left'>\n";
-	$res .= "<div><input type='radio' name='syndication' value='non' id='syndication_non' checked='checked' />";
-	$res .= " <b><label for='syndication_non'>"._T('bouton_radio_non_syndication')."</label></b></div>\n";
-	$res .= "<div><input type='radio' name='syndication' value='oui' id='syndication_oui' />";
-	$res .= " <label for='syndication_oui'>"._T('bouton_radio_syndication')."</label></div>\n";
-
-	$res .= "<select name='url_syndic' id='url_syndic'>\n";
-	foreach (explode(' ',$regs[1]) as $feed) {
-		$res .= '<option value="'.entites_html($feed).'">'.$feed."</option>\n";
-	}
-	$res .= "</select>\n";
-	$res .= aide("rubsyn");
-	$res .= "<div style='text-align: $spip_lang_right'><input type='submit' value='"._T('bouton_valider')."' class='fondo' /></div>\n";
-	$res .= "</div>\n";
-	echo debut_cadre_relief('', true);
-	echo redirige_action_auteur('editer_site',
-		$id_syndic,
-		'sites',
-		'',
-		$res,
-		" method='post'");
-	echo fin_cadre_relief(true);
-
+					 " method='post'")
+	 .  fin_cadre_relief(true);
 }
 
+function choix_feed($id_syndic, $id_rubrique, $nom_site, $row) {
+	$url_site = $row["url_site"];
+	$url_syndic = $row["url_syndic"];
+	$descriptif = $row["descriptif"];
+	$statut = $row["statut"];
+	
+	$date_heure = $row["date"];
+	$date_syndic = $row['date_syndic'];
+	$mod = $row['moderation'];
+	$extra=$row["extra"];
 
-if ($GLOBALS['champs_extra'] AND $extra) {
-		include_spip('inc/extra');
-		echo extra_affichage($extra, "sites");
+	$res = "";
+	// Cas d'un site pour lesquels feedfinder a un ou plusieurs flux,
+	// et l'on propose de choisir
+	if (preg_match(',^\s*select: (.*),', $url_syndic, $regs)) {
+			foreach (
+				array('id_rubrique', 'nom_site', 'url_site', 'descriptif', 'statut')	as $var) {
+			$res .= "<input type='hidden' name='$var' value=\"".entites_html($$var)."\" />\n";
+		}
+		$res .= "<div style='text-align: $spip_lang_left'>\n";
+		$res .= "<div><input type='radio' name='syndication' value='non' id='syndication_non' checked='checked' />";
+		$res .= " <b><label for='syndication_non'>"._T('bouton_radio_non_syndication')."</label></b></div>\n";
+		$res .= "<div><input type='radio' name='syndication' value='oui' id='syndication_oui' />";
+		$res .= " <label for='syndication_oui'>"._T('bouton_radio_syndication')."</label></div>\n";
+	
+		$res .= "<select name='url_syndic' id='url_syndic'>\n";
+		foreach (explode(' ',$regs[1]) as $feed) {
+			$res .= '<option value="'.entites_html($feed).'">'.$feed."</option>\n";
+		}
+		$res .= "</select>\n";
+		$res .= aide("rubsyn");
+		$res .= "<div style='text-align: $spip_lang_right'><input type='submit' value='"._T('bouton_valider')."' class='fondo' /></div>\n";
+		$res .= "</div>\n";
+		
+		$res =
+		  debut_cadre_relief('', true)
+		  . redirige_action_auteur('editer_site',
+			$id_syndic,
+			'sites',
+			'',
+			$res,
+			" method='post'")
+			. fin_cadre_relief(true);
 	}
-
-echo fin_cadre_relief(true);
-
-
-//////////////////////////////////////////////////////
-// Forums
-//
-
- echo "<div class='centered'>\n";
-
- echo icone_inline (_T('icone_poster_message'), generer_url_ecrire('forum_envoi', "id=$id_syndic&statut=prive&script=sites") . '#formulaire', "forum-interne-24.gif", "creer.gif");
-
- echo "</div>\n";
-
- $result_forum = spip_query("SELECT * FROM spip_forum WHERE statut='prive' AND id_syndic=$id_syndic AND id_parent=0 ORDER BY date_heure DESC LIMIT 20");
-
- echo afficher_forum($result_forum, "sites","id_syndic=$id_syndic");
-
- echo fin_gauche();
+	return $res;
 }
-
-
 ?>
diff --git a/ecrire/inc/instituer_article.php b/ecrire/inc/instituer_article.php
index 4bbc2e391434ae15dce52674b2242cff8895105d..f107613cff5fcfdf5fa5dd4dc12a897ccb96fd7e 100644
--- a/ecrire/inc/instituer_article.php
+++ b/ecrire/inc/instituer_article.php
@@ -18,45 +18,40 @@ function inc_instituer_article_dist($id_article, $statut=-1)
 	if ($statut == -1) return demande_publication($id_article);
 
 	// menu de date pour les articles post-dates (plugin)
+	/* un branchement sauvage ?
 	if ($statut <> 'publie'
 	AND $GLOBALS['meta']['post_dates'] == 'non'
 	AND function_exists('menu_postdates'))
 		list($postdates,$postdates_js) = menu_postdates();
+	else $postdates = $postdates_js = '';*/
+
+	$liste_statuts = array(
+	  // statut => array(titre,image)
+		'prepa' => array(_T('texte_statut_en_cours_redaction'),''),
+		'prop' => array(_T('texte_statut_propose_evaluation'),''),	
+		'publie' => array(_T('texte_statut_publie'),''),	
+		'poubelle' => array(_T('texte_statut_poubelle'),''),	
+		'refuse' => array(_T('texte_statut_refuse'),'')	
+	);
 
-	else $postdates = $postdates_js = '';
 	$res =
-	"\n<div style='text-align: center;' id='instituer_article-$id_article'>" .
-	"<label for='statut_nouv'><b>" .
-	_T('texte_article_statut') .
-	"</b></label>" .
-	"\n<select name='statut_nouv' id='statut_nouv' size='1' class='fondl'\n" .
-	"onchange=\"this.nextSibling.nextSibling.src='" .
-	_DIR_IMG_PACK .
-	"' + puce_statut(options[selectedIndex].value);" .
-	" setvisibility('valider_statut', 'visible');"
-	. $postdates_js
-	. "\">\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)
-	. " class='danger'>"  ._T('texte_statut_poubelle') ."</option>\n" .
-	"<option"  . mySel("refuse", $statut)  . " style='background-color: #FFA4A4'>" ._T('texte_statut_refuse') ."</option>\n" .
-	"</select>" .
-	" &nbsp; " .
-	puce_statut($statut, " class='puce'") .
-	"  &nbsp;\n" .
-	"<span class='visible_au_chargement' id='valider_statut'>" .
-	"<input type='submit' value='"._T('bouton_valider')."' class='fondo' />" .
-	"</span>" .
-	aide("artstatut")
-	. $postdates
-	. '</div>';
+	  "<ul id='instituer_article-$id_article' class='instituer_article instituer'>" 
+	  . "<li>" . _T('texte_article_statut') 
+		. aide("artstatut")
+	  ."<ul>";
+	
+	$href = redirige_action_auteur('instituer_article',$id_article,'articles', "id_article=$id_article");
+	foreach($liste_statuts as $s=>$affiche){
+		$href = parametre_url($href,'statut_nouv',$s);
+		$sel = ($s==$statut) ? " selected":"";
+		$res .= "<li class='$s$sel'><a href='$href'>" . puce_statut($s) . $affiche[0] . '</a></li>';
+	}
+
+	$res .= "</ul></li></ul>";
   
-	return redirige_action_auteur('instituer_article',$id_article,'articles', "id_article=$id_article", $res, " method='post'");
+	return $res;
 }
 
-
 // http://doc.spip.org/@demande_publication
 function demande_publication($id_article)
 {
diff --git a/ecrire/inc/instituer_breve.php b/ecrire/inc/instituer_breve.php
new file mode 100644
index 0000000000000000000000000000000000000000..710ead15449e47f8b4a172e818daabfd770dbc82
--- /dev/null
+++ b/ecrire/inc/instituer_breve.php
@@ -0,0 +1,44 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  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_breve_dist($id_breve, $statut=-1)
+{
+	if ($statut == -1) return "";
+
+	$liste_statuts = array(
+	  // statut => array(titre,image)
+		'prop' => array(_T('item_breve_proposee'),''),	
+		'publie' => array(_T('item_breve_validee'),''),	
+		'refuse' => array(_T('item_breve_refusee'),'')	
+	);
+	if (!in_array($statut, array_keys($liste_statuts)))
+		$liste_statuts[$statut] =  array($statut,'');
+
+	$res =
+	  "<ul id='instituer_breve-$id_breve' class='instituer_breve instituer'>" 
+	  . "<li>" . _T('entree_breve_publiee') 
+	  ."<ul>";
+	
+	$href = redirige_action_auteur('editer_breve',$id_breve,'breves_voir', "id_breve=$id_breve");
+	foreach($liste_statuts as $s=>$affiche){
+		$href = parametre_url($href,'statut',$s);
+		$sel = ($s==$statut) ? " selected":"";
+		$res .= "<li class='$s$sel'><a href='$href'>" . puce_statut($s) . $affiche[0] . '</a></li>';
+	}
+
+	$res .= "</ul></li></ul>";
+	return $res;
+}
+
+?>
\ No newline at end of file
diff --git a/ecrire/inc/instituer_site.php b/ecrire/inc/instituer_site.php
new file mode 100644
index 0000000000000000000000000000000000000000..f9225404c1658c397347498c2747985a1ce6684e
--- /dev/null
+++ b/ecrire/inc/instituer_site.php
@@ -0,0 +1,45 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  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_site_dist($id_syndic, $statut=-1)
+{
+	if ($statut == -1) return "";
+
+	$liste_statuts = array(
+	  // statut => array(titre,image)
+		'prop' => array(_T('info_statut_site_3'),''),	
+		'publie' => array(_T('info_statut_site_2'),''),	
+		'refuse' => array(_T('info_statut_site_4'),'')	
+	);
+	if (!in_array($statut, array_keys($liste_statuts)))
+		$liste_statuts[$statut] =  array($statut,'');
+
+	$res =
+	  "<ul id='instituer_site-$id_syndic' class='instituer_site instituer'>" 
+	  . "<li>" . _T('info_statut_site_1') 
+	  ."<ul>";
+	
+	$href = redirige_action_auteur('editer_site',$id_syndic,'sites', "id_syndic=$id_syndic" /*"&id_parent=$id_rubrique"*/);
+	foreach($liste_statuts as $s=>$affiche){
+		$href = parametre_url($href,'statut',$s);
+		$sel = ($s==$statut) ? " selected":"";
+		$res .= "<li class='$s$sel'><a href='$href'>" . puce_statut($s) . $affiche[0] . '</a></li>';
+	}
+
+	$res .= "</ul></li></ul>";
+  
+	return $res;
+}
+
+?>
\ No newline at end of file
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 89403fcb447de9148780383d909a25d73967ae2e..268df071397ff6b860826e197c32f647e4f2ad31 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -39,6 +39,23 @@ function hr($color, $retour = false) {
 //
 // Cadres
 //
+function afficher_onglets_pages($onglets){
+	static $onglet_compteur = 0;
+	$res = "";
+	$corps = "";
+	$cpt = 0;
+	$actif = 0;
+	foreach($onglets as $id=>$contenu){
+		$cpt++;
+		$disabled = strlen(trim($contenu[1]))?"":" class='tabs-disabled'";
+		if (!$actif && !$disabled) $actif = $cpt;
+		$res .= "<li$disabled><a href='#$id'><span>" . $contenu[0] . "</span></a></li>";
+		$corps .= "<div id='$id' class='tabs-container'>" . $contenu[1] . "<br class='nettoyeur' /></div>";
+	}
+	$onglet_compteur++;
+	return "<div class='boite_onglets' id='boite_onglet_$onglet_compteur'><ul class='tabs-nav'>$res</ul>$corps</div>"
+	. "<script type='text/javascript'>$('#boite_onglet_$onglet_compteur').tabs(".($actif?"$actif,":"")."{ fxAutoHeight: true });</script>";
+}
 
 // http://doc.spip.org/@debut_cadre
 function debut_cadre($style, $icone = "", $fonction = "", $titre = "", $id="", $class="", $padding=true) {
@@ -622,8 +639,7 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 		. afficher_forum_4($compteur_forum, $nb_forum, $i)
 		. "\n<td style='width: 100%' valign='top'>";
 		if ($compteur_forum == 1) 
-			$res .= '<br />'
-			  . debut_cadre_forum(forum_logo($statut), true, "", $titre_boite);
+			$res .= debut_cadre_forum(forum_logo($statut), true, "", $titre_boite);
 		else $res .= debut_cadre_thread_forum("", true, "", $titre_boite);
 	}
 
@@ -689,7 +705,7 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 	if ($statut == "off" OR $statut == "prop") $res .= "</div>";
 
 	if ($spip_display != 4) {
-		if ($compteur_forum == 1) $res .= fin_cadre_forum(true);
+		if ($compteur_forum == 1) $res .= fin_cadre_forum(true) . '<br />';
 		else $res .= fin_cadre_thread_forum(true);
 		$res .= "</td></tr></table>\n";
 	} else $res .= "</li>\n";
@@ -917,11 +933,12 @@ function icone_inline($texte, $lien, $fond, $fonction="", $align=""){
 	global $spip_display;
 
 	if ($fonction == "supprimer.gif") {
-		$style = 'icone36-danger';
+		$style = 'icone36 danger';
 	} else {
 		$style = 'icone36';
 		if (strlen($fonction) < 3) $fonction = "rien.gif";
 	}
+	$style .= " " . substr(basename($fond),0,-4);
 
 	if ($spip_display == 1){
 		$hauteur = 20;
@@ -961,7 +978,7 @@ function icone_inline($texte, $lien, $fond, $fonction="", $align=""){
 	else $atts = '';
 	
 	if ($align) $align = "float: $align; ";
-	$icone = "\n<a style='width: 72px;$align' class='$style'"
+	$icone = "\n<a style='$align' class='$style'"
 	. $atts
 	. "\nhref='"
 	. $lien
@@ -1023,33 +1040,12 @@ function f_boite_infos($flux) {
 	$id = $args['id'];
 	$row = $args['row'];
 
-	if ($type == 'article') {
-		$boite .= "\n<div style='font-weight: bold; text-align: center' class='verdana1 spip_xx-small'>" 
-		. _T('info_numero_article')
-		.  "<br /><span class='spip_xx-large'>"
-		.  $id
-		.  '</span></div>';
-	}
-
-	$boite .= voir_en_ligne($type, $id, $row['statut'], 'racine-24.gif', false);
-
-	// statistiques
-	if ($type == 'article') {
-		if ($row['statut'] == 'publie'
-		AND $row['visites'] > 0
-		AND $GLOBALS['meta']["activer_statistiques"] != "non"
-		AND autoriser('voirstats', $type, $id)) {
-			$boite .= icone_horizontale(_T('icone_evolution_visites', array('visites' => $row['visites'])), generer_url_ecrire("statistiques_visites","id_article=$id"), "statistiques-24.gif","rien.gif", false);
-		}
-	}
+	unset($args['row']);
+	include_spip('public/assembler');
+	$boite .= recuperer_fond("prive/{$type}_infos",$args);
 
-	// revisions d'articles
-	if ($type == 'article') {
-		if (($GLOBALS['meta']["articles_versions"]=='oui')
-		AND $row['id_version']>1
-		AND autoriser('voirrevisions', $type, $id))
-			$boite .= icone_horizontale(_T('info_historique_lien'), generer_url_ecrire("articles_versions","id_article=$id"), "historique-24.gif", "rien.gif", false);
-	}
+	if (!in_array($type,array('article','rubrique','site','breve')))
+		$boite .= voir_en_ligne($type, $id, $row['statut'], 'racine-24.gif', false);
 
 	$flux['data'] = $boite;
 	return $flux;
@@ -1074,7 +1070,7 @@ function gros_titre($titre, $ze_logo='', $aff=true){
 
 // http://doc.spip.org/@debut_grand_cadre
 function debut_grand_cadre($return=false){
-	$res =  "\n<br /><br />\n<div class='table_page'>\n";
+	$res =  "\n<div class='table_page'>\n";
 	if ($return) return $res; else echo_log('debut_grand_cadre',$res);
 }
 
@@ -1383,6 +1379,8 @@ function afficher_hierarchie($id_rubrique) {
 	$parents = '';
 	$style1 = "$spip_lang_left center no-repeat; padding-$spip_lang_left: 15px";
 	$style2 = "margin-$spip_lang_left: 15px;";
+	$tag = "a";
+	$on = ' on';
 
 	while ($id_rubrique) {
 
@@ -1393,29 +1391,34 @@ function afficher_hierarchie($id_rubrique) {
 		$id_parent = $res['id_parent'];
 		changer_typo($res['lang']);
 
-		$logo = (!$id_parent) ? "secteur-12.gif"
+		$class = (!$id_parent) ? "secteur"
 		: (acces_restreint_rubrique($id_rubrique)
-		? "admin-12.gif" : "rubrique-12.gif");
+		? "admin" : "rubrique");
 
-		$parents = "\n<div class='verdana3' "
-		. http_style_background($logo, $style1)
-		. "><a href='"
-		. generer_url_ecrire("naviguer","id_rubrique=$id_rubrique")
-		. "'>"
-		. typo(sinon($res['titre'], _T('ecrire:info_sans_titre')))
-		. "</a></div>\n<div style='$style2'>"
+		$parents = "<ul><li><span><em> &gt; </em><$tag class='$class$on'"
+		. ($tag=='a'?" href='". generer_url_ecrire("naviguer","id_rubrique=$id_rubrique")."'":"")
+		. ">"
+		. supprimer_numero(typo(sinon($res['titre'], _T('ecrire:info_sans_titre'))))
+		. "</$tag></span>"
 		. $parents
-		. "</div>";
+		. "</li></ul>";
 
 		$id_rubrique = $id_parent;
+		$tag = 'a';
+		$on = '';
 	}
 
-	return "\n<div class='verdana3' " .
-		  http_style_background("racine-site-12.gif", $style1). 
-		  "><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'><b>"._T('lien_racine_site')."</b></a>".aide ("rubhier")."</div>\n<div style='$style2'>".$parents."</div>";
+	return "\n<ul id='chemin' class='verdana3' dir='".lang_dir()."'" 
+	  //. http_style_background("racine-site-12.gif", $style1)
+	  . "><li><span><$tag class='racine$on'" 
+		. ($tag=='a'?" href='". generer_url_ecrire("naviguer","id_rubrique=$id_rubrique")."'":"")
+	  . ">"._T('lien_racine_site')."</$tag>"
+ 	  . aide ("rubhier")
+ 	  . "</span>"
+	  . $parents
+ 	  . "</li></ul>";
 }
 
-
 // http://doc.spip.org/@enfant_rub
 function enfant_rub($collection){
 	global $spip_display, $spip_lang_left, $spip_lang_right, $spip_lang;
@@ -1510,7 +1513,9 @@ function afficher_enfant_rub($id_rubrique, $bouton=false, $return=false) {
 	global  $spip_lang_left,$spip_lang_right, $spip_display;
 	
 	$les_enfants = enfant_rub($id_rubrique);
-	$n = strlen($les_enfants);
+	$n = strlen(trim($les_enfants));
+	
+	if (!$n && !$bouton) return "";
 	
 	if (!($x = strpos($les_enfants,"\n<div class='enfants'>",round($n/2)))) {
 		$les_enfants2="";
@@ -1523,11 +1528,11 @@ function afficher_enfant_rub($id_rubrique, $bouton=false, $return=false) {
 		}
 	}
 
-	$res = "\n<div>&nbsp;</div>"
-	. "<div style='float:$spip_lang_left;width:49%;position:relative;'>"
+	$res = 
+	"<div class='gauche'>"
 	. $les_enfants
 	. "</div>"
-	. "<div style='float:$spip_lang_right;width:49%;position:relative;'>"
+	. "<div class='droite'>"
 	. $les_enfants2
 	. "</div>"
 	. "&nbsp;"
@@ -1597,7 +1602,7 @@ function voir_en_ligne ($type, $id, $statut=false, $image='racine-24.gif', $af =
 	else
 		return '';
 
-	return icone_horizontale($message, generer_url_action('redirect', "id_$type=$id&var_mode=$en_ligne"), $image, "rien.gif", $af);
+	return icone_inline($message, generer_url_action('redirect', "id_$type=$id&var_mode=$en_ligne"), $image, "rien.gif", $GLOBALS['spip_lang_left']);
 
 }