Subversion Repositories Applications.annuaire

Compare Revisions

No changes between revisions

Ignore whitespace Rev 6 → Rev 7

/trunk/controleurs/MetadonneeControleur.php
26,8 → 26,9
}
 
/**
* Charge la vue contenant la liste des annuaires gérés par l'application
* @return string la vue contenant la liste des annuaires
* Charge la vue contenant les informations d'un annuaire géré par l'application
* @param int $id l'annuaire dont on veut consulter les informations
* @return string la vue contenant les informations
*/
public function chargerAnnuaire($id) {
$this->chargerModele('AnnuaireModele');
35,9 → 36,9
$data['erreurs'] = array();
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id,true);
$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
$this->chargerVue('annuaire', $data);
$annuaire = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire', $data);
 
return $this->annuaire;
return $annuaire;
}
 
/**--------Fonctions de gestion des métadonnées associées à un annuaire--------*/
44,6 → 45,7
/**
* Affiche le formulaire d'ajout d'une metadonnee
* @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
* @return string la vue contenant le formulaire
*/
public function afficherFormulaireAjoutMetadonnee($valeurs) {
 
63,14 → 65,15
$this->chargerModele('MetadonneeModele');
$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
$this->chargerVue('metadonnee_ajout',$data);
$metadonnee_ajout = $this->getVue(config::get('chemin_squelettes_metadonnees').'metadonnee_ajout',$data);
 
return $this->metadonnee_ajout;
return $metadonnee_ajout;
}
 
/**
* Affiche le formulaire de modification d'une metadonnee
* @param Array $valeurs les valeurs à inclure dans le formulaire
* @return string la vue contenant le formulaire
*/
public function afficherFormulaireModificationMetadonnee($valeurs) {
 
91,13 → 94,15
$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
$this->chargerVue('metadonnee_modification',$data);
$metadonnee_modification = $this->getVue(config::get('chemin_squelettes_metadonnees').'metadonnee_modification',$data);
 
return $this->metadonnee_modification;
return $metadonnee_modification;
}
 
/**
* Ajoute un nouveau champ de métadonnée à un annuaire
* @param Array $valeurs les valeurs à ajouter
* @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
*/
public function ajouterNouvelleMetadonnee($valeurs) {
 
116,6 → 121,8
 
/**
* Modifie un champ de métadonnée associé à un annuaire
* @param Array $valeurs les valeurs à modifier
* @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
*/
public function modifierMetadonnee($valeurs) {
 
134,13 → 141,14
}
 
/**
* Modifie un champ de métadonnée associé à un annuaire
* Supprime un champ de métadonnée associé à un annuaire
* @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
*/
public function supprimerMetadonnee($valeurs) {
public function supprimerMetadonnee($id_metadonnee) {
 
if(isset($valeurs['amc_id_champ'])) {
$this->chargerModele('MetadonneeModele');
$this->MetadonneeModele->supprimerMetadonnee($valeurs['amc_id_champ']);
$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee);
} else {
return $this->afficherFormulaireModificationMetadonnee($valeurs);
}
/trunk/controleurs/OntologieControleur.php
36,9 → 36,9
$this->chargerModele('OntologieModele');
$data['ontologie'] = $this->OntologieModele->chargerListeListes();
$data['titre'] = 'Liste des listes';
$this->chargerVue('liste_des_listes', $data);
$liste_des_listes = $this->getVue(config::get('chemin_squelettes_ontologies').'liste_des_listes', $data);
 
return $this->liste_des_listes;
return $liste_des_listes;
}
 
/**
54,9 → 54,9
$data['informations'] = $this->OntologieModele->chargerInformationsOntologie($identifiant);
$data['ontologie'] = $this->OntologieModele->chargerListeOntologie($identifiant);
 
$this->chargerVue('liste_ontologie', $data);
$liste_ontologie = $this->getVue(config::get('chemin_squelettes_ontologies').'liste_ontologie', $data);
 
return $this->liste_ontologie;
return $liste_ontologie;
}
 
/**
82,8 → 82,9
$valeurs['amo_ce_parent'] = '';
}
 
$this->chargerVue('liste_ontologie_ajout', $valeurs);
return $this->liste_ontologie_ajout;
$liste_ontologie_ajout = $this->getVue(config::get('chemin_squelettes_ontologies').'liste_ontologie_ajout', $valeurs);
 
return $liste_ontologie_ajout;
}
 
/**
96,8 → 97,8
if(trim($id_ontologie) != '') {
$this->chargerModele('OntologieModele');
$data['valeurs'] = $this->OntologieModele->chargerInformationsOntologie($id_ontologie);
$this->chargerVue('liste_ontologie_modification', $data);
return $this->liste_ontologie_modification;
$liste_ontologie_modification = $this->getVue(config::get('chemin_squelettes_ontologies').'liste_ontologie_modification', $data);
return $liste_ontologie_modification;
} else {
return $this->chargerListeListe();
}
/trunk/controleurs/AnnuaireControleur.php
13,6 → 13,7
 
class AnnuaireControleur extends Controleur {
 
 
/**
* (fonction héritée de la classe Controleur)
* Avant chaque chargement de vue, on ajoute l'url de la page dans
31,9 → 32,9
*/
public function index() {
$data = array();
$this->chargerVue('index_annuaire', $data);
$index_annuaire = $this->getVue('index_annuaire', $data);
 
return $this->index_annuaire;
return $index_annuaire;
}
 
/**-------- Fonctions de gestion des annuaires --------------------------------*/
46,9 → 47,9
$this->chargerModele('AnnuaireModele');
$data['erreurs'] = null;
$data['annuaires'] = $this->AnnuaireModele->chargerListeAnnuaire();
$this->chargerVue('liste_annu', $data);
$liste_annu = $this->getVue(config::get('chemin_squelettes_annuaires').'liste_annu', $data);
 
return $this->liste_annu;
return $liste_annu;
}
 
/**
62,9 → 63,9
$data['erreurs'] = array();
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id, true);
$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
$this->chargerVue('annuaire', $data);
$annuaire = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire', $data);
 
return $this->annuaire;
return $annuaire;
}
 
/**
72,15 → 73,17
* @param $id int l'identifiant de l'annuaire
* @return string la vue contenant les inscrits à l'annuaire
*/
public function chargerAnnuaireListeInscrits($id) {
public function chargerAnnuaireListeInscrits($id, $numero_page = 1, $taille_page = 50) {
 
$this->chargerModele('AnnuaireModele');
$data['erreurs'] = array();
$champs = $this->obtenirChampsMappageAnnuaire($id);
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaireListeInscrits($id, $champs[0], 1);
$this->chargerVue('annuaire_inscrits', $data);
$data['champs'] = $this->obtenirChampsMappageAnnuaire($id);
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaireListeInscrits($id, $data['champs'][0], $numero_page, $taille_page);
$data['pagination'] = array('numero_page' => $numero_page, 'taille_page' => $taille_page);
 
return $this->annuaire_inscrits;
$annuaires_inscrits = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire_inscrits', $data);
 
return $annuaires_inscrits;
}
 
/**-------- Fonctions d'affichage du formulaire de saisie d'un champ de metadonnée suivant le type de champ---------*/
111,11 → 114,14
 
// le nom du formulaire d'inscription est le même que le code de l'annuaire
// TODO: réfléchir à une meilleure manière de stocker ça
$this->ChargerVue($annuaire['informations']['aa_code'].'_inscription',$donnees);
// Générer un fichier s'il n'existe pas ? et ensuite le lire ?
if(!$this->formulaireExiste($annuaire['informations']['aa_code'])) {
$formulaire_inscription = $this->genererFormulaireInscription($donnees);
} else {
$formulaire_inscription = $this->GetVue(config::get('chemin_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees);
}
 
$formulaire_inscription = $annuaire['informations']['aa_code'].'_inscription';
 
return $this->$formulaire_inscription;
return $formulaire_inscription;
}
 
/**
133,13 → 139,13
$donnees['amc_id_champ'] = $id_champ;
$this->chargerModele('MetadonneeModele');
$nom__type_champ = $this->MetadonneeModele->renvoyerCorrespondanceNomTemplateChamp($donnees['amc_ce_type_affichage']);
return $this->getVue($nom__type_champ,$donnees);
return $this->getVue(config::get('chemin_squelettes_champs').$nom__type_champ,$donnees);
}
 
/**-------- Fonctions d'inscription -------------------------------------------------------------------------------*/
 
/**
* Lors d'une tentative d'inscription, ajoute une les infos dans la tables d'inscription
* Lors d'une tentative d'inscription, ajoute les infos dans la table d'inscription
* temporaire et envoie le mail contenant le lien de confirmation si tout s'est bien passé
* @param Array $valeurs les valeurs à ajouter
* @return string la vue contenant la confirmation de l'inscription
148,6 → 154,7
 
$this->chargerModele('MetadonneeModele');
$id_annuaire = $valeurs['aa_id_annuaire'];
unset($valeurs['aa_id_annuaire']);
 
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
$valeurs_mappees = array();
154,11 → 161,27
 
// on itère sur le tableau de valeur pour récupérer les champs de mappage;
foreach($valeurs as $nom_champ => $valeur) {
 
 
// pour chaque valeur
// on extrait l'id du champ
$ids_champ = mb_split("_",$nom_champ);
$id_champ = $ids_champ[count($ids_champ) - 1];
$ids_champ = mb_split("_",$nom_champ, 3);
 
if(count($ids_champ) == 3) {
 
$type = $ids_champ[0];
$id_champ = $ids_champ[2];
$confirmation = $valeurs[$type.'_'.$id_champ];
 
} else {
$type = $ids_champ[0];
$confirmation = false;
$id_champ = $ids_champ[1];
}
 
// on fait des vérifications et des remplacements sur certaines valeurs
$valeurs[$nom_champ] = $this->verifierEtRemplacerValeurChamp($type,$valeur,$confirmation);
 
// Si le champ fait partie des champs mappés
$cle_champ = array_search($id_champ, $tableau_mappage[1]);
 
165,18 → 188,18
if($cle_champ) {
// on ajoute sa clé correspondante dans le tableau des champs mappés
// qui sont les champs à vérifier
$valeurs_mappees[$ids_champ] = $valeur;
$valeurs_mappees[$cle_champ] = $valeur;
}
}
 
// vérification des champs minimaux : nom, prénom, mail, mot de passe
// TODO: des champs minimaux différents pour chaque annuaire ? comment les stocke t'on ?
/*if($erreurs = $this->verifierErreursChamps($id_annuaire,$valeurs_mappees, $tableau_mappage)) {
if($erreurs = $this->verifierErreursChamps($id_annuaire,$valeurs_mappees, $tableau_mappage)) {
$valeurs['erreurs'] = $erreurs;
return $this->afficherFormulaireInscription($id_annuaire, $valeurs);
}*/
}
 
$code_confirmation = $this->InsererDansTableTemporaireEtcreerCodeConfirmationInscription($valeurs);
$code_confirmation = $this->InsererDansTableTemporaireEtCreerCodeConfirmationInscription($valeurs);
 
$this->envoyerMailConfirmationInscription($valeurs_mappees['champ_mail'],
$valeurs_mappees['champ_nom'],
183,7 → 206,7
$valeurs_mappees['champ_prenom'],
$code_confirmation);
// Si tout s'est bien passé, on affiche la page de confirmation
return $this->getVue('annuaire_inscription_reussie',array());
return $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire_inscription_reussie',array());
}
 
/**
205,8 → 228,7
unset($valeurs['aa_id_annuaire']);
 
$this->chargerModele('MetadonneeModele');
// TODO: faire un tri par l'id ou selon autre critère pour séparer champs
// normaux des meta champs
 
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$valeurs_mappees = array();
298,15 → 320,14
unset($tableau_valeurs[$nom_champ]);
}
 
//print_r($tableau_valeurs);
 
$this->chargerModele('MetadonneeModele');
$champs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
 
$donnees['champs'] = array_merge($tableau_valeurs, $champs_metadonnees);
$this->chargerVue('annuaire_tela_inscrits_fiche',$donnees);
 
return $this->annuaire_tela_inscrits_fiche;
$annuaire_inscrits = $this->getVue(config::get('chemin_squelettes_fiches').'annuaire_tela_inscrits_fiche',$donnees);
 
return $annuaire_inscrits;
}
 
/**
326,10 → 347,17
$base_url->setVariableRequete('id',$code_confirmation_inscription);
 
$donnees = array('nom' => $nom, 'prenom' => $prenom, 'lien_confirmation_inscription' => $base_url->getURL());
$contenu_mail = $this->getVue('mail_confirmation_inscription',$donnees);
$contenu_mail = $this->getVue(config::get('chemin_squelettes_mails').'mail_confirmation_inscription',$donnees);
 
return mail($adresse_mail,'Inscription au site Tela Botanica',$contenu_mail);
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$entetes = 'MIME-Version: 1.0' . "\r\n";
$entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
// En-têtes additionnels
$entetes .= 'To: '.$adresse_mail."\r\n";
$entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
 
return mail($adresse_mail,'Inscription au site Tela Botanica',$contenu_mail, $entetes);
 
}
 
/**
336,7 → 364,7
* Insère les données dans la table d'inscription temporaire et crée un code de confirmation (à insérer dans le mail)
* @param Array $valeurs les valeurs à insérer
*/
private function InsererDansTableTemporaireEtcreerCodeConfirmationInscription($valeurs) {
private function InsererDansTableTemporaireEtCreerCodeConfirmationInscription($valeurs) {
// Le code de confirmation est constitué des 8 premiers caractères de l'identifiant de session
$code_confirmation = substr(session_id(), 0, 8) ;
 
389,35 → 417,63
 
$erreurs = false;
 
$champ_mail = '16';
$champ_prenom = '7';
$champ_nom = '1';
$champ_pass = '11';
 
if(!$this->mailValide($valeurs[$tableau_mappage[0]['champ_mail']])) {
if(!$this->mailValide($valeurs['champ_mail'])) {
$erreurs['text_'.$tableau_mappage[1]['champ_mail']] = 'mail invalide';
}
 
if(trim($valeurs['pass_'.$tableau_mappage[0]['champ_mail']]) != ''
|| trim($valeurs['pass_conf'.$tableau_mappage[1]['champ_mail']]) != '') {
 
if($valeurs['pass_'.$champ_pass] =! $valeurs['pass_conf_'.$champ_pass]) {
$erreurs['pass_'.$tableau_mappage[1]['champ_mail']] = 'mot de passe invalide';
}
 
if(trim($valeurs['pass']) == ''
|| $valeurs['pass_conf'] != $valeurs['pass']) {
$erreurs['pass_'.$tableau_mappage[1]['champ_pass']] = 'mot de passe invalide';
}
 
if(trim($valeurs['text_'.$tableau_mappage[0]['champ_mail']]) == '') {
$erreurs['text_'.$tableau_mappage[1]['champ_mail']] = 'le nom est obligatoire';
if(trim($valeurs['champ_nom']) == '') {
$erreurs['text_'.$tableau_mappage[1]['champ_prenom']] = 'le nom est obligatoire';
}
 
if(trim($valeurs['text_'.$tableau_mappage[0]['champ_mail']]) == '') {
$erreurs['text_'.$tableau_mappage[1]['champ_mail']] = 'le prénom est obligatoire';
if(trim($valeurs['champ_prenom']) == '') {
$erreurs['text_'.$tableau_mappage[1]['champ_nom']] = 'le prénom est obligatoire';
}
 
return $erreurs;
}
 
private function verifierEtRemplacerValeurChamp($type, $valeur) {
 
$valeur_modifiee = $valeur;
 
switch($type) {
 
// cas du champ texte, à priori, rien de particulier
case 'text':
$valeur_modifiee = $valeur;
break;
 
// cas du champ password : on le crypte
case 'password':
$valeur_modifiee = $this->encrypterMotDePasse($valeur);
break;
 
// cas du champ checkbox
case 'checkbox':
// Si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
if(is_array($valeur)) {
// on stocke les valeurs d'ontologies liées au cases cochées
$valeur_modifiee = implode(Config::get('separateur_metadonnee'), array_keys($valeur));
} else {
// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
$valeur_modifiee = 1;
}
break;
 
default:
$valeur_modifiee = $valeur;
break;
}
 
return $valeur_modifiee;
}
 
/**
* Renvoie vrai ou faux suivant qu'un mail donné en paramètre est syntaxiquement valide (ne vérifie pas l'existence
* de l'adresse)
426,9 → 482,55
*/
private function mailValide($mail) {
 
$regexp_mail = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$';
return eregi($regexp_mail, $mail);
$regexp_mail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
return preg_match($regexp_mail, $mail);
 
}
 
/**
* Renvoie un mot de passe crypté selon la fonction d'encryptage définie dans le fichier de configuration
* (si celle-ci n'existe pas on utilise une fonction par défaut)
* @param string $pass le mot de passe à encrypter
* @return string le mot de passe encrypté
*/
private function encrypterMotDePasse($pass) {
 
$fonction = Config::get('pass_crypt_fonct');
 
if(function_exists($fonction)) {
return $fonction($pass);
} else {
return md5($pass);
}
}
 
/**
* Renvoie le formulaire demandé s'il existe, sinon faux
* @param string $nom_formulaire le nom du formulaire demandé (qui est normalement le code d'un annuaire)
* @return boolean true si le formulaire existe, false sinon
*/
private function formulaireExiste($nom_formulaire) {
 
//echo Config::get('chemin_squelettes_formulaires').$nom_formulaire.'_inscription.tpl.html';
return file_exists(Config::get('chemin_squelettes').Config::get('chemin_squelettes_formulaires').$nom_formulaire.'_inscription.tpl.html');
}
 
/**
* Renvoie un formulaire d'inscription minimal auto-généré
* @param string $donnees les donnée à inclure dans le formulaire
* @return string la vue contenant le formulaire généré
*/
private function GenererFormulaireInscription($donnees) {
 
$formulaire_modele = $this->getVue(config::get('chemin_squelettes_formulaires').'inscription',$donnees);
 
if($formulaire_modele) {
return $formulaire_modele;
} else {
trigger_error("impossible de trouver le squelette de référence pour le formulaire");
}
 
return false;
}
}
?>
/trunk/annuaire.php
1,8 → 1,6
<?php
// declare(encoding='UTF-8');
/**
* 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.
*
* PHP version 5
*
22,6 → 20,9
Application::setChemin(__FILE__);
Application::setInfo(Config::get('info'));
 
// on stocke les style de l'annuaire pour papyrus
GEN_stockerStyleExterne('annuaire_papyrus',GEN_CHEMIN_PAP."/applications/annuaire/squelettes/css/annuaire_papyrus.css");
 
/**
* Fonction d'affichage de Papyrus, pour le corps de page
*/
100,8 → 101,8
 
case 'metadonnee_suppression':
$controleur = new MetadonneeControleur();
$valeurs = $_GET;
$retour = $controleur->supprimerMetadonnee($valeurs);
$id_a_supprimer = $_GET['amc_id_metadonnee'];
$retour = $controleur->supprimerMetadonnee($id_a_supprimer);
break;
 
case 'liste_annu':
119,7 → 120,19
case 'annuaire_inscrits':
$controleur = new AnnuaireControleur();
$id = $_GET['id_annuaire'];
$retour = $controleur->chargerAnnuaireListeInscrits($id);
 
if(isset($_GET['taille_page'])) {
$taille_page = $_GET['taille_page'];
} else {
$taille_page = 50;
}
 
if(isset($_GET['numero_page'])) {
$numero_page = $_GET['numero_page'];
} else {
$numero_page = 1;
}
$retour = $controleur->chargerAnnuaireListeInscrits($id, $numero_page, $taille_page);
break;
default:
 
/trunk/modeles/MetadonneeModele.php
169,10 → 169,10
* @param int $id_metadonnee l'identifiant de l'enregistrement à supprimer
*/
public function supprimerMetadonneeParId($id_metadonnee) {
$requete = 'DELETE FROM annu_meta_colonne '.
$requete_suppression_metadonnee = 'DELETE FROM annu_meta_colonne '.
'WHERE amc_id_champ = '.$id_metadonnee;
 
return $this->requete($requete);
return $this->requete($requete_suppression_metadonnee);
}
 
/**
207,8 → 207,8
private function renvoyerCorrespondanceNomId($id_ontologie,$id_parent) {
$requete = 'SELECT amo_nom '.
'FROM annu_meta_ontologie '.
'WHERE amo_ce_parent = '.$id_parent.' '.
'AND amo_id_ontologie = '.$id_ontologie;
'WHERE amo_ce_parent = '.$this->proteger($id_parent).' '.
'AND amo_id_ontologie = '.$this->proteger($id_ontologie);
 
return $this->requeteUn($requete);
}
288,6 → 288,16
return $this->requete($requete);
}
 
/** Supprime les valeurs de metadonnées associés à un identifiant de colonne
* @param int $id_colonne_liee l'identifiant de la colonne à laquelle sont associées les valeurs à supprimer
*/
public function supprimerValeursMetadonneesParIdColonneLiee($id_colonne_liee) {
$requete = 'DELETE FROM annu_meta_valeurs '.
'WHERE amv_ce_colonne = '.$id_colonne_liee;
 
return $this->requete($requete);
}
 
/**
* Charge les valeurs de metadonnées pour un identifiant de ligne donné
* @param int $id_annuaire l'identifiant de l'annuaire sur lequel on travaille
295,30 → 305,51
*/
public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) {
 
// TODO: la jointure est elle la plus efficace pour ce type de requete ?
// voir si des index bien placés peuvent résoudre le problème
// et faire plein de tests
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation, amo_nom FROM annu_meta_valeurs '.
'LEFT JOIN annu_meta_colonne '.
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '.
'LEFT JOIN annu_meta_ontologie '.
'ON annu_meta_ontologie.amo_ce_parent = annu_meta_colonne.amc_ce_ontologie AND '.
'annu_meta_valeurs.amv_valeur = annu_meta_ontologie.amo_id_ontologie '.
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' ';
// première requete pour obtenir les valeurs des champs de metadonnées liées à la ligne
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation FROM annu_meta_valeurs '.
'LEFT JOIN annu_meta_colonne '.
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '.
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' ';
 
$resultat_valeurs_metadonnees = $this->requeteTous($requete_valeurs_metadonnees);
 
if(!$resultat_valeurs_metadonnees) {
return false;
}
 
$liste_metadonnee = array();
$liste_metadonnee = array();
 
foreach ($resultat_valeurs_metadonnees as $ligne) {
} else {
foreach ($resultat_valeurs_metadonnees as $ligne) {
 
$liste_metadonnee[$ligne['amc_abreviation']] = $ligne;
// pour toutes les valeurs qui sont des élements d'une liste d'ontologie
if($ligne['amc_ce_ontologie'] != 0) {
 
// Si c'est un champ qui contient de multiples valeurs, alors il contient le séparateur de métadonnées
if(strpos($ligne['amv_valeur'],Config::get('separateur_metadonnee'))) {
 
$id_valeurs_metadonnees = explode(Config::get('separateur_metadonnee'), $ligne['amv_valeur']);
$ligne['amv_valeur'] = $id_valeurs_metadonnees;
 
//TODO: faire le foreach
foreach ($id_valeurs_metadonnees as $id_valeur) {
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($id_valeur,$ligne['amc_ce_ontologie']);
$ligne['amo_nom'][] = $resultat_nom_valeur['amo_nom'];
}
} else {
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($ligne['amv_valeur'],$ligne['amc_ce_ontologie']);
$ligne['amo_nom'] = $resultat_nom_valeur['amo_nom'];
}
 
$nom_valeur = $resultat_nom_valeur['amo_nom'];
 
//print_r($resultat_nom_valeur);
}
 
$liste_metadonnee[$ligne['amc_abreviation']] = $ligne;
}
}
 
//Debug::printr($liste_metadonnee);
 
return $liste_metadonnee;
 
}
/trunk/modeles/AnnuaireModele.php
67,8 → 67,9
 
/**
* Charge les inscrits d'une table annuaire mappée, en ne conservant que les champs de mappage indiqués
*
*/
public function chargerAnnuaireListeInscrits($identifiant, $champs_mappage, $page, $taille_page = 50) {
public function chargerAnnuaireListeInscrits($identifiant, $champs_mappage, $numero_page, $taille_page = 50) {
 
$requete = 'SELECT * '.
'FROM annu_annuaire '.
83,7 → 84,10
 
$string_champs_mappage = implode(",", $champs_mappage);
 
$requete = 'SELECT '.$string_champs_mappage.' FROM '.$annuaire['informations']['aa_bdd'].'.'.$annuaire['informations']['aa_table'].' LIMIT '.($page-1).','.($page*$taille_page);
$requete = 'SELECT '.$string_champs_mappage.
' FROM '.$annuaire['informations']['aa_bdd'].'.'.$annuaire['informations']['aa_table'].
' ORDER BY '.$champs_mappage['champ_id'].
' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page);
 
$resultat = $this->requeteTous($requete);
foreach ($resultat as $colonne) {
/trunk/configurations/config.ini
17,3 → 17,44
identification = true
; Nom de la base de données principale.
bdd_nom = "annuaire"
 
 
; Adresse mail indiquée comme expéditeur des mails envoyés par l'appli
adresse_mail_annuaire = "annuaire@tela-botanica.org"
 
; Séparateur des champs de métadonnées à multi valeurs
separateur_metadonnee = ";;"
 
; Fonction d'encryptage des mot de passe
pass_crypt_fonct = "sha1"
 
 
; Dossiers contenant les squelettes pour les types de champs
dossier_squelettes_champs = "elements/";
; Dossiers contenant les squelettes pour la gestion des annuaires
dossier_squelettes_annuaires = "annuaires/"
; Dossiers contenant les squelettes pour la gestion des formaulaires
dossier_squelettes_formulaires = "formulaires/"
; Dossiers contenant les squelettes pour la gestion des fiches
dossier_squelettes_fiches = "fiches/"
; Dossiers contenant les templates pour les mails
dossier_squelettes_mails = "mails/"
; Dossiers contenant les templates pour la gestion des metadonnées
dossier_squelettes_metadonnees = "metadonnees/"
; Dossiers contenant les templates pour la gestion des ontologies
dossier_squelettes_ontologies = "ontologies/"
 
; Dossiers contenant les squelettes pour les types de champs
chemin_squelettes_champs = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_champs}{ref:ds}";
; Dossiers contenant les squelettes pour la gestion des annuaires
chemin_squelettes_annuaires = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_annuaires}{ref:ds}"
; Dossiers contenant les squelettes pour la gestion des formulaires
chemin_squelettes_formulaires = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_formulaires}{ref:ds}"
; Dossiers contenant les squelettes pour la gestion des fiches
chemin_squelettes_fiches = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_fiches}{ref:ds}"
; Dossiers contenant les templates pour les mails
chemin_squelettes_mails = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_mails}{ref:ds}"
; Dossiers contenant les templates pour la gestion des metadonnées
chemin_squelettes_metadonnees = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_metadonnees}{ref:ds}"
; Dossiers contenant les templates pour la gestion des ontologies
chemin_squelettes_ontologies = "{ref:chemin_squelettes}{ref:ds}{ref:dossier_squelettes_ontologies}{ref:ds}"
/trunk/configurations/config_papyrus.ini
18,6 → 18,6
identification = "php:$GLOBALS['_GEN_commun']['pear_auth']->getAuth()"
 
; debogage
fw_debogage = false
fw_debogage = true
 
fw_log_debogage = false
/trunk/squelettes/radio.tpl.html
File deleted
/trunk/squelettes/liste_des_listes.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/liste_ontologie.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/liste_annu.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/liste_ontologie_ajout.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/password.tpl.html
File deleted
/trunk/squelettes/annuaire.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/metadonnee_modification.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/annuaire_tela_inscrits_inscription.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/mail_confirmation_inscription.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/select.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/annuaire_inscrits.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/metadonnee_ajout.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/annuaire_inscription_reussie.tpl.html
File deleted
/trunk/squelettes/textearea.tpl.html
File deleted
/trunk/squelettes/annuaire_tela_inscrits_fiche.tpl.html
File deleted
/trunk/squelettes/liste_ontologie_modification.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/text.tpl.html
File deleted
\ No newline at end of file
/trunk/squelettes/checkbox.tpl.html
File deleted
/trunk/squelettes/elements/password.tpl.html
New file
0,0 → 1,2
<label style="display:inline;"> <?= $amc_nom ?> : </label><input type="password" name="password_<?=$amc_id_champ?>" id="pass_<?=$amc_id_champ?>" value=""/>
<label style="display:inline;"> Confirmez le mot de passe : </label><input type="password" name="password_conf_<?=$amc_id_champ?>" id="pass_conf_<?=$amc_id_champ?>" value=""/>
/trunk/squelettes/elements/textearea.tpl.html
New file
0,0 → 1,4
<label style="display:inline;"> <?= $amc_nom ?> : </label>
<input type="textarea" name="textarea_<?=$identifiant_champ?>" id="textarea_<?=$identifiant_champ?>" value="<?=$valeur['amv_valeur']?>"/>
 
 
/trunk/squelettes/elements/text.tpl.html
New file
0,0 → 1,0
<label style="display:inline;"> <?= $amc_nom ?> : </label><input type="text" name="text_<?=$amc_id_champ?>" id="text_<?=$amc_id_champ?>" value=""/>
/trunk/squelettes/elements/checkbox.tpl.html
New file
0,0 → 1,11
<label style="display:inline;"> <?= $amc_description ?> : </label>
<?php if (isset($liste_valeurs)) { ?>
<?php foreach($liste_valeurs as $valeur) : ?>
<span style="margin-right:20px">
<input style="margin-right:2px" type="checkbox" name="checkbox_<?=$amc_id_champ.'['.$valeur['amo_id_ontologie'].']' ?>" id="checkbox_<?=$amc_id_champ.'['.$valeur['amo_id_ontologie'].']' ?>" />
<label style="display:inline;" for="checkbox_<?=$valeur['amo_id_ontologie'] ?>"><?=$valeur['amo_nom'] ?></label>
</span>
<?php endforeach; ?>
<?php } else { ?>
</label> <input style="margin-right:2px;display:inline;" type="checkbox" name="checkbox_<?=$amc_id_champ ?>" id="checkbox_<?=$amc_id_champ ?>" />
<?php } ?>
/trunk/squelettes/elements/radio.tpl.html
New file
0,0 → 1,8
<label style="display:inline;"> <?= $amc_nom ?> : </label>
<?php foreach($liste_valeurs as $valeur) : ?>
<span style="margin-right:20px">
<input style="margin-right:2px" type="radio" name="radio_<?=$amc_id_champ ?>" id="radio_<?=$valeur['amo_id_ontologie'] ?>" value="<?=$valeur['amo_id_ontologie'] ?>" />
<?= $valeur['amo_nom'] ?>
</span>
<?php endforeach; ?>
 
/trunk/squelettes/elements/select.tpl.html
New file
0,0 → 1,6
<label style="display:inline;"> <?= $amc_nom ?> : </label>
<select name="select_<?=$amc_id_champ?>" id="select_<?=$amc_id_champ ?>">
<?php foreach($liste_valeurs as $valeur) : ?>
<option name="option_<?=$valeur['amo_id_ontologie']?>" id="option_<?=$valeur['amo_id_ontologie']?>" value="<?=$valeur['amo_id_ontologie']?>" > <?=$valeur['amo_nom']?> </option>
<?php endforeach; ?>
</select>
/trunk/squelettes/fiches/annuaire_tela_inscrits_fiche.tpl.html
New file
0,0 → 1,13
<h2> Fiche de l'utilisateur <?= $champs['champ_nom'] ?> <?=$champs['champ_prenom'] ?></h2><br />
<div><h3> Mail : <?=$champs['champ_mail'] ?></h3></div><br />
<div><h3> Mot de passe : <?=$champs['champ_pass'] ?></h3></div><br />
<div><h3> Pays : <?=$champs['pays']['amo_nom'] ?></h3></div><br />
<div><h3> Code postal : <?=$champs['code_postal']['amv_valeur'] ?></h3></div><br />
<div><h3> Expérience botanique : <?=$champs['experience_bota']['amo_nom'] ?></h3></div><br />
<div><h3> Inscrit à la lettre d'actualité : <?=$champs['lettre_actu']['amv_valeur'] ?></h3></div><br />
/trunk/squelettes/metadonnees/metadonnee_ajout.tpl.html
New file
0,0 → 1,36
<h2>Ajout d'un nouveau champ à l'annuaire</h2>
<form method="post" action="<?=$url_form = clone($base_url);
$url_form->setVariableRequete('m','metadonnee_ajout');
echo $url_form; ?>">
<label for="amo_nom">Nom du champ</label>
<input type="text" name="amc_nom" id="amc_nom" value="<?=$valeur['amc_nom'] ?>"/>
<br />
<label for="amc_ce_type_affichage">Type du champ</label>
<select id="amc_ce_type_affichage" name="amc_ce_type_affichage">
<option value="0"> Aucun </option>
<?php foreach($types as $type) : ?>
<option value="<?=$type['amo_id_ontologie']?>"> <?=$type['amo_nom'] ?> </option>
<?php endforeach; ?>
</select>
<br />
<label for="amc_ce_ontologie">Fait partie de la liste</label>
<select id="amc_ce_ontologie" name="amc_ce_ontologie">
<option value="0"> Aucune </option>
<?php foreach($listes as $liste) : ?>
<option value="<?=$liste['amo_id_ontologie']?>"> <?=$liste['amo_nom'] ?> </option>
<?php endforeach; ?>
</select>
<br />
<label for="amo_abreviation">Abréviation</label>
<input type="text" name="amc_abreviation" id="amc_abreviation" value="<?=$valeur['amc_abreviation'] ?>" />
<br />
<label for="amo_description">Description</label>
<textarea type="text" name="amc_description" id="amc_description"> <?=$valeur['amc_description'] ?> </textarea>
<br />
<input type="hidden" name="amc_ce_annuaire" value="<?=$valeur['amc_ce_annuaire'] ?>"/>
<input type="submit" value="OK"> <a href="<?=$base_url ?>"> Annuler </a>
</form>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/metadonnees/metadonnee_modification.tpl.html
New file
0,0 → 1,37
<h2>Modification d'un champ</h2>
<form method="post" action="<?=$url_form = clone($base_url);
$url_form->setVariableRequete('m','metadonnee_modification');
echo $url_form; ?>">
<label for="amo_nom">Nom du champ</label>
<input type="text" name="amc_nom" id="amc_nom" value="<?=$valeur['amc_nom'] ?>"/>
<br />
<label for="amc_ce_type_affichage">Type du champ</label>
<select id="amc_ce_type_affichage" name="amc_ce_type_affichage">
<option value="0"> Aucun </option>
<?php foreach($types as $type) : ?>
<option value="<?=$type['amo_id_ontologie']?>" <?php if($valeur['amc_ce_type_affichage'] == $type['amo_id_ontologie']) echo 'selected = "selected"' ?>> <?=$type['amo_nom'] ?> </option>
<?php endforeach; ?>
</select>
<br />
<label for="amc_ce_ontologie">Fait partie de la liste</label>
<select id="amc_ce_ontologie" name="amc_ce_ontologie">
<option value="0" <?php if($valeur['amc_ce_ontologie'] == 0) echo 'selected = "selected"' ?>> Aucune </option>
<?php foreach($listes as $liste) : ?>
<option value="<?=$liste['amo_id_ontologie']?>" <?php if($valeur['amc_ce_ontologie'] == $liste['amo_id_ontologie']) echo 'selected = "selected"' ?>> <?=$liste['amo_nom'] ?> </option>
<?php endforeach; ?>
</select>
<br />
<label for="amo_abreviation">Abréviation</label>
<input type="text" name="amc_abreviation" id="amc_abreviation" value="<?=$valeur['amc_abreviation'] ?>" />
<br />
<label for="amo_description">Description</label>
<textarea type="text" name="amc_description" id="amc_description"> <?=$valeur['amc_description'] ?> </textarea>
<br />
<input type="hidden" name="amc_ce_annuaire" value="<?=$valeur['amc_ce_annuaire'] ?>"/>
<input type="hidden" name="amc_id_champ" value="<?=$valeur['amc_id_champ'] ?>"/>
<input type="submit" value="OK"> <a href="<?=$base_url ?>"> Annuler </a>
</form>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/ontologies/liste_des_listes.tpl.html
New file
0,0 → 1,39
<h2><?=$titre ?></h2>
 
<p> <a href="<?=$url_ajout = clone($base_url);
$url_ajout->setVariableRequete('m','liste_ontologie_formulaire_ajout');
$url_ajout->setVariableRequete('amo_ce_parent','0');
echo $url_ajout ?>">
Ajout d'une nouvelle liste
</a>
</p>
 
<table class="liste">
<th>Identifiant </th>
<th>Nom</th>
<th>Abreviation</th>
<th>Description</th>
<th> </th>
<th> </th>
<?php foreach ($ontologie as $element) : ?>
<tr><td><a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','liste_ontologie');
$url_detail->setVariableRequete('id_liste',$element['amo_id_ontologie']);
echo $url_detail; ?>" title="Afficher le détail de la liste"> <?=$element['amo_id_ontologie'] ?> </a></td>
<td><?=$element['amo_nom'] ?></td>
<td><?=$element['amo_abreviation'] ?></td>
<td><?=$element['amo_description'] ?></td>
<td> <a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','liste_ontologie_formulaire_modification');
$url_detail->setVariableRequete('amo_id_ontologie',$element['amo_id_ontologie']);
echo $url_detail; ?>" title="Modifier cette liste"> <img class="icone" src="<?=$base_url?>/annuaire/squelettes/images/modification.png"/> </a> </td>
<td> <a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','liste_ontologie_suppression');
$url_detail->setVariableRequete('amo_id_ontologie',$element['amo_id_ontologie']);
echo $url_detail; ?>" title="Supprimer cette liste"> <img class="icone" src="<?=$base_url?>/annuaire/squelettes/images/suppression.png"/> </a> </td>
</tr>
<?php endforeach; ?>
</table>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/ontologies/liste_ontologie.tpl.html
New file
0,0 → 1,38
<h2><?=$informations['amo_nom'] ?> </h2>
<p><?php if($informations['amo_description'] != 'NULL') echo $informations['amo_description'] ; ?></p>
 
<p> <a href="<?=$url_ajout = clone($base_url);
$url_ajout->setVariableRequete('m','liste_ontologie_formulaire_ajout');
$url_ajout->setVariableRequete('amo_ce_parent', $informations['amo_id_ontologie']);
echo $url_ajout ?>">
Ajouter un nouvel élement
</a>
</p>
 
<table class="liste">
<th>Identifiant</th>
<th>Nom</th>
<th>Abreviation</th>
<th>Description</th>
<th> </th>
<th> </th>
<?php foreach ($ontologie as $element) : ?>
<tr>
<td><?=$element['amo_id_ontologie'] ?></td>
<td><?=$element['amo_nom'] ?></td>
<td><?=$element['amo_abreviation'] ?></td>
<td><?=$element['amo_description'] ?></td>
<td> <a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','liste_ontologie_formulaire_modification');
$url_detail->setVariableRequete('amo_id_ontologie',$element['amo_id_ontologie']);
echo $url_detail; ?>" title="Modifier cet élément"> <img class="icone" src="<?=$base_url?>/annuaire/squelettes/images/modification.png"/> </a> </td>
<td> <a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','liste_ontologie_suppression');
$url_detail->setVariableRequete('amo_id_ontologie',$element['amo_id_ontologie']);
echo $url_detail; ?>" title="Supprimer cet élément"> <img class="icone" src="<?=$base_url?>/annuaire/squelettes/images/suppression.png"/> </a> </td>
</tr>
<?php endforeach; ?>
</table>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/ontologies/liste_ontologie_ajout.tpl.html
New file
0,0 → 1,30
<h2>Ajout
 
<?php if($amo_ce_parent == 0) { ?>
d'une nouvelle liste d'ontologie</h2>
<?php } else { ?>
d'un nouvel élement</h2>
<?php } ?>
<form method="post" action="<?=$url_form = clone($base_url);
$url_form->setVariableRequete('m','liste_ontologie_ajout');
echo $url_form; ?>">
<label for="amo_nom">Nom <?php if($amo_ce_parent == 0) { ?>
de la liste </label>
<?php } else { ?>
de l'élement</label>
<?php } ?>
<input type="text" name="amo_nom" id="amo_nom" value="<?=$amo_nom ?>"/>
<br />
<label for="amo_abreviation">Abr&eacute;viation</label>
<input type="text" name="amo_abreviation" id="amo_abreviation" value="<?=$amo_abreviation ?>" />
<br />
<label for="amo_description">Description</label>
<textarea name="amo_description" id="amo_description" > <?=$amo_description ?> </textarea>
<br />
<input type="hidden" name="amo_ce_parent" value="<?=$amo_ce_parent ?>"/>
<input type="submit" value="OK"> <a href="<?=$base_url ?>"> Annuler </a>
</form>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/ontologies/liste_ontologie_modification.tpl.html
New file
0,0 → 1,21
<h2>Modification d'une liste d'ontologies</h2>
<form method="post" action="<?=$url_form = clone($base_url);
$url_form->setVariableRequete('m','liste_ontologie_modification');
$url_form->setVariableRequete('id_ontologie','liste_ontologie_modification');
echo $url_form; ?>">
<label for="amo_nom">Nom de la liste</label>
<input type="text" name="amo_nom" id="amo_nom" value="<?= $valeurs['amo_nom'] ?>"/>
<br />
<label for="amo_abreviation">Abr&eacute;viation</label>
<input type="text" name="amo_abreviation" id="amo_abreviation" value="<?= $valeurs['amo_abreviation'] ?>"/>
<br />
<label for="amo_description">Description</label>
<textarea name="amo_description" id="amo_description"> <?= $valeurs['amo_description'] ?> </textarea>
<br />
<input type="hidden" name="amo_id_ontologie" id="amo_id_ontologie" value="<?= $valeurs['amo_id_ontologie'] ?>"/>
<input type="submit" value="OK"> <a href="<?=$base_url ?>"> Annuler </a>
</form>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/annuaires/annuaire_inscrits.tpl.html
New file
0,0 → 1,41
<h2>Inscrits à l'annuaire <?=$annuaire['informations']['aa_nom'] ?></h2>
<p><?=$annuaire['informations']['aa_description'] ?></p>
 
 
<h3> Inscrits </h3>
 
<?php if($pagination['numero_page'] > 1) { ?>
 
<a class="premiere_page" href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','annuaire_inscrits');
$url_detail->setVariableRequete('id_annuaire',$annuaire['informations']['aa_id_annuaire']);
$url_detail->setVariableRequete('numero_page',($pagination['numero_page'] - 1));
echo $url_detail; ?>" title="Page précédente"> Page précédente </a>
<?php } ?>
<a class="derniere_page" href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','annuaire_inscrits');
$url_detail->setVariableRequete('id_annuaire',$annuaire['informations']['aa_id_annuaire']);
$url_detail->setVariableRequete('numero_page',($pagination['numero_page'] + 1));
echo $url_detail; ?>" title="Page suivante"> Page suivante </a>
 
<br /><br /><br />
 
<table class="liste">
<th></th>
<?php foreach ($annuaire['colonnes'] as $colonne) : ?>
<th><?=$colonne ?></th>
<?php endforeach; ?>
<?php foreach ($annuaire['inscrits'] as $inscrit) : ?>
<tr>
<td><a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','annuaire_fiche_utilisateur_consultation');
$url_detail->setVariableRequete('id_annuaire',$annuaire['informations']['aa_id_annuaire']);
$url_detail->setVariableRequete('id_utilisateur',$inscrit[$annuaire['colonnes']['champ_id']]);
echo $url_detail; ?>" title="Voir la fiche"> Voir la fiche </a></td>
<?php foreach ($inscrit as $valeur) : ?>
<td><?=$valeur ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
/trunk/squelettes/annuaires/liste_annu.tpl.html
New file
0,0 → 1,26
<h2>Liste des annuaires</h2>
<table class="liste">
<th></th>
<th></th>
<th>Nom</th>
<th>Description</th>
<th>Code</th>
<?php foreach ($annuaires as $element) : ?>
<tr>
<td><a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','annuaire_inscrits');
$url_detail->setVariableRequete('id_annuaire',$element['aa_id_annuaire']);
echo $url_detail; ?>" title="Afficher le détail de l'annuaire"> Voir les inscrits </a></td>
<td><a href="<?=$url_detail = clone($base_url);
$url_detail->setVariableRequete('m','annuaire');
$url_detail->setVariableRequete('id_annuaire',$element['aa_id_annuaire']);
echo $url_detail; ?>" title="Afficher le détail de l'annuaire"> Voir les champs </a></td>
<td><?=$element['aa_nom'] ?></td>
<td><?=$element['aa_description'] ?></td>
<td><?=$element['aa_code'] ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/annuaires/annuaire.tpl.html
New file
0,0 → 1,80
<h2>Détail de l'annuaire <?=$annuaire['informations']['aa_nom'] ?></h2>
<p><?=$annuaire['informations']['aa_description'] ?></p>
 
<h3> Informations </h3>
<table class="liste">
<th>Identifiant d'annuaire</th>
<th>Nom</th>
<th>Description</th>
<th>Code</th>
<tr>
<td><?=$annuaire['informations']['aa_id_annuaire'] ?></td>
<td><?=$annuaire['informations']['aa_nom'] ?></td>
<td><?=$annuaire['informations']['aa_description'] ?></td>
<td><?=$annuaire['informations']['aa_code'] ?></td>
</tr>
</table>
 
<hr />
 
<h3> Colonnes </h3>
<table class="liste">
<th>Nom du champ</th>
<th>Type</th>
<th>Null</th>
<th>Clé</th>
<th>Défaut</th>
<th>Extra</th>
<?php foreach ($annuaire['colonnes'] as $colonne) : ?>
<tr>
<td><?=$colonne['Field'] ?></td>
<td><?=$colonne['Type'] ?></td>
<td><?=$colonne['Null'] ?></td>
<td><?=$colonne['Key'] ?></td>
<td><?=$colonne['Default'] ?></td>
<td><?=$colonne['Extra'] ?></td>
</tr>
<?php endforeach; ?>
</table>
 
<h3> Metadonnées </h3>
 
<p> <a href="<?=$url_ajout_metadonnee = clone($base_url);
$url_ajout_metadonnee->setVariableRequete('m','metadonnee_formulaire_ajout');
$url_ajout_metadonnee->setVariableRequete('amc_ce_annuaire',$annuaire['informations']['aa_id_annuaire']);
echo $url_ajout_metadonnee; ?>"> Ajout d'un nouveau champ </a>
 
<table class="liste">
<th>Nom du champ</th>
<th>Type</th>
<th>Abreviation</th>
<th>Description</th>
<th>Longueur</th>
<th></th>
<th></th>
<th></th>
<?php foreach ($metadonnees as $metacolonne) : ?>
<tr>
<td><?=$metacolonne['amc_nom'] ?></td>
<td><?=$metacolonne['amc_ce_nom_type_affichage'] ?></td>
<td><?=$metacolonne['amc_abreviation'] ?></td>
<td><?=$metacolonne['amc_description'] ?></td>
<td><?=$metacolonne['amc_longueur'] ?></td>
<td><a href="<?=$url_modif_metadonnee = clone($base_url);
$url_modif_metadonnee->setVariableRequete('m','metadonnee_formulaire_modification');
$url_modif_metadonnee->setVariableRequete('amc_id_champ',$metacolonne['amc_id_champ']);
echo $url_modif_metadonnee; ?>"> Modifier </a></td>
<td><a href="<?=$url_supp_metadonnee = clone($base_url);
$url_supp_metadonnee->setVariableRequete('m','metadonnee_suppression');
$url_supp_metadonnee->setVariableRequete('amc_id_champ',$metacolonne['amc_id_champ']);
$url_supp_metadonnee->setVariableRequete('amc_ce_annuaire',$annuaire['informations']['aa_id_annuaire']);
echo $url_supp_metadonnee; ?>"> Supprimer </a></td>
</tr>
<?php endforeach; ?>
</table>
 
 
<?php if (isset($erreurs['supp'])): ?>
<span class="symbole_obligatoire"> <?=$erreurs['supp'];?> </span>
<?php endif; ?>
/trunk/squelettes/annuaires/annuaire_inscription_reussie.tpl.html
New file
0,0 → 1,2
<p> Votre inscription a bien été prise en compte, un email de confirmation vient de vous être envoyé à l'adresse que vous avez indiquée.
Cliquez sur le lien qu'il contient pour confirmer votre inscription </p>
/trunk/squelettes/images/suppression.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/squelettes/images/suppression.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/squelettes/images/modification.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/squelettes/images/modification.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/squelettes/images/afficher.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/squelettes/images/afficher.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/squelettes/mails/mail_confirmation_inscription.tpl.html
New file
0,0 → 1,8
<p> Bonjour <?= $nom ?> <?=$prenom ?>. Votre inscription au site Tela Botanica a bien été prise en compte.<br />
Pour confirmer votre inscription, cliquez sur ce lien <a href="<?=$lien_confirmation_inscription ?>"> <?=$lien_confirmation_inscription ?> </a> <br />
 
Cordialement,
 
L'équipe de Tela Botanica
</p>
/trunk/squelettes/css/annuaire_papyrus.css
New file
0,0 → 1,23
.icone {
 
height:16px;
width:16px;
margin: 5px;
border: none;
}
 
a > .icone {
 
text-align:center;
}
 
.premiere_page {
float:left;
margin:5px
}
 
.derniere_page {
float:right;
margin:5px;
}
/trunk/squelettes/formulaires/inscription.tpl.html
New file
0,0 → 1,20
<h2> Inscription </h2>
<div id="contenu">
<form method="post" id="inscription" action="<?=$url_form = clone($base_url);
$url_form->setVariableRequete('m','annuaire_ajout_inscription');
echo $url_form;
?>">
<?php foreach($champs as $champ) : ?>
<div> <?=$champ ?> </div><br />
<?php endforeach; ?>
 
<input type="hidden" name="aa_id_annuaire" id="aa_id_annuaire" value="<?=$aa_id_annuaire ?>">
 
<?php if(isset($erreurs)) { ?>
<?php foreach($erreurs as $erreur) : ?>
<div style="color:#FF0000"> <?=$erreur ?> </div>
<?php endforeach; ?>
<?php } ?>
<input type="submit" value="Valider" />
</form>
</div>
/trunk/squelettes/formulaires/annuaire_tela_inscrits_inscription.tpl.html
New file
0,0 → 1,34
<h2> Inscription </h2>
<div id="contenu">
<form method="post" id="inscription" action="<?=$url_form = clone($base_url);
$url_form->setVariableRequete('m','annuaire_ajout_inscription');
echo $url_form;
?>">
<div><?=$champs['nom'] ?></div><br />
<div><?=$champs['prenom'] ?></div><br />
<div><?=$champs['mail'] ?></div><br />
<div><?=$champs['pass'] ?></div><br />
<div><?=$champs['pays'] ?></div><br />
<div><?=$champs['code_postal'] ?></div><br />
<div><?=$champs['experience_bota'] ?></div><br />
<div><?=$champs['lettre_actu'] ?></div><br />
<div><label style="display:inline">J'ai pris connaissance des <a href="http://www.tela-botanica.org/page:rejoindre_reseau">conditions d'utilisation</a> </label> <?=$champs['conditions_utilisation'] ?></div><br />
<input type="hidden" name="aa_id_annuaire" id="aa_id_annuaire" value="<?=$aa_id_annuaire ?>">
<?php if(isset($erreurs)) { ?>
<?php foreach($erreurs as $erreur) : ?>
<div style="color:#FF0000"> <?=$erreur ?> </div>
<?php endforeach; ?>
<?php } ?>
<input type="submit" value="Valider" />
</form>
</div>