diff --git a/base/contrib_declarations.php b/base/contrib_declarations.php
new file mode 100755
index 0000000..f7caffc
--- /dev/null
+++ b/base/contrib_declarations.php
@@ -0,0 +1,91 @@
+ 'rubrique_categorie',
+ 'options' => array(
+ 'nom' => 'categorie',
+ 'label' => '<:svp:label_categorie:>',
+ 'option_intro' => '<:contrib:categorie_vide:>',
+ 'env' => true,
+ 'restrictions' => array(
+ 'modifier' => array(
+ 'auteur' => 'webmestre',
+ ),
+ 'voir' => false,
+ ),
+ 'sql' => "varchar(100) DEFAULT '' NOT NULL",
+ 'rechercher_ponderation' => '2',
+ ),
+ 'versionner' => false,
+ 'verifier' => array(
+ ),
+ );
+
+ $champs['spip_rubriques']['prefixe'] = array(
+ 'saisie' => 'input',
+ 'options' => array(
+ 'nom' => 'prefixe',
+ 'label' => '<:svp:label_prefixe:>',
+ 'env' => true,
+ 'restrictions' => array(
+ 'modifier' => array(
+ 'auteur' => 'webmestre',
+ ),
+ 'voir' => false,
+ ),
+ 'sql' => "varchar(30) DEFAULT '' NOT NULL",
+ 'rechercher_ponderation' => '10',
+ ),
+ 'versionner' => false,
+ 'verifier' => array(
+ ),
+ );
+
+ // Table : spip_rubriques, on initialise les champs extras de la table.
+ if (!is_array($champs['spip_articles'])) {
+ $champs['spip_articles'] = array();
+ }
+
+ // Ajout de la catégorie de plugin. La saisie est une sélection particulière.
+ $champs['spip_articles']['type_article'] = array(
+ 'saisie' => 'input',
+ 'options' => array(
+ 'nom' => 'type_article',
+ 'label' => '<:contrib:label_type_article:>',
+ 'restrictions' => array(
+ 'modifier' => array(
+ 'auteur' => 'webmestre',
+ ),
+ ),
+ 'sql' => "varchar(16) DEFAULT '' NOT NULL",
+ ),
+ 'versionner' => false,
+ 'verifier' => array(
+ ),
+ );
+
+ return $champs;
+}
diff --git a/contrib_administrations.php b/contrib_administrations.php
new file mode 100644
index 0000000..2e95b8a
--- /dev/null
+++ b/contrib_administrations.php
@@ -0,0 +1,38 @@
+ 'Aucune catégorie',
+);
diff --git a/paquet.xml b/paquet.xml
new file mode 100644
index 0000000..3990112
--- /dev/null
+++ b/paquet.xml
@@ -0,0 +1,23 @@
+
+ Contrib - Mécanismes et espace privé
+
+ Collectif SPIP
+
+ GPL 3
+
+
+
+
+
+
+
+
+
diff --git a/saisies/plugin_categorie.html b/saisies/plugin_categorie.html
new file mode 100644
index 0000000..95d88c7
--- /dev/null
+++ b/saisies/plugin_categorie.html
@@ -0,0 +1,30 @@
+[(#REM)
+
+ ### /!\ Saisie des catégories d'un plugin ###
+
+ Paramètres :
+ - nom : name du select
+ - data : tableau de donnees avec ou sans traduction
+ sans => [] = alias catégorie
+ avec => [alias catégorie] = traduction catégorie
+ - class : classe(s) css ajoutes au select
+ - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
+ - cacher_option_intro : pas de premier option vide (defaut:"")
+]
+
+
+
+
+[(#ENV**|unserialize|bel_env)]
diff --git a/saisies/rubrique_categorie.html b/saisies/rubrique_categorie.html
new file mode 100644
index 0000000..546adc1
--- /dev/null
+++ b/saisies/rubrique_categorie.html
@@ -0,0 +1,30 @@
+[(#REM)
+
+ ### /!\ Saisie des catégories d'un plugin ###
+
+ Paramètres :
+ - nom : name du select
+ - class : classe(s) css ajoutes au select
+]
+
+[(#REM) Déterminer les data en fonction du contexte ]
+#SET{data, #ARRAY}
+
+[(#PROFONDEUR|=={0}|oui) #SET{data, #VAL{1}|svp_lister_categorie}]
+[(#PROFONDEUR|=={1}|oui) #SET{data, #VAL{2}|svp_lister_categorie{#INFO_CATEGORIE{rubrique, #ID_PARENT}}}]
+
+
+
+
+
+