/trunk/exemple/controleurs/AdminAdministrateur.php |
---|
1,5 → 1,4 |
<?php |
/** |
* Classe controleur pour l'application administration des administrateurs |
*/ |
8,8 → 7,7 |
/** |
* Fonction d'affichage par défaut, elle appelle la liste des administrateurs |
*/ |
function index() { |
public function index() { |
$this->charger_admin(); |
} |
18,8 → 16,7 |
* @param array un tableau contenant les erreurs à afficher s'il y en a |
* @return string la vue correspondante |
*/ |
function chargerAdmin($erreurs = array()) { |
public function chargerAdmin($erreurs = array()) { |
$this->chargerModele('ListeAdmin'); |
$data['erreurs'] = $erreurs; |
$data['admin'] = $this->ListeAdmin->chargerAdmin(); |
34,14 → 31,12 |
* @id string l'id de l'administrateur à modifier |
* @return string la vue correspondante |
*/ |
function modifAdmin($id) { |
public function modifAdmin($id) { |
$this->chargerModele('ListeAdmin'); |
$data['admin'] = $this->ListeAdmin->loadDetailsAdmin($id); |
$this->chargerVue('modif_admin',$data); |
return $this->modif_admin; |
return $this->modif_admin; |
} |
/** |
57,15 → 52,13 |
* @param string la confirmation du mot de passe |
* @return string la vue correspondante |
*/ |
function modifAdminVa($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) ; |
public function modifAdminVa($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
$this->chargerModele('ListeAdmin') ; |
$res = $this->ListeAdmin->modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass,$pass_conf) ; |
if (count($res) == 0) { |
return $this->chargerAdmin() ; |
} else { |
$admin['ga_id_administrateur'] = $id; |
$admin['ga_nom'] = $nom; |
$admin['ga_prenom'] = $prenom; |
77,7 → 70,6 |
return $this->modif_admin; |
} |
} |
/** |
87,8 → 79,7 |
* @return string la vue contenant la liste des administrateurs |
* |
*/ |
function supprAdmin($id) { |
public function supprAdmin($id) { |
$this->chargerModele('ListeAdmin'); |
$res = $this->ListeAdmin->suppAdmin($id); |
if ($res == '') { |
104,7 → 95,6 |
* @return string la vue contenant le formulaire d'ajout |
*/ |
function ajoutAdmin() { |
$admin['ga_id_administrateur'] = ''; |
$admin['ga_nom'] = ''; |
$admin['ga_prenom'] = ''; |
128,27 → 118,25 |
* @param string la confirmation du mot de passe |
* @return string la vue correspondante |
*/ |
function ajoutAdminVa($nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
if (empty($nom) || empty($prenom) || empty($mail) || empty($pass) || empty($pass_conf)) { |
$res = array('champs' => 'Tous les champs sont obligatoires') ; |
$data['erreurs'] = $res; |
$admin['ga_nom'] = $nom; |
$admin['ga_prenom'] = $prenom; |
$admin['ga_mail'] = $mail; |
$admin['ga_ce_i18n'] = $lang; |
$data['admin'] = $admin; |
$this->chargerVue('ajout_admin',$data); |
public function ajoutAdminVa($nom,$prenom,$mail,$lang,$pass,$pass_conf) { |
if (empty($nom) || empty($prenom) || empty($mail) || empty($pass) || empty($pass_conf)) { |
$res = array('champs' => 'Tous les champs sont obligatoires') ; |
$data['erreurs'] = $res; |
$admin['ga_nom'] = $nom; |
$admin['ga_prenom'] = $prenom; |
$admin['ga_mail'] = $mail; |
$admin['ga_ce_i18n'] = $lang; |
$data['admin'] = $admin; |
$this->chargerVue('ajout_admin',$data); |
return $this->ajout_admin; |
} |
return $this->ajout_admin; |
} |
$this->chargerModele('ListeAdmin'); |
$res = $this->ListeAdmin->ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf); |
$this->chargerModele('ListeAdmin'); |
$res = $this->ListeAdmin->ajoutAdmin($nom,$prenom,$mail,$lang,$pass,$pass_conf); |
if (count($res) == 0) { |
return $this->chargerAdmin(); |
} else { |
$admin['ga_nom'] = $nom; |
$admin['ga_prenom'] = $prenom; |
$admin['ga_mail'] = $mail; |
164,9 → 152,8 |
/** Apelle le formulaire d'identification (dans le cas où l'utilisateur n'est pas identifié) |
* @return string la vue permettant de s'identifier |
*/ |
function demanderIdent() { |
public function demanderIdent() { |
$this->chargerVue('ident_admin',null); |
return $this->ident_admin; |
} |
174,10 → 161,8 |
* Renvoie la tête de page de l'application |
* @return string la tete de page de l'application |
*/ |
function adminTete() { |
public function adminTete() { |
$tete = '<h1>Gestion des administrateurs de Papyrus</h1>'; |
return $tete; |
} |
185,12 → 170,9 |
* Renvoie le pied de page de l'application |
* @return string le pied de page de l'application |
*/ |
function adminPied() { |
public function adminPied() { |
$pied = ''; |
return $pied; |
} |
} |
?> |
?> |
/trunk/exemple/modeles/ListeAdmin.php |
---|
1,5 → 1,4 |
<?php |
/** |
* Modèle d'accès à la base de données des administrateurs |
* de papyrus |
6,7 → 5,7 |
*/ |
class listeAdmin extends Modele { |
var $config = array() ; |
private $config = array(); |
/** |
* Charge la liste complète des administrateurs |
13,19 → 12,19 |
* return array un tableau contenant des objets d'informations sur les administrateurs |
* @return array un tableau d'objets contenant la liste des administrateurs |
*/ |
function chargerAdmin() { |
$query = 'SELECT * FROM gen_annuaire ORDER BY ga_id_administrateur' ; |
$res = $this->requete($query) ; |
$admin = array() ; |
foreach ($res->fetchAll() as $ligne) |
{ |
if($ligne['ga_id_administrateur'] != 0) { |
$admin[] = $ligne ; |
public function chargerAdmin() { |
$requete = 'SELECT * '. |
'FROM gen_annuaire '. |
'ORDER BY ga_id_administrateur'; |
$resultat = $this->requete($requete); |
$admin = array(); |
foreach ($resultat->fetchAll() as $ligne) { |
if ($ligne['ga_id_administrateur'] != 0) { |
$admin[] = $ligne; |
} |
} |
return $admin ; |
return $admin; |
} |
/** |
34,16 → 33,17 |
* @param int l'identifiant de l'administrateur. |
* @return object un object contenant les informations de l'administrateur demandé |
*/ |
function loadDetailsAdmin($id) { |
$query = 'SELECT * FROM gen_annuaire where ga_id_administrateur="'.$id.'"' ; |
$res = $this->requete($query) ; |
$admin = array() ; |
foreach ($res->fetchAll() as $ligne) { |
$admin = $ligne ; |
public function loadDetailsAdmin($id) { |
$requete = 'SELECT * '. |
'FROM gen_annuaire '. |
"WHERE ga_id_administrateur = '$id' "; |
$resultat = $this->requete($requete); |
$admin = array(); |
foreach ($resultat->fetchAll() as $ligne) { |
$admin = $ligne; |
} |
return $admin ; |
return $admin; |
} |
59,23 → 59,24 |
* @param string la confirmation du mot de passe (optionnel) |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
function modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass='',$pass_conf='') { |
function modifDetailsAdmin($id, $nom, $prenom, $mail, $lang, $pass = '', $pass_conf = '') { |
$res = array(); |
$nb_admin = 0; |
$res = array() ; |
$nb_admin = 0 ; |
if(!$this->validerMail($mail)) { |
$res['mail'] = 'Adresse mail invalide' ; |
if (!$this->validerMail($mail)) { |
$res['mail'] = 'Adresse mail invalide'; |
} |
$query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail).' AND ga_id_administrateur !='.$id ; |
if($res_nb = $this->requete($query_verif_mail)) { |
$query_verif_mail = 'SELECT COUNT(*) AS nb_admin '. |
'FROM gen_annuaire '. |
"WHERE ga_mail = '{$this->proteger($mail)}'". |
" AND ga_id_administrateur != $id "; |
if ($res_nb = $this->requete($query_verif_mail)) { |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res ; |
return $res; |
} |
if($nb_admin != 0) { |
109,8 → 110,7 |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res ; |
return $res; |
} |
/** |
224,27 → 224,21 |
* @return bool true si le mail est valide, false sinon |
*/ |
function validerMail($mail) { |
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase |
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine) |
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // Caractères autorisés avant l'arobase |
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // Caractères autorisés après l'arobase (nom de domaine) |
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase |
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus |
// séparés par des caractères autorisés avant l'arobase |
'@' . // Suivis d'un arobase |
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine |
// séparés par des points |
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine |
$regex = '/^'.$atom.'+'. // Une ou plusieurs fois les caractères autorisés avant l'arobase |
'(\.'.$atom.'+)*'. // Suivis par zéro point ou plus, séparés par des caractères autorisés avant l'arobase |
'@'.// Suivis d'un arobase |
'('.$domain .'{1,63}\.)+'.// Suivis par 1 à 63 caractères autorisés pour le nom de domaine, séparés par des points |
$domain.'{2,63}$/i';// Suivi de 2 à 63 caractères autorisés pour le nom de domaine |
// test de l'adresse e-mail |
// Test de l'adresse e-mail |
if (preg_match($regex, $mail)) { |
return true ; |
return true; |
} else { |
return false ; |
return false; |
} |
} |
} |
?> |