formulaire de modification d'un compte auteur, en utilisant le plugin saisies OK : page=editer_compte_spip
This commit is contained in:
parent
16a83fa421
commit
61a98417d8
7 changed files with 207 additions and 0 deletions
40
README.md
40
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
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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',
|
||||
)
|
||||
]
|
||||
];
|
||||
|
|
6
content/editer_compte_spip.html
Normal file
6
content/editer_compte_spip.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
<div class="inner">
|
||||
<h1>Editer compte SPIP</h1>
|
||||
<div class="ajax">
|
||||
[(#FORMULAIRE_EDITER_COMPTE_SPIP{})]
|
||||
</div>
|
||||
</div>
|
29
formulaires/editer_compte_spip.html
Normal file
29
formulaires/editer_compte_spip.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
<div class="formulaire_spip formulaire_#FORM">
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
|
||||
<form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
#GENERER_SAISIES{#ENV{_saisies}}
|
||||
|
||||
<fieldset>
|
||||
<legend>Mot de passe</legend>
|
||||
|
||||
[(#SAISIE{input,password}
|
||||
{type=password}
|
||||
{label="password"}
|
||||
)]
|
||||
[(#SAISIE{input,password_confirmation}
|
||||
{type=password}
|
||||
{label="password confirm"}
|
||||
)]
|
||||
</fieldset>
|
||||
|
||||
<div class="boutons">
|
||||
<button type="submit" class="btn"><:comptespip:valider:></button>
|
||||
</div>
|
||||
</div></form>
|
||||
|
||||
</div>
|
105
formulaires/editer_compte_spip.php
Normal file
105
formulaires/editer_compte_spip.php
Normal file
|
@ -0,0 +1,105 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
function formulaires_editer_compte_spip_saisies_dist($id_auteur = 'new', $redirect = '') {
|
||||
$saisies = $GLOBALS['comptespip_editer'];
|
||||
return $saisies;
|
||||
}
|
||||
|
||||
function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redirect = ''){
|
||||
$id_auteur = session_get('id_auteur');
|
||||
$valeurs = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
|
||||
|
||||
$valeurs['password'] = '';
|
||||
$valeurs['password_confirmation'] = '';
|
||||
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){
|
||||
|
||||
$erreurs = array();
|
||||
|
||||
// mot de passe
|
||||
if (_request('password') != _request('password_confirmation')){
|
||||
$erreurs['password_confirmation'] = _T('info_passes_identiques');
|
||||
}
|
||||
|
||||
if ( strlen(_request('password')) > 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;
|
||||
}
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
<licence>GNU/GPL</licence>
|
||||
|
||||
<necessite nom="saisies" compatibilite="[3.30.0;[" />
|
||||
|
||||
|
||||
<pipeline nom="autoriser" inclure="comptespip_autorisations.php" />
|
||||
|
||||
<pipeline nom="comptespip_pre_inscription" action="" />
|
||||
|
|
Loading…
Add table
Reference in a new issue