Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 10 → Rev 11

/trunk/controleurs/AnnuaireControleur.php
47,7 → 47,7
$this->chargerModele('AnnuaireModele');
$data['erreurs'] = null;
$data['annuaires'] = $this->AnnuaireModele->chargerListeAnnuaire();
$liste_annu = $this->getVue(config::get('chemin_squelettes_annuaires').'liste_annu', $data);
$liste_annu = $this->getVue(Config::get('dossier_squelettes_annuaires').'liste_annu', $data);
 
return $liste_annu;
}
63,7 → 63,7
$data['erreurs'] = array();
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id, true);
$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
$annuaire = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire', $data);
$annuaire = $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire', $data);
 
return $annuaire;
}
78,11 → 78,17
$this->chargerModele('AnnuaireModele');
$data['erreurs'] = array();
$data['champs'] = $this->obtenirChampsMappageAnnuaire($id);
$total_inscrits = $this->AnnuaireModele->chargerNombreAnnuaireListeInscrits($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);
 
$annuaires_inscrits = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire_inscrits', $data);
$url_base = clone(Registre::getInstance()->get('base_url_application'));
$url_base->setVariableRequete('m','annuaire_inscrits');
$url_base->setVariableRequete('id_annuaire',$id);
 
$data['pagination'] = $this->paginer($numero_page,$taille_page,$total_inscrits,$url_base);
 
$annuaires_inscrits = $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscrits', $data);
 
return $annuaires_inscrits;
}
 
100,6 → 106,7
 
$this->chargerModele('MetadonneeModele');
$donnees['aa_id_annuaire'] = $id_annuaire;
 
$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
 
// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
108,6 → 115,8
 
$id_champ = $metadonnee['amc_id_champ'];
$nom_champ = $metadonnee['amc_abreviation'];
 
$metadonnee['aa_id_annuaire'] = $id_annuaire;
// on charge le formaulaire d'affichage de chacune des métadonnées
$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$metadonnee);
}
118,7 → 127,7
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 = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees);
}
 
return $formulaire_inscription;
139,7 → 148,7
$donnees['amc_id_champ'] = $id_champ;
$this->chargerModele('MetadonneeModele');
$nom__type_champ = $this->MetadonneeModele->renvoyerCorrespondanceNomTemplateChamp($donnees['amc_ce_type_affichage']);
return $this->getVue(config::get('chemin_squelettes_champs').$nom__type_champ,$donnees);
return $this->getVue(Config::get('dossier_squelettes_champs').$nom__type_champ,$donnees);
}
 
/**-------- Fonctions d'inscription -------------------------------------------------------------------------------*/
162,7 → 171,6
// 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, 3);
171,7 → 179,7
 
$type = $ids_champ[0];
$id_champ = $ids_champ[2];
$confirmation = $valeurs[$type.'_'.$id_champ];
$confirmation = $ids_champ[2];
 
} else {
$type = $ids_champ[0];
188,7 → 196,12
if($cle_champ) {
// on ajoute sa clé correspondante dans le tableau des champs mappés
// qui sont les champs à vérifier
$valeurs_mappees[$cle_champ] = $valeur;
if($confirmation) {
$valeurs_mappees[$cle_champ.'_conf'] = $valeur;
} else {
$valeurs_mappees[$cle_champ] = $valeur;
}
 
}
}
 
206,7 → 219,7
$valeurs_mappees['champ_prenom'],
$code_confirmation);
// Si tout s'est bien passé, on affiche la page de confirmation
return $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire_inscription_reussie',array());
return $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscription_reussie',array());
}
 
/**
224,9 → 237,11
// TODO afficher vue en cas d'echec
}
 
$id_annuaire = $valeurs['aa_id_annuaire'];
//$id_annuaire = $valeurs['aa_id_annuaire'];
unset($valeurs['aa_id_annuaire']);
 
$id_annuaire = 1;
 
$this->chargerModele('MetadonneeModele');
 
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
235,6 → 250,7
 
// on itère sur le tableau de valeur pour récupérer les métadonnées;
foreach($valeurs as $nom_champ => $valeur) {
 
// pour chaque valeur
// on extrait l'id du champ
$ids_champ = mb_split("_",$nom_champ);
246,7 → 262,7
// on ajoute sa clé correspondante dans l'annuaire mappé et sa valeur dans le tableau des champs mappés
$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur;
// et on supprime sa valeur du tableau de valeurs pour ne pas la retrouver lors
// de l'instertion des métadonnées
// de l'insertion des métadonnées
unset($valeurs[$nom_champ]);
}
}
259,6 → 275,7
 
// l'identifiant du champ est la dernière valeur du tableau
$ids_champ = mb_split("_",$nom_champ);
$type = $ids_champ[0];
$id_champ = $ids_champ[count($ids_champ) - 1];
 
// Si l'insertion dans la base a réussi
279,7 → 296,7
$this->AnnuaireModele->supprimerDonneesInscriptionTemporaire($identifiant);
 
// TODO: renvoyer l'utilisateur sur sa fiche
return true;
return $this->afficherFormulaireUploadImage($id_annuaire, $identifiant);
}
 
/**
323,9 → 340,10
$this->chargerModele('MetadonneeModele');
$champs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
 
$donnees['id_annuaire'] = $id_annuaire;
$donnees['champs'] = array_merge($tableau_valeurs, $champs_metadonnees);
 
$annuaire_inscrits = $this->getVue(config::get('chemin_squelettes_fiches').'annuaire_tela_inscrits_fiche',$donnees);
$annuaire_inscrits = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_fiche',$donnees);
 
return $annuaire_inscrits;
}
347,7 → 365,7
$base_url->setVariableRequete('id',$code_confirmation_inscription);
 
$donnees = array('nom' => $nom, 'prenom' => $prenom, 'lien_confirmation_inscription' => $base_url->getURL());
$contenu_mail = $this->getVue(config::get('chemin_squelettes_mails').'mail_confirmation_inscription',$donnees);
$contenu_mail = $this->getVue(Config::get('dossier_squelettes_mails').'mail_confirmation_inscription',$donnees);
 
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$entetes = 'MIME-Version: 1.0' . "\r\n";
365,6 → 383,7
* @param Array $valeurs les valeurs à insérer
*/
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) ;
 
417,14 → 436,13
 
$erreurs = false;
 
 
if(!$this->mailValide($valeurs['champ_mail'])) {
$erreurs['text_'.$tableau_mappage[1]['champ_mail']] = 'mail invalide';
}
 
if(trim($valeurs['pass']) == ''
|| $valeurs['pass_conf'] != $valeurs['pass']) {
$erreurs['pass_'.$tableau_mappage[1]['champ_pass']] = 'mot de passe invalide';
if(trim($valeurs['champ_pass']) == ''
|| $valeurs['champ_pass'] != $valeurs['champ_pass']) {
$erreurs['password_'.$tableau_mappage[1]['champ_pass']] = 'mot de passe invalide';
}
 
if(trim($valeurs['champ_nom']) == '') {
474,6 → 492,37
return $valeur_modifiee;
}
 
private function verifierEtRemplacerValeurChampPourAffichage($type, $valeur) {
 
$valeur_modifiee = $valeur;
 
/*switch($type) {
 
// cas du champ texte, à priori, rien de particulier
case 'text':
$valeur_modifiee = $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)
511,8 → 560,7
*/
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');
return file_exists(Config::get('chemin_squelettes').Config::get('dossier_squelettes_formulaires').$nom_formulaire.'_inscription.tpl.html');
}
 
/**
520,9 → 568,9
* @param string $donnees les donnée à inclure dans le formulaire
* @return string la vue contenant le formulaire généré
*/
private function GenererFormulaireInscription($donnees) {
private function genererFormulaireInscription($donnees) {
 
$formulaire_modele = $this->getVue(config::get('chemin_squelettes_formulaires').'inscription',$donnees);
$formulaire_modele = $this->getVue(Config::get('dossier_squelettes_formulaires').'inscription',$donnees);
 
if($formulaire_modele) {
return $formulaire_modele;
532,5 → 580,82
 
return false;
}
 
/**
* Renvoie le template de pagination, considérant des éléments donnés en paramètre
*/
private function paginer($numero_page, $taille_page, $total, $url_base = '') {
 
// TODO, faire plus complexe, tri alphabétique etc...
$page_precedente = $numero_page-1;
$page_suivante = $numero_page+1;
 
$nombre_pages = round($total/$taille_page,'PHP_ROUND_HALF_DOWN') ;
 
 
if($numero_page < 2) {
$page_precedente = false;
}
 
if($taille_page*($numero_page) >= $total) {
$page_suivante = false;
}
 
$donnees['pagination']= array('numero_page' => $numero_page, 'page_precedente' => $page_precedente, 'page_suivante' => $page_suivante, 'nombre_pages' => $nombre_pages, 'taille_page' => $taille_page);
$donnees['base_url_pagination'] = clone($url_base);
 
return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees);
 
}
 
public function afficherFormulaireUploadImage($id_annuaire,$id_utilisateur) {
 
$donnees['aa_id_annuaire'] = $id_annuaire;
$donnees['id_utilisateur'] = $id_utilisateur;
 
 
$donnees['amc_nom'] = 'Avatar';
$donnees['amc_id_champ'] = 101;
 
 
return $this->getVue(Config::get('dossier_squelettes_champs').'image',$donnees);
}
 
/**
* Ajoute une image uploadée à travers le formulaire
*
*/
public function ajouterImageUtilisateur($id_annuaire, $id_utilisateur, $fichier_a_stocker) {
 
foreach($fichier_a_stocker as $nom_champ => $fichier) {
 
//TODO: ajouter les vérifications de format
 
$ids_champ = mb_split("_",$nom_champ, 3);
 
if(count($ids_champ) == 2) {
 
$type = $ids_champ[0];
$id_champ = $ids_champ[1];
 
} else {
trigger_error('Ce champ n\'est pas relié à un annuaire');
return false;
}
 
$this->chargerModele('ImageModele');
$stockage_image = $this->ImageModele->stockerFichier($id_annuaire, $id_utilisateur, $fichier);
 
$this->chargerModele('MetadonneeModele');
if($stockage_image && $this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$stockage_image)) {
 
} else {
return false;
}
}
 
return true ;
 
}
}
?>