/trunk/exemple/modeles/ListeAdmin.php |
---|
1,6 → 1,7 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des administrateurs |
* Modèle d'accès à la base de données des administrateurs |
* de papyrus |
*/ |
class listeAdmin extends Modele { |
8,7 → 9,7 |
private $config = array(); |
/** |
* Charge la liste complète des administrateurs |
* Charge la liste complète des administrateurs |
* return array un tableau contenant des objets d'informations sur les administrateurs |
* @return array un tableau d'objets contenant la liste des administrateurs |
*/ |
27,10 → 28,10 |
} |
/** |
* Charge les informations liées à un administrateur |
* grâce à son id |
* Charge les informations liées à un administrateur |
* grâce à son id |
* @param int l'identifiant de l'administrateur. |
* @return object un object contenant les informations de l'administrateur demandé |
* @return object un object contenant les informations de l'administrateur demandé |
*/ |
public function loadDetailsAdmin($id) { |
$requete = 'SELECT * '. |
47,8 → 48,8 |
/** |
* Modifie les informations liées à un administrateur dans la base de données |
* Si le mot de passe n'est pas renseigné, il n'est pas changé |
* Modifie les informations liées à un administrateur dans la base de données |
* Si le mot de passe n'est pas renseigné, il n'est pas changé |
* @param int identifiant de l'admiistrateur |
* @param string nom |
* @param string prenom |
74,20 → 75,20 |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res; |
} |
if($nb_admin != 0) { |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
} |
$query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='. |
$this->proteger($prenom).',ga_mail='.$this->proteger($mail) ; |
// si on a entré quelque chose dans les deux champs de mot de passe |
// si on a entré quelque chose dans les deux champs de mot de passe |
if($pass != '' || $pass_conf != '') { |
// on vérifie si les deux concordent |
// on vérifie si les deux concordent |
if($pass == $pass_conf) { |
// si oui, on les modifie |
$query .= ',ga_mot_de_passe='.$this->proteger(md5($pass)) ; |
106,7 → 107,7 |
if($req_maj = $this->requete($query)) { |
} else { |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res; |
113,7 → 114,7 |
} |
/** |
* Supprime un administrateur ayant un id donnée |
* Supprime un administrateur ayant un id donné |
* @param int l'identifiant de l'administrateur |
* @return array un tableau contenant les erreurs s'il y en a, vide sinon |
*/ |
127,7 → 128,7 |
$ligne = $res_nb->fetch(); |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res = 'Erreur dans la base de données' ; |
$res = 'Erreur dans la base de donn�es' ; |
return $res ; |
} |
141,13 → 142,13 |
if($res_supp = $this->requete($query)) { |
return $res ; |
} else { |
$res = 'Erreur dans la base de données' ; |
$res = 'Erreur dans la base de données' ; |
return $res ; |
} |
} |
/** |
* Ajoute un administrateur dans la base de données |
* Ajoute un administrateur dans la base de données |
* @param string nom |
* @param string prenom |
* @param string le mail |
171,16 → 172,16 |
$ligne = $res_nb->fetch() ; |
$nb_admin = $ligne['nb_admin'] ; |
} else { |
$res['bdd'] = 'Erreur dans la base de données' ; |
$res['bdd'] = 'Erreur dans la base de données' ; |
return $res ; |
} |
if($nb_admin != 0) { |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
$res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ; |
} |
if($pass != '' || $pass_conf != '') { |
// on vérifie si les deux concordent |
// on vérifie si les deux concordent |
if($pass == $pass_conf) { |
} else { |
210,7 → 211,7 |
if($res_ajout = $this->requete($query)) { |
} else { |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
$res['bdd'] = 'Erreur de la requête dans la base de données' ; |
} |
return $res ; |
217,20 → 218,20 |
} |
/** |
* Fonction qui prend une chaine en paramètre et renvoie vrai |
* Fonction qui prend une chaine en paramètre et renvoie vrai |
* si elle constitue un email syntaxiquement valide, faux sinon. |
* @param string le mail à valider |
* @param string le mail à valider |
* @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 |
$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 |
'('.$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 |
if (preg_match($regex, $mail)) { |
/trunk/exemple/admin_administrateur.php |
---|
New file |
0,0 → 1,92 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* @category PHP |
* @package Framework |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @copyright Tela-Botanica 2009 |
* @link /doc/framework/ |
* Ceci est un exemple d'application qui permet d'illustrer le fonctionnement du framework, il montre comment |
* une application peut être dans papyrus, ou bien utilisée en stand alone. |
*/ |
// La fonction autolad doit être appelée avant tout autre chose dans l'application. |
// Sinon, rien ne sera chargé. |
require_once dirname(__FILE__).'/../framework/autoload.inc.php'; |
Application::setChemin(__FILE__); |
Application::setInfo(Config::get('info')); |
/** |
* Fonction d'affichage de Papyrus, pour le corps de page |
*/ |
function afficherContenuCorps() { |
// Si l'utilisateur est authentifié |
if (Config::get('identification')) { |
// on renvoie la vue principale de l'application |
$methode = '' ; |
if (isset($_GET['m'])) { |
$methode = $_GET['m']; |
} |
$controlleur = new AdminAdministrateur(); |
switch ($methode) { |
case 'ajout_admin': |
return $controlleur->ajoutAdmin(); |
break; |
case 'ajout_admin_va': |
$nom = $_POST['admin_nom']; |
$prenom = $_POST['admin_prenom']; |
$mail = $_POST['admin_mail']; |
$lang = $_POST['admin_lang']; |
$pass = $_POST['admin_pass']; |
$pass_conf = $_POST['admin_pass_confirm']; |
return $controlleur->ajoutAdminVa($nom, $prenom, $mail, $lang, $pass, $pass_conf); |
break; |
case 'modif_admin': |
$id = $_GET['id_admin']; |
return $controlleur->modifAdmin($id); |
break; |
case 'modif_admin_va': |
$id = $_GET['id_admin']; |
$nom = $_POST['admin_nom']; |
$prenom = $_POST['admin_prenom']; |
$mail = $_POST['admin_mail']; |
$lang = $_POST['admin_lang']; |
$pass = $_POST['admin_pass']; |
$pass_conf = $_POST['admin_pass_confirm']; |
return $controlleur->modifAdminVa($id, $nom, $prenom, $mail, $lang, $pass, $pass_conf); |
break; |
case 'suppr_admin': |
$id = $_GET['id_admin']; |
return $controlleur->supprAdmin($id); |
break; |
default: |
$retour = $controlleur->chargerAdmin(); |
return $retour; |
break; |
} |
} else { |
// sinon on lui demande de s'identifier |
$controlleur = new AdminAdministrateur(); |
return $controlleur->demanderIdent(); |
} |
} |
function afficherContenuTete() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminTete(); |
} |
function afficherContenuPied() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminPied(); |
} |
function afficherContenuNavigation() { |
return ''; |
} |
function afficherContenuMenu() { |
return ''; |
} |
?> |
/trunk/exemple/configurations/config_papyrus.ini |
---|
1,4 → 1,4 |
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone |
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone |
url_base = "php:$GLOBALS['_GEN_commun']['url']->getUrl()" |
; Mettre à true si l'application nécessite de s'identifier. |
; Mettre à true si l'application nécessite de s'identifier. |
identification = "php:$GLOBALS['_GEN_commun']['pear_auth']->getAuth()" |
/trunk/exemple/configurations/config.ini |
---|
1,8 → 1,7 |
; Info sur l'application |
info.nom = Gestion des administrateurs de Papyrus |
info.abr = AA |
info.encodage = ISO-8859-15 |
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone |
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone |
url_base = "" |
; Mettre à true si l'application nécessite de s'identifier. |
; Mettre à true si l'application nécessite de s'identifier. |
identification = true |
/trunk/exemple/index.php |
---|
1,92 → 1,99 |
<?php |
/** |
* @category PHP |
* @package Framework |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @copyright Tela-Botanica 2009 |
* @link /doc/framework/ |
* Ceci est un exemple d'application qui permet d'illustrer le fonctionnement du framework, il montre comment |
* une application peut être dans papyrus, ou bien utilisée en stand alone. |
*/ |
// La fonction autolad doit être appelée avant tout autre chose dans l'application. |
// Sinon, rien ne sera chargé. |
require_once dirname(__FILE__).'/../framework/autoload.inc.php'; |
Application::setChemin(__FILE__); |
Application::setInfo(Config::get('info')); |
/** |
* Fonction d'affichage de Papyrus, pour le corps de page |
*/ |
function afficherContenuCorps() { |
// Si l'utilisateur est authentifié |
if (Config::get('identification')) { |
// on renvoie la vue principale de l'application |
$methode = '' ; |
if (isset($_GET['m'])) { |
$methode = $_GET['m']; |
} |
$controlleur = new AdminAdministrateur(); |
switch ($methode) { |
case 'ajout_admin': |
return $controlleur->ajoutAdmin(); |
break; |
case 'ajout_admin_va': |
$nom = $_POST['admin_nom']; |
$prenom = $_POST['admin_prenom']; |
$mail = $_POST['admin_mail']; |
$lang = $_POST['admin_lang']; |
$pass = $_POST['admin_pass']; |
$pass_conf = $_POST['admin_pass_confirm']; |
return $controlleur->ajoutAdminVa($nom, $prenom, $mail, $lang, $pass, $pass_conf); |
break; |
case 'modif_admin': |
$id = $_GET['id_admin']; |
return $controlleur->modifAdmin($id); |
break; |
case 'modif_admin_va': |
$id = $_GET['id_admin']; |
$nom = $_POST['admin_nom']; |
$prenom = $_POST['admin_prenom']; |
$mail = $_POST['admin_mail']; |
$lang = $_POST['admin_lang']; |
$pass = $_POST['admin_pass']; |
$pass_conf = $_POST['admin_pass_confirm']; |
return $controlleur->modifAdminVa($id, $nom, $prenom, $mail, $lang, $pass, $pass_conf); |
break; |
case 'suppr_admin': |
$id = $_GET['id_admin']; |
return $controlleur->supprAdmin($id); |
break; |
default: |
$retour = $controlleur->chargerAdmin(); |
return $retour; |
break; |
} |
} else { |
// sinon on lui demande de s'identifier |
$controlleur = new AdminAdministrateur(); |
return $controlleur->demanderIdent(); |
} |
} |
function afficherContenuTete() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminTete(); |
} |
function afficherContenuPied() { |
$controlleur = new AdminAdministrateur(); |
return $controlleur->adminPied(); |
} |
if(!defined('PAP_VERSION')) { |
echo afficherContenuTete(); |
echo afficherContenuCorps(); |
echo afficherContenuPied(); |
} |
/* |
* afficherContenuNavigation() |
* afficherContenuMenu() |
*/ |
?> |
/** Inclusion du fichier principal de l'application (eflore)*/ |
require_once 'admin_administrateur.php'; |
$contenu_navigation = afficherContenuNavigation(); |
$contenu_tete = afficherContenuTete(); |
$contenu_corps = afficherContenuCorps(); |
$titre = ""; |
$contenu_pied = afficherContenuPied(); |
$contenu_menu = afficherContenuMenu(); |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml" > |
<head xml:lang="fr" lang="fr"> |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
<meta http-equiv="Content-style-type" content="text/css" /> |
<meta http-equiv="Content-script-type" content="text/javascript" /> |
<meta http-equiv="Content-language" content="fr" /> |
<title><?php echo $titre; ?></title> |
<meta name="revisit-after" content="15 days" /> |
<meta name="robots" content="index,follow" /> |
<meta name="author" content="Tela Botanica" /> |
<style type="text/css" media="screen"> |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Tableau du chronométrage du programme */ |
#pied_texte #chrono { |
text-align: center; |
margin:0 auto;} |
#chrono table { |
display:block; |
border:3px solid #6495ed; |
border-collapse:collapse;} |
#chrono thead, tfoot { |
background-color:#D0E3FA; |
border:1px solid #6495ed;} |
#chrono tbody { |
background-color:#FFFFFF; |
border:1px solid #6495ed;} |
#chrono th { |
font-family:monospace; |
border:1px dotted #6495ed; |
padding:5px; |
background-color:#EFF6FF; |
width:25%;} |
#chrono td { |
font-family:sans-serif; |
font-size:80%; |
border:1px solid #6495ed; |
padding:5px; |
text-align:center;} |
#chrono caption { |
font-family:sans-serif; |
text-align: center; |
width:90%; |
margin:auto;} |
.debogage{ |
color:black; |
border:3px solid #6495ed;} |
.debogage_fichier, .debogage_ligne{ |
font-size:10px; |
color:#A9A9A9;} |
</style> |
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/favicon.ico" /> |
<link rel="icon" type="image/png" href="http://www.tela-botanica.org/sites/commun/generique/images/favicones/tela_botanica.png" /> |
</head> |
<body xml:lang="fr" lang="fr"> |
<div id="reducteur"> |
<div id="logo_tela"> |
<a href="/" title="Retour à l'accueil du site"> |
<img src="http://www.tela-botanica.org/sites/reseau/generique/images/graphisme/logo_jaune.gif" alt="le logo de Tela Botanica"/> |
</a> |
</div> |
<div id="droite"> |
<div id="onglets"> |
<?php echo $contenu_navigation; ?> |
</div> |
<div id="contenu"> |
<div id="entete"> |
<?php echo $contenu_tete; ?> |
</div> |
<div id="texte"> |
<?php echo $contenu_corps; ?> |
</div> |
<div id="pied_texte"> |
<?php |
echo $contenu_pied; |
?> |
</div> |
</div> |
</div> |
<div id="pied"> |
<p> ©<a href="http://www.tela-botanica.org/" accesskey="1">Tela Botanica</a> / 2000-2004 - Le réseau des Botanistes Francophones</p> |
</div> |
</div> |
</body> |
</html> |
/trunk/exemple/controleurs/AdminAdministrateur.php |
---|
1,4 → 1,5 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe controleur pour l'application administration des administrateurs |
*/ |
5,7 → 6,7 |
class AdminAdministrateur extends Controleur { |
/** |
* Fonction d'affichage par défaut, elle appelle la liste des administrateurs |
* Fonction d'affichage par défaut, elle appelle la liste des administrateurs |
*/ |
public function index() { |
$this->charger_admin(); |
12,8 → 13,8 |
} |
/** |
* Charge la liste des administrateurs et l'envoie à la vue |
* @param array un tableau contenant les erreurs à afficher s'il y en a |
* Charge la liste des administrateurs et l'envoie à la vue |
* @param array un tableau contenant les erreurs à afficher s'il y en a |
* @return string la vue correspondante |
*/ |
public function chargerAdmin($erreurs = array()) { |
26,9 → 27,9 |
} |
/** |
* Charge les détails d'un administrateur demandé et l'envoi à la |
* Charge les détails d'un administrateur demandé et l'envoi à la |
* vue qui permet de les modifier |
* @id string l'id de l'administrateur à modifier |
* @id string l'id de l'administrateur à modifier |
* @return string la vue correspondante |
*/ |
public function modifAdmin($id) { |
40,13 → 41,13 |
} |
/** |
* Fonction appelée lors de la validation du formulaire de modification |
* des détails d'un administrateurs. Elle modifie les détails dans la base |
* de données. S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* Fonction appelée lors de la validation du formulaire de modification |
* des détails d'un administrateurs. Elle modifie les détails dans la base |
* de données. S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* sinon elle charge la liste des administrateurs |
* @param string l'identifiant de l'administrateur* |
* @param string le nom |
* @param string le prénom |
* @param string le prénom |
* @param string le mail |
* @param string le mot de passe |
* @param string la confirmation du mot de passe |
73,7 → 74,7 |
} |
/** |
* Supprime un administrateur dans la base de données, |
* Supprime un administrateur dans la base de données, |
* renvoie la liste des administrateurs, en affichant des erreurs |
* s'il y en a. |
* @return string la vue contenant la liste des administrateurs |
107,12 → 108,12 |
} |
/** |
* Fonction appelée lors de la validation du formulaire d'ajout d'un administrateur. |
* Elle ajoute celui-ci les dans la base de données |
* Fonction appelée lors de la validation du formulaire d'ajout d'un administrateur. |
* Elle ajoute celui-ci les dans la base de données |
* S'il y a une erreur et rappelle la formulaire et notifie l'erreur, |
* sinon elle charge la liste des administrateurs |
* @param string le nom |
* @param string le prénom |
* @param string le prénom |
* @param string le mail |
* @param string le mot de passe |
* @param string la confirmation du mot de passe |
149,7 → 150,7 |
} |
} |
/** Apelle le formulaire d'identification (dans le cas où l'utilisateur n'est pas identifié) |
/** Apelle le formulaire d'identification (dans le cas où l'utilisateur n'est pas identifié) |
* @return string la vue permettant de s'identifier |
*/ |
public function demanderIdent() { |
158,7 → 159,7 |
} |
/** |
* Renvoie la tête de page de l'application |
* Renvoie la t�te de page de l'application |
* @return string la tete de page de l'application |
*/ |
public function adminTete() { |