Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 82 → Rev 83

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