diff --git a/.gitattributes b/.gitattributes
index ffd2852919298fe2cefabf067d99bc30f57bb4f9..867944a5f4e842258633a941d7aa007ac05c63ed 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -767,6 +767,7 @@ prive/squelettes/contenu/configurer_multilang.html -text
 prive/squelettes/contenu/configurer_preferences.html -text
 prive/squelettes/contenu/infos_perso.html -text
 prive/squelettes/contenu/navigation.html -text
+prive/squelettes/contenu/plan.html -text
 prive/squelettes/contenu/recherche.html -text
 prive/squelettes/contenu/recherche_fonctions.php -text
 prive/squelettes/contenu/rubrique.html -text
@@ -791,6 +792,10 @@ prive/squelettes/inclure/barre-nav_fonctions.php -text
 prive/squelettes/inclure/configurer.html -text
 prive/squelettes/inclure/head.html -text
 prive/squelettes/inclure/pied.html -text
+prive/squelettes/inclure/plan-articles.html -text
+prive/squelettes/inclure/plan-breves.html -text
+prive/squelettes/inclure/plan-rubriques.html -text
+prive/squelettes/inclure/plan-sites.html -text
 prive/squelettes/navigation/accueil.html -text
 prive/squelettes/navigation/admin_tech.html -text
 prive/squelettes/navigation/article.html -text
diff --git a/prive/squelettes/contenu/plan.html b/prive/squelettes/contenu/plan.html
new file mode 100644
index 0000000000000000000000000000000000000000..5c267671f705351232ab5544dbd7260b936a7926
--- /dev/null
+++ b/prive/squelettes/contenu/plan.html
@@ -0,0 +1,12 @@
+<h1><:plan_site:></h1>
+<INCLURE{fond=prive/squelettes/inclure/plan-rubriques,id_rubrique=#ENV{id_rubrique,0},env,ajax}>
+
+<style type="text/css">
+	ul.menu,ul.menu ul {border-left:1px solid #ddd;border-top:0;}
+	ul.menu li h4{margin-left:11px;margin-bottom:0;border-left:1px solid #ddd;}
+	ul.menu li .pagination {margin-left:11px;border-left:1px solid #ddd;}
+	ul.menu li {border-bottom:0;border-top:1px solid #ddd;padding-left:4px;}
+	ul.menu.articles li>a{padding-left:20px;background:url(#CHEMIN_IMAGE{article-16.png}) no-repeat center left;}
+	ul.menu.sites li>a{padding-left:20px;background:url(#CHEMIN_IMAGE{site-16.png}) no-repeat center left;}
+	ul.menu.breves li>a{padding-left:20px;background:url(#CHEMIN_IMAGE{breve-16.png}) no-repeat center left;}
+</style>
\ No newline at end of file
diff --git a/prive/squelettes/inclure/plan-articles.html b/prive/squelettes/inclure/plan-articles.html
new file mode 100644
index 0000000000000000000000000000000000000000..5ada04085f76d4c370d2a968ab97e98b1a534c51
--- /dev/null
+++ b/prive/squelettes/inclure/plan-articles.html
@@ -0,0 +1,13 @@
+#SET{nomp,artrub#ID_RUBRIQUE}
+#SET{nb,50}
+<B_articles>
+<h4><:articles:></h4>
+[<p class="pagination">[<em>(#VAL{article}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+<ul class="menu articles">
+	<BOUCLE_articles(ARTICLES) {id_rubrique} {par titre}{statut==.?}{pagination #GET{nb} #GET{nomp}}>
+		<li><a href="[(#ID_ARTICLE|generer_url_entite{article})]"
+						title="[(#VAL{article}|objet_info{texte_objet}|_T) #ID_ARTICLE]">[(#STATUT|puce_changement_statut{#STATUT,#ID_RUBRIQUE,article})][(#TITRE|couper{80}|sinon{<:info_sans_titre:>})]</a></li>
+	</BOUCLE_articles>
+</ul>
+[<p class="pagination">[<em>(#VAL{article}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+</B_articles>
diff --git a/prive/squelettes/inclure/plan-breves.html b/prive/squelettes/inclure/plan-breves.html
new file mode 100644
index 0000000000000000000000000000000000000000..691d0fecb9c74cee4de20728c1fe5f9a77f2a2da
--- /dev/null
+++ b/prive/squelettes/inclure/plan-breves.html
@@ -0,0 +1,13 @@
+#SET{nomp,sitrub#ID_RUBRIQUE}
+#SET{nb,50}
+<B_breves>
+	<h4><:breves:></h4>
+	[<p class="pagination">[<em>(#VAL{breve}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+	<ul class="menu breves">
+		<BOUCLE_breves(BREVES) {id_rubrique} {par date}{inverse}{statut==.?}{pagination #GET{nb} #GET{nomp}}>
+			<li><a href="[(#ID_BREVE|generer_url_entite{breve})]"
+						title="[(#VAL{breve}|objet_info{texte_objet}|_T) #ID_BREVE]">[(#STATUT|puce_changement_statut{#STATUT,#ID_RUBRIQUE,breve})][(#TITRE|couper{80}|sinon{<:info_sans_titre:>})]</a></li>
+		</BOUCLE_breves>
+	</ul>
+	[<p class="pagination">[<em>(#VAL{breve}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+</B_breves>
diff --git a/prive/squelettes/inclure/plan-rubriques.html b/prive/squelettes/inclure/plan-rubriques.html
new file mode 100644
index 0000000000000000000000000000000000000000..33664733505ad85d3dabfd3566a3940af7576974
--- /dev/null
+++ b/prive/squelettes/inclure/plan-rubriques.html
@@ -0,0 +1,21 @@
+#SET{nomp,rubrub#ID_RUBRIQUE}
+#SET{nb,50}
+<B_rubriques>
+	[<p class="pagination">[<em>(#VAL{rubrique}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+	<ul class="menu">
+		<BOUCLE_rubriques(RUBRIQUES) {id_parent=#ENV{id_parent}}{id_rubrique?} {par num titre,titre}{statut==.?}{pagination #GET{nb} #GET{nomp}}>
+			<li>
+				<a href="[(#SELF|parametre_url{id_rubrique,#ID_RUBRIQUE})]" class="ajax"
+				title="[(#VAL{rubrique}|objet_info{texte_objet}|_T) #ID_RUBRIQUE]"><strong>[(#STATUT|puce_changement_statut{#STATUT,#ID_PARENT,rubrique})][(#TITRE|couper{100}|sinon{<:info_sans_titre:>})]</strong></a>
+
+				<INCLURE{fond=prive/squelettes/inclure/plan-articles,id_rubrique,env,ajax}>
+				<INCLURE{fond=prive/squelettes/inclure/plan-sites,id_rubrique,env,ajax}>
+				<INCLURE{fond=prive/squelettes/inclure/plan-rubriques,id_parent=#ID_RUBRIQUE,id_rubrique='',env,ajax}>
+				[(#ID_PARENT|=={0}|oui)
+				<INCLURE{fond=prive/squelettes/inclure/plan-breves,id_rubrique,env,ajax}>
+				]
+			</li>
+		</BOUCLE_rubriques>
+	</ul>
+	[<p class="pagination">[<em>(#VAL{rubrique}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+</B_rubriques>
\ No newline at end of file
diff --git a/prive/squelettes/inclure/plan-sites.html b/prive/squelettes/inclure/plan-sites.html
new file mode 100644
index 0000000000000000000000000000000000000000..ff9bf0daaa41719bd38c05e534535a63cb046d5d
--- /dev/null
+++ b/prive/squelettes/inclure/plan-sites.html
@@ -0,0 +1,13 @@
+#SET{nomp,sitrub#ID_RUBRIQUE}
+#SET{nb,50}
+<B_sites>
+	<h4><:sites_web:></h4>
+	[<p class="pagination">[<em>(#VAL{site}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+	<ul class="menu sites">
+		<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}{statut==.?}{pagination #GET{nb} #GET{nomp}}>
+			<li><a href="[(#ID_SYNDIC|generer_url_entite{site})]"
+						title="[(#VAL{site}|objet_info{texte_objet}|_T) #ID_SYNDIC]">[(#STATUT|puce_changement_statut{#STATUT,#ID_SYNDIC,site})][(#NOM_SITE|couper{80}|sinon{<:info_sans_titre:>})]</a></li>
+		</BOUCLE_sites>
+	</ul>
+	[<p class="pagination">[<em>(#VAL{site}|objet_info{texte_objets}|_T)</em>](#PAGINATION{prive})</p>]
+</B_sites>
diff --git a/prive/themes/spip/plugins.css.html b/prive/themes/spip/plugins.css.html
index c2d2ce0b721d9b0d92ae5792d35479d398681024..0c7f352546b866c60959838de701f4f38d020480 100644
--- a/prive/themes/spip/plugins.css.html
+++ b/prive/themes/spip/plugins.css.html
@@ -57,9 +57,9 @@ h2.titrem { display: block; padding-top: 6px; padding-bottom: 4px; background-re
 ul.menu {list-style:none;margin:1em 0;padding:0;border-top:1px solid #ddd;clear:both;}
 ul.menu li {border-bottom:1px solid #ddd; padding:0; font-size: 10px;overflow:hidden;clear:both;}
 ul.menu li ul {margin:0;padding:0;margin-#GET{left}:11px;}
-ul.menu li a,ul.menu li strong.on {display:block;padding:0.4em 0;}
-ul.menu li a:hover {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];}
-ul.menu li .on {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];}
+ul.menu li >a,ul.menu li >strong.on {display:block;padding:0.4em 0;}
+ul.menu li >a:hover {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];}
+ul.menu li >.on {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];}
 
 /* les boutons action */
 form.bouton_action_post, form.bouton_action_post div {display:inline;}