diff --git a/README.md b/README.md
index 72e52d5..9950c76 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,42 @@
# compteSPIP
+CRUD sur un compte auteur :
+
+## Inscription / login
+>content/connect.html
+
+## Modification
+>content/editer_compte_spip.html
+Utilise un tableau de saisie :
+```php
+$GLOBALS['comptespip_editer'] = [
+ [
+ 'saisie' => 'input',
+ 'options' => array(
+ 'nom' => 'nom',
+ 'label' => 'Votre Nom',
+ 'obligatoire' => 'oui',
+ //'fonction' => 'ma_super_fonction'
+ )
+ ],
+ [
+ 'saisie' => 'input',
+ 'options' => array(
+ 'nom' => 'email',
+ 'label' => 'Votre Email',
+ 'obligatoire' => 'oui',
+ )
+ ]
+];
+```
+Avec une options facultative en plus **fonction** qui permet de mettre à jour un champ via cette fonction et non pas comme un simple champ dans la table spip_auteurs
+ex:
+```php
+function ma_super_fonction($id_auteur, $champ, $valeur){
+ sql_updateq('spip_app_clients',[$champ => $valeur], 'id_auteur='.intval($id_auteur));
+}
+```
+La gestion du mot de passe est deja géré, pas besoin de l'ajouter dans l'array des saisies
+
+
+
diff --git a/comptespip_fonctions.php b/comptespip_fonctions.php
index 774b108..1b789c2 100644
--- a/comptespip_fonctions.php
+++ b/comptespip_fonctions.php
@@ -12,3 +12,7 @@
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
+
+function appclient($id_auteur, $champ, $valeur){
+ sql_updateq('spip_auteurs',[$champ => $valeur, 'bio' => 'gagne'], 'id_auteur='.intval($id_auteur));
+}
diff --git a/comptespip_options.php b/comptespip_options.php
index 5d2f407..1c3babd 100644
--- a/comptespip_options.php
+++ b/comptespip_options.php
@@ -12,3 +12,23 @@
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
+
+$GLOBALS['comptespip_editer'] = [
+ [
+ 'saisie' => 'input',
+ 'options' => array(
+ 'nom' => 'nom',
+ 'label' => 'Votre Nom',
+ 'obligatoire' => 'oui',
+ //'fonction' => 'ma_super_fonction'
+ )
+ ],
+ [
+ 'saisie' => 'input',
+ 'options' => array(
+ 'nom' => 'email',
+ 'label' => 'Votre Email',
+ 'obligatoire' => 'oui',
+ )
+ ]
+];
diff --git a/content/editer_compte_spip.html b/content/editer_compte_spip.html
new file mode 100644
index 0000000..88b6dd9
--- /dev/null
+++ b/content/editer_compte_spip.html
@@ -0,0 +1,6 @@
+
+
Editer compte SPIP
+
+ [(#FORMULAIRE_EDITER_COMPTE_SPIP{})]
+
+
diff --git a/formulaires/editer_compte_spip.html b/formulaires/editer_compte_spip.html
new file mode 100644
index 0000000..7010e1b
--- /dev/null
+++ b/formulaires/editer_compte_spip.html
@@ -0,0 +1,29 @@
+
diff --git a/formulaires/editer_compte_spip.php b/formulaires/editer_compte_spip.php
new file mode 100644
index 0000000..9a2ca42
--- /dev/null
+++ b/formulaires/editer_compte_spip.php
@@ -0,0 +1,105 @@
+ 0 and strlen(_request('password')) < _PASS_LONGUEUR_MINI ){
+ $erreurs['password'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
+ }
+
+ // Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus
+ //if (!_request('password')){
+ //$erreurs['password'] = _T('info_obligatoire');
+ //}
+ //if (!_request('password_confirmation')){
+ //$erreurs['password_confirmation'] = _T('info_obligatoire');
+ //}
+
+ // email
+ if (!$email = strval(_request('email'))) {
+ $erreurs['email'] = _T('info_obligatoire');
+ } else {
+ include_spip('inc/filtres');
+ if (!email_valide($email)) {
+ $erreurs['email'] = _T('info_email_invalide');
+ }
+ }
+
+ return $erreurs;
+}
+
+function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redirect = ''){
+
+ $saisies = $GLOBALS['comptespip_editer'];
+ $id_auteur = session_get('id_auteur');
+ $retour = [];
+
+ if (!empty($saisies)) {
+ $set = [];
+ foreach ($saisies as $saisie) {
+ $champ = $saisie['options']['nom'];
+ $f = $saisie['options']['fonction'];
+ if (isset($f) and !empty($f)) {
+ $f($id_auteur, $champ, _request($champ));
+ }else {
+ $set[$champ] = _request($champ);
+ }
+ }
+ if (count($set) > 0) {
+ include_spip('action/editer_auteur');
+ $r = auteur_modifier($id_auteur, $set);
+ }
+ }
+
+ // gestion du login et du password
+ if (_request('login')) {
+ $login = _request('login');
+ }
+ if (_request('password')) {
+ $pass = _request('password');
+ }
+
+ $set_instituer = [
+ 'pass' => $pass,
+ 'login' => $login
+ ];
+ auteur_instituer($id_auteur, $set_instituer);
+
+
+ include_spip('inc/invalideur');
+ suivre_invalideur("id='id_auteur/$id_auteur'");
+
+ if ($r) {
+ $retour['message_erreur'] = $r;
+ } else {
+ $retour['message_ok'] = _T('comptespip/modification_compte_ok');
+ }
+ if ($redirect) {
+ $retour['redirect'] = $redirect;
+ }
+
+ return $retour;
+}
diff --git a/paquet.xml b/paquet.xml
index b12df23..1989619 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -15,6 +15,9 @@
GNU/GPL
+
+
+