compteSPIP/formulaires/editer_compte_spip.php

105 lines
2.6 KiB
PHP

<?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;
}