Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 220 → Rev 221

/trunk/controleurs/AnnuaireControleur.php
49,6 → 49,7
}
public function creerMetadonnee() {
$this->chargerModele('AnnuaireModele');
$this->chargerModele('MetadonneeModele');
$id_liste_inscrit = $this->AnnuaireModele->migrer();
166,7 → 167,7
* @param Array $donnees le tableau de données pour préremplir le formulaire si besoin (en cas de retour erreur)
*/
public function afficherFormulaireInscription($id_annuaire, $donnees=array()) {
 
$this->chargerModele('AnnuaireModele');
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
 
200,14 → 201,16
$donnees['tableau_mappage'] = $tableau_mappage[1];
 
// si le formulaire existe, on le charge
if(!$this->templateExiste($annuaire['informations']['aa_code'].'_inscription','formulaires/')) {
if($this->annuaireAvoirFormulaireInscription($annuaire['informations']['aa_code'])) {
$formulaire_inscription = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees);
} else {
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
$formulaire_inscription = $this->genererFormulaireInscription($donnees);
} else {
// sinon on en génère un qui contient tous les champs
$formulaire_inscription = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees);
}
 
return $formulaire_inscription;
415,8 → 418,7
$identificateur->loggerUtilisateur($mail, $pass);
 
// S'il existe une page d'accueil spécifique à l'annuaire pour la confirmation d'inscription
if($this->templateExiste($annuaire['informations']['aa_code'].'_inscription_confirmation', Config::get('dossier_squelettes_annuaires'))) {
if($this->annuaireAvoirPageAccueilPostInscription($annuaire['informations']['aa_code'])) {
// on l'affiche
$donnees = array('id_utilisateur' => $id_nouvel_inscrit, 'id_annuaire' => $id_annuaire);
return $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_inscription_confirmation', $donnees);
468,20 → 470,17
$navigateur = new NavigationControleur();
$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'fiche');
 
/*if(Registre::getInstance()->get('est_admin')) {
$donnees['formulaire_blocage'] = $this->getVue(Config::get('dossier_squelettes_elements').'blocage',$donnees);
}*/
// Si le formulaire spécifique à l'annuaire existe, on l'affiche
if(!$this->templateExiste($annuaire['informations']['aa_code'].'_fiche','/fiches/')) {
// S'il existe une fiche spécifique pour l'annuaire
if($this->annuaireAvoirFicheUtilisateur($annuaire['informations']['aa_code'])) {
// on l'affiche
$fiche_inscrit = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_fiche',$donnees);
} else {
// sinon on en génère une minimale par défaut
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
$fiche_inscrit = $this->genererFicheInscrit($donnees);
} else {
// Sinon on prend celui par defaut
$fiche_inscrit = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_fiche',$donnees);
}
 
return $fiche_inscrit;
504,15 → 503,9
$donnees['id_utilisateur'] = $id_utilisateur;
$donnees['mail_utilisateur'] = $mail_utilisateur;
 
$url_modification_profil = new Url(Config::get('base_url_application'));
$url_modification_profil->setVariableRequete('m','annuaire_formulaire_modification_inscription');
$url_modification_profil->setVariableRequete('id_annuaire',$id_annuaire);
$url_modification_profil->setVariableRequete('id_utilisateur',$id_utilisateur);
$url_modification_profil = self::getUrlModificationProfil($id_annuaire, $id_utilisateur);
 
$url_oubli_mdp = new Url(Config::get('base_url_application'));
$url_oubli_mdp->setVariableRequete('m','annuaire_afficher_formulaire_oubli_mdp');
$url_oubli_mdp->setVariableRequete('id_annuaire',$id_annuaire);
$url_oubli_mdp->setVariableRequete('id_utilisateur',$id_utilisateur);
$url_oubli_mdp = self::getUrlOubliMotDePasse($id_annuaire, $id_utilisateur);
 
$donnees['url_oubli_mdp'] = $url_oubli_mdp;
$donnees['url_modification_profil'] = $url_modification_profil;
526,7 → 519,7
 
// on crée un controleur appelle les hooks de résumé pour chaque application externe
$resumes_controleur = new ApplicationExterneControleur();
 
$donnees['resumes'] = $resumes_controleur->obtenirResume($id_utilisateur,$mail_utilisateur);
$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_carte_id',$donnees);
614,13 → 607,17
 
 
// Si le formulaire spécifique à l'annuaire existe, on l'affiche
if(!$this->templateExiste($annuaire['informations']['aa_code'].'_modification','/formulaires/')) {
if($this->annuaireAvoirFormulaireModificationInscription($annuaire['informations']['aa_code'])) {
// Sinon on prend celui par defaut
$formulaire_modification = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_modification',$donnees);
} else {
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
$formulaire_modification = $this->genererFormulaireModificationInscription($donnees);
} else {
// Sinon on prend celui par defaut
$formulaire_modification = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_modification',$donnees);
}
 
return $formulaire_modification;
824,6 → 821,9
$identificateur = new IdentificationControleur();
$identificateur->setUtilisateur($nouveau_mail);
}
$statistique = new StatistiqueControleur();
$statistique->ajouterEvenementStatistique($id_annuaire, $id_utilisateur, 'modification');
 
return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur);
}
970,9 → 970,10
$donnees = array();
// Si le formulaire spécifique à l'annuaire existe, on l'affiche
if($this->templateExiste($annuaire['informations']['aa_code'].'_desinscription_confirmation','/annuaires/')) {
if($this->annuaireAvoirPagePostDesinscription($annuaire['informations']['aa_code'])) {
$informations_desinscription = $this->GetVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_desinscription_confirmation',$donnees);
} else {
// Sinon on prend celui par defaut
$donnees['titre'] = 'Vous êtes maintenant désinscrit de l\'annuaire';
$donnees['message'] = 'Votre désinscription a bien été prise en compte <br />';
980,6 → 981,9
$informations_desinscription = $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees);
}
$statistique = new StatistiqueControleur();
$statistique->ajouterEvenementStatistique($id_annuaire, $id_utilisateur, 'suppression');
return $informations_desinscription;
}
 
1007,10 → 1011,9
$id_champ = $metadonnee['amc_id_champ'];
$type_champ = $metadonnee['amc_ce_template_affichage'];
$nom_champ = $metadonnee['amc_abreviation'];
 
if(isset($donnees[$type_champ.'_'.$id_champ])) {
//Debug::printr($donnees[$type_champ.'_'.$id_champ]);
$metadonnee['valeur_defaut']['amv_valeur'] = $donnees[$type_champ.'_'.$id_champ];
}
 
1020,13 → 1023,17
}
 
// Si le formulaire spécifique à l'annuaire existe, on l'affiche
if(!$this->templateExiste($annuaire['informations']['aa_code'].'_recherche','/formulaires/')) {
if($this->annuaireAvoirFormulaireRecherche($annuaire['informations']['aa_code'])) {
// Sinon on prend celui par defaut
$formulaire_recherche = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_recherche',$donnees);
} else {
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
$formulaire_recherche = $this->genererFormulaireRecherche($donnees);
} else {
// Sinon on prend celui par defaut
$formulaire_recherche = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_recherche',$donnees);
}
 
return $formulaire_recherche;
1061,48 → 1068,15
$valeurs_mappees = array();
$valeurs = array();
 
//TODO: faire une fonction qui factorise ce principe !!!!
//
 
// on itère sur le tableau de valeur pour récupérer les métadonnées;
foreach($valeurs_recherchees as $nom_champ => $valeur) {
 
// pour chaque valeur
// on extrait l'id du champ
$ids_champ = mb_split("_",$nom_champ);
 
if(count($ids_champ) == 2) {
 
// l'identifiant du champ est la dernière valeur du tableau
$type = $ids_champ[0];
$id_champ = $ids_champ[1];
 
// Si le champ fait partie des champs mappés
$cle_champ = array_search($id_champ, $tableau_mappage[1]);
if($cle_champ) {
// 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'insertion des métadonnées
} else {
$valeurs_recherchees[$id_champ] = $valeur;
}
// on retire la valeur du tableau pour ne pas la retrouver dans les deux recherches
$valeurs_get[$nom_champ] = $valeur;
}
 
unset($valeurs_recherchees[$nom_champ]);
}
$collecteur = new VerificationControleur();
$tableau_valeur_collectees = $collecteur->collecterValeursRechercheMoteur($valeurs_recherchees, $tableau_mappage);
$valeurs_recherchees = $tableau_valeur_collectees['valeurs_recherchees'];
$valeurs_mappees = $tableau_valeur_collectees['valeurs_mappees'];
$valeurs_get = $tableau_valeur_collectees['valeurs_get'];
$admin = Registre::getInstance()->get('est_admin');
 
//if(!$admin) {
// $champs_blocage = $this->AnnuaireModele->obtenirChampsDescriptionAnnuaire($id_annuaire);
// $valeurs_recherchees[$champs_blocage[1]['champ_statut']] = '0';
//}
 
$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
 
// on recherche dans les métadonnées
$this->chargerModele('MetadonneeModele');
// le résultat est un ensemble d'identifiants
1117,6 → 1091,8
 
$nb_resultats = $resultat_annuaire_mappe['total'];
$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
$resultats = array();
foreach($resultat_recherche as $resultat) {
$id_utilisateur = $resultat[$champ_id_annuaire];
1132,20 → 1108,25
$url_base = new URL(Registre::getInstance()->get('base_url_application'));
$url_pagination = clone($url_base);
 
$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
$valeurs_get['exclusive'] = $exclusive;
$donnees['criteres'] = urlencode(serialize($valeurs_get));
$valeurs_get['id_annuaire'] = $id_annuaire;
$valeurs_get['m'] = $_GET['m'];
 
$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
 
// S'il existe une page de résultats spécifique à l'annuaire pour la recherche
if($this->templateExiste($annuaire['informations']['aa_code'].'_resultat_recherche', Config::get('dossier_squelettes_annuaires'))) {
if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
// on l'affiche
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
 
} else {
// sinon on prend celle par défaut
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
}
1183,6 → 1164,8
 
$valeurs_mappees = array();
$valeurs = array();
$continent = $valeurs_recherchees['continent'];
 
$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
 
1219,7 → 1202,12
$donnees['id_annuaire'] = $id_annuaire;
$donnees['nb_resultats'] = $nb_resultats;
//Debug::printr($resultat_annuaire_mappe);
$donnees['criteres'] = urlencode(serialize(array('select_'.$tableau_mappage[1]['champ_pays'] => $valeurs_recherchees['pays'],
'text_'.$tableau_mappage[1]['champ_code_postal'] => $valeurs_recherchees['departement'],
'exclusive' => true
)));
 
$url_base = new URL(Registre::getInstance()->get('base_url_application'));
$url_pagination = clone($url_base);
1229,20 → 1217,29
 
$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
 
// S'il existe une page de résultats spécifique à l'annuaire pour la recherche
if($this->templateExiste($annuaire['informations']['aa_code'].'_resultat_recherche', Config::get('dossier_squelettes_annuaires'))) {
if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
// on l'affiche
$navigation_carto = new NavigationControleur();
$cartographe = new CartoControleur();
$donnees_navigation = $cartographe->obtenirUrlsNavigation($id_annuaire,$valeurs_recherchees['continent'],$valeurs_recherchees['pays'],$valeurs_recherchees['departement']);
$donnees['navigation'] = $navigation_carto->afficherBandeauNavigationCartographie($donnees_navigation);
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
 
} else {
// sinon on prend celle par défaut
// sinon on prend celle par défaut
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
}
return $vue_resultat_recherche;
}
public function rechercherParRequeteMoteur($id_annuaire, $criteres) {
}
 
 
/** --- Fonction pour les images ------------------------------------------------------------------------*/