diff --git a/.gitattributes b/.gitattributes
index dd8ce27eb2c3e1cda1c2d9b262bb78d5eb637c33..bbcc682053ba8f75c4edd6bed1cfb54f4283de4f 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -601,6 +601,8 @@ prive/objets/liste/objets-trad.html -text
 prive/objets/liste/objets-trad_fonctions.php -text
 prive/objets/liste/objets.html -text
 prive/objets/liste/rubriques.html -text
+prive/objets/liste/rubriques_associer.html -text
+prive/objets/liste/rubriques_lies.html -text
 prive/objets/liste/visiteurs.html -text
 prive/objets/liste/visiteurs_fonctions.php -text
 prive/puce_prive.gif -text
diff --git a/ecrire/base/objets.php b/ecrire/base/objets.php
index fe1f4336b34ac7ec0c64587e4d0e3866eb9bcb33..3b454d08cab7db6931c6a4cb921c3056446ab1e8 100644
--- a/ecrire/base/objets.php
+++ b/ecrire/base/objets.php
@@ -253,6 +253,8 @@ function lister_tables_objets_sql($table_sql=null, $desc=array()){
 				'texte_objet' => 'public:rubrique',
 				'texte_modifier' => 'icone_modifier_rubrique',
 				'texte_creer' => 'icone_creer_rubrique',
+				'texte_ajouter' => 'titre_ajouter_une_rubrique',
+				'texte_creer_associer' => 'creer_et_associer_une_rubrique',
 				'info_aucun_objet'=> 'info_aucun_rubrique',
 				'info_1_objet' => 'info_1_rubrique',
 				'info_nb_objets' => 'info_nb_rubriques',
diff --git a/ecrire/lang/ecrire_fr.php b/ecrire/lang/ecrire_fr.php
index 63dcf4859b6900fb620a54d30084d09cb7dac892..0021c9ce2242e225c237096ec06721f36a748369 100644
--- a/ecrire/lang/ecrire_fr.php
+++ b/ecrire/lang/ecrire_fr.php
@@ -113,6 +113,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 'connexion_ldap' => 'Connexion :',
 'copier_en_local' => 'Copier en local',
 'creer_et_associer_un_auteur' => 'Créer et associer un auteur',
+'creer_et_associer_une_rubrique' => 'Créer et associer une rubrique',
 
 // D
 'date_mot_heures' => 'heures',
@@ -682,7 +683,9 @@ dans une couleur qui indique leur état :',
 'lien_email' => 'email',
 'lien_nom_site' => 'NOM DU SITE :',
 'lien_retirer_auteur' => 'Retirer l\'auteur',
+'lien_retirer_rubrique' => 'Retirer la rubrique',
 'lien_retirer_tous_auteurs' => 'Retirer tous les auteurs',
+'lien_retirer_toutes_rubriques' => 'Retirer toutes les rubriques',
 'lien_retrait_particpant' => 'retirer ce participant',
 'lien_site' => 'site',
 'lien_supprimer_rubrique' => 'supprimer cette rubrique',
@@ -984,6 +987,7 @@ avez fait des modifications importantes de graphisme ou de structure du site.',
 'titre_admin_vider' => 'Maintenance technique',
 'titre_ajouter_un_auteur' => 'Ajouter un auteur',
 'titre_ajouter_un_mot' => 'Ajouter un mot-clé',
+'titre_ajouter_une_rubrique' => 'Ajouter une rubrique',
 'titre_cadre_afficher_article' => 'Afficher les articles',
 'titre_cadre_afficher_traductions' => 'Afficher l\'état des traductions pour les langues suivantes :',
 'titre_cadre_ajouter_auteur' => 'AJOUTER UN AUTEUR :',
diff --git a/prive/objets/liste/rubriques.html b/prive/objets/liste/rubriques.html
index 8a9221d9eae4cfae2b0690792dcfadd06f5175eb..7411f7d0e808fda0431ca67eea852a7dbcd3505c 100644
--- a/prive/objets/liste/rubriques.html
+++ b/prive/objets/liste/rubriques.html
@@ -23,7 +23,7 @@
 		<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
 			<td class='picto'>[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
 			<td class='titre principale'>[(#LOGO_RUBRIQUE|image_reduire{20,26})]<a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]"
-																																						title="<:info_numero_abbreviation|attribut_html:> #ID_RUBRIQUE">[(#RANG). ]#TITRE</a></td>
+				title="<:info_numero_abbreviation|attribut_html:> #ID_RUBRIQUE">[(#RANG). ]#TITRE</a></td>
 			<td class='langue'></td>
 			<td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
 			<td class='id'>[(#AUTORISER{modifier,rubrique,#ID_RUBRIQUE}|?{
diff --git a/prive/objets/liste/rubriques_associer.html b/prive/objets/liste/rubriques_associer.html
new file mode 100644
index 0000000000000000000000000000000000000000..b4649b2fbf548da63ef6297692c99a42c5563243
--- /dev/null
+++ b/prive/objets/liste/rubriques_associer.html
@@ -0,0 +1,57 @@
+[(#SET{defaut_tri,#ARRAY{
+	date,#ENV{date_sens,-1},
+	num titre,1,
+	id_rubrique,1,
+	points,-1
+}})
+]
+#SET{exclus,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}
+<B_liste_rub>
+#ANCRE_PAGINATION
+[<h3><:info_resultat_recherche:> &laquo;(#ENV{recherche})&raquo;</h3>]
+<div class="liste-objets liste-objets-associer rubriques">
+<table class='spip liste'>
+[<caption><span class="caption"><strong>(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong>
+<span class="recherche">
+	<label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
+	<input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
+	<input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
+</span>
+</span>
+</caption>]
+	<thead>
+		<tr class='first_row'>
+			<th class='picto' scope='col'></th>
+			<th class='titre' scope='col'>[(#TRI{num titre,<:info_titre:>,ajax})]</th>
+			<th class='date' scope='col'>[(#TRI{date,<:date:>,ajax})]</th>
+			<th class='id' scope='col'>[(#TRI{id_rubrique,<:info_numero_abbreviation:>,ajax})]</th>
+			<th class='action' scope='col'>&nbsp;</th>
+		</tr>
+	</thead>
+	<tbody>
+	<BOUCLE_liste_rub(RUBRIQUES){!id_rubrique IN #GET{exclus}}{tout}{where?}{statut?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>
+		<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)]">
+			<td class='picto'>[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
+			<td class='titre principale'>[(#LOGO_RUBRIQUE|image_reduire{20,26})]<a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]"
+				title="<:info_numero_abbreviation|attribut_html:> #ID_RUBRIQUE">[(#RANG). ]#TITRE</a></td>
+			<td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
+			<td class='id'>#ID_RUBRIQUE</td>
+			<td class='action'><button class="button" name="ajouter_lien[rubrique-#ID_RUBRIQUE-#OBJET-#ID_OBJET]" value="+"><:titre_ajouter_une_rubrique:> [(#CHEMIN_IMAGE{ajouter-12.png}|balise_img{'+'})]</button></td>
+		</tr>
+	</BOUCLE_liste_rub>
+	</tbody>
+</table>
+[<p class='pagination'>(#PAGINATION{prive})</p>]
+</div>
+</B_liste_rub>
+[(#ENV{recherche}|oui)
+<div class="liste-objets liste-objets-associer rubriques caption-wrap">
+<span class="caption"><strong>[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})]</strong>
+<span class="recherche">
+	<label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
+	<input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
+	<input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
+</span>
+</span>
+</div>
+]<//B_liste_rub>
diff --git a/prive/objets/liste/rubriques_lies.html b/prive/objets/liste/rubriques_lies.html
new file mode 100644
index 0000000000000000000000000000000000000000..89e955b2b771fe3530b37e2db124c5403033cb13
--- /dev/null
+++ b/prive/objets/liste/rubriques_lies.html
@@ -0,0 +1,46 @@
+[(#SET{defaut_tri,#ARRAY{
+	date,#ENV{date_sens,-1},
+	num titre,1,
+	id_rubrique,1,
+	points,-1
+}})
+]
+#SET{selection,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}
+<B_liste_rub>
+#ANCRE_PAGINATION
+<div class="liste-objets liste-objets-lies rubriques">
+<table class='spip liste'>
+[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong></caption>]
+	<thead>
+		<tr class='first_row'>
+			<th class='picto' scope='col'></th>
+			<th class='titre' scope='col'>[(#TRI{num titre,<:info_titre:>,ajax})]</th>
+			<th class='date' scope='col'>[(#TRI{date,<:date:>,ajax})]</th>
+			<th class='id' scope='col'>[(#TRI{id_rubrique,<:info_numero_abbreviation:>,ajax})]</th>
+			<th class='action' scope='col'>&nbsp;</th>
+		</tr>
+	</thead>
+	<tbody>
+	<BOUCLE_liste_rub(RUBRIQUES){id_rubrique IN #GET{selection}}{tout}{where?}{statut?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>
+		<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][(#ID_RUBRIQUE|=={#ENV{id_lien_ajoute}}|oui)append]">
+			<td class='picto'>[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
+			<td class='titre principale'>[(#LOGO_RUBRIQUE|image_reduire{20,26})]<a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]"
+				title="<:info_numero_abbreviation|attribut_html:> #ID_RUBRIQUE">[(#RANG). ]#TITRE</a></td>
+			<td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
+			<td class='id'>[(#AUTORISER{modifier,rubrique,#ID_RUBRIQUE}|?{
+				<a href="[(#URL_ECRIRE{rubriques_edit,id_rubrique=#ID_RUBRIQUE})]">#ID_RUBRIQUE</a>,
+				#ID_RUBRIQUE
+			})]</td>
+			<td class='action'><button class="button link delete" name="supprimer_lien[rubrique-#ID_RUBRIQUE-#OBJET-#ID_OBJET]" value="X"><:lien_retirer_rubrique:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button></td>
+		</tr>
+	</BOUCLE_liste_rub>
+	</tbody>
+</table>
+[<p class='pagination'>(#PAGINATION{prive})</p>]
+[(#GRAND_TOTAL|>{3}|oui)<div class="action"><button class="button link" name="supprimer_lien#EVAL{chr(91)}rubrique-*-#OBJET-#ID_OBJET#EVAL{chr(93)}" value="X"><:lien_retirer_toutes_rubriques:> [(#CHEMIN_IMAGE{supprimer-8.png}|balise_img{'X'})]</button></div>]
+</div>
+</B_liste_rub>
+<div class="liste-objets liste-objets-lies rubriques caption-wrap">
+<strong class="caption">[(#ENV*{titre,<:info_aucun_rubrique:>}) ]</strong>
+</div>
+<//B_liste_rub>