Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 220 → Rev 221

/trunk/controleurs/NavigationControleur.php
41,4 → 41,12
return $navigation;
}
public function afficherBandeauNavigationCartographie($donnees) {
$navigation = $this->getVue(Config::get('dossier_squelettes_navigation').'chemin_cartographie', $donnees);
return $navigation;
}
}
/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 ------------------------------------------------------------------------*/
/trunk/controleurs/CartoControleur.php
20,6 → 20,17
 
// nom du fond de carte en cours
private $nom_fond = '';
private $niveau = 0;
// contient le tableau de données sur les continents une fois chargé
private $donnees_continents = array();
// contient le tableau de données sur les pays une fois chargé
private $donnees_pays = array();
// contient le tableau de données sur les departements une fois chargé
private $donnees_departements = array();
 
//+----------------------------------------------------------------------------------------------------------------+
// Méthodes
43,16 → 54,16
$donnees = array();
 
// la présence d'un pays (non) et d'un continent (ou non) détermine le niveau de carte à afficher
$niveau = $this->calculerNiveau($continent, $pays);
$this->niveau = $this->calculerNiveau($continent, $pays);
 
// suivant le niveau, continent et pays, on renvoie un template html différent
$fond = $this->renvoyerPrefixePourNiveau($niveau, $continent, $pays);
$fond = $this->renvoyerPrefixePourNiveau($this->niveau, $continent, $pays);
 
$carte = '';
 
// chaque continent possède un fond de carte différent
if($niveau == 1) {
$carte = $this->renvoyerSuffixePourContinent($niveau, $continent, $pays);
if($this->niveau == 1) {
$carte = $this->renvoyerSuffixePourContinent($this->niveau, $continent, $pays);
}
 
// Création de la carte
72,11 → 83,13
 
// Construction des données nécessaires à la cartographie
$zones = $cartographie->getCarteZones();
$this->chargerZonesNbre($id_annuaire,$zones, $niveau);
$this->chargerZonesUrls($id_annuaire, $zones, $continent, $pays, $niveau);
$this->chargerZonesNbre($id_annuaire,$zones, $this->niveau);
$this->chargerZonesUrls($id_annuaire, $zones, $continent, $pays, $this->niveau);
 
$navigation = new NavigationControleur();
$donnees_navigation = $this->obtenirUrlsNavigation($id_annuaire, $continent, $pays, null);
$donnees['navigation'] = $navigation->afficherBandeauNavigationCartographie($donnees_navigation);
 
 
$cartographie->setCarteZones($zones);
 
$cartographie->creerCarte();
125,7 → 138,6
$url = new URL(Config::get('url_base'));
 
$url->setVariableRequete('id_annuaire', $id_annuaire);
//$url->setVariableRequete('m', 'annuaire_inscrits_carto');
 
foreach ($zones as $id => &$infos) {
 
319,7 → 331,104
 
return $nb_inscrits;
}
public function obtenirUrlsNavigation($id_annuaire ,$continent = null, $pays = null, $departement = null) {
$donnees = array();
$url_carte_monde = new URL(Config::get('url_base'));
$url_carte_monde->setVariableRequete('id_annuaire', $id_annuaire);
$url_carte_monde->setVariableRequete('m', 'annuaire_afficher_carte');
$donnees['url_carte_monde'] = $url_carte_monde;
$donnees['nom_carte_monde'] = 'Carte du monde';
if($continent != null && trim($continent) != '') {
$infos_continents = $this->chargerInformationsContinentCsv();
$url_continent = new URL(Config::get('url_base'));
$url_continent->setVariableRequete('id_annuaire', $id_annuaire);
$url_continent->setVariableRequete('m', 'annuaire_afficher_carte');
$url_continent->setVariableRequete('continent', $continent);
$donnees['url_continent'] = $url_continent;
$donnees['nom_continent'] = $infos_continents[$continent][2];
}
if($pays != null && trim($pays) != '') {
$templates_continents = $this->renvoyerTousTemplates();
$infos_continents = $this->chargerInformationsPaysDuContinentsCsv($templates_continents[$continent]);
$infos_pays = $infos_continents[$pays];
$url_pays = new URL(Config::get('url_base'));
$url_pays->setVariableRequete('id_annuaire', $id_annuaire);
if($pays == $this->id_france) {
$url_pays->setVariableRequete('m', 'annuaire_afficher_carte');
} else {
// sinon l'url pointe vers la liste des inscrits de ce pays
$url_pays->setVariableRequete('m', 'annuaire_inscrits_carto');
}
$url_pays->setVariableRequete('continent', $continent);
$url_pays->setVariableRequete('pays', $pays);
$donnees['url_pays'] = $url_pays;
$donnees['nom_pays'] = $infos_pays[2];
}
if($departement != null && trim($departement) != '') {
$infos_departement = $this->chargerInformationsDepartementsFranceCsv();
$url_departement = new URL(Config::get('url_base'));
$url_departement->setVariableRequete('id_annuaire', $id_annuaire);
$url_departement->setVariableRequete('m', 'annuaire_afficher_carte');
$url_departement->setVariableRequete('continent', $continent);
$url_departement->setVariableRequete('departement', $departement);
$url_departement->setVariableRequete('pays', $pays);
$donnees['url_departement'] = $url_departement;
$donnees['nom_departement'] = $infos_departement[$departement][2];
}
 
return $donnees;
}
private function chargerInformationsContinentCsv() {
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'continents';
return $this->chargerInformationsCompletesParCsv($nom_csv);
}
private function chargerInformationsPaysDuContinentsCsv($continent) {
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').$continent;
 
return $this->chargerInformationsCompletesParCsv($nom_csv);
}
private function chargerInformationsDepartementsFranceCsv() {
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'france';
return $this->chargerInformationsCompletesParCsv($nom_csv);
}
private function chargerInformationsCompletesParCsv($nom_csv) {
$fichier_csv = $nom_csv.'.csv';
$infos = array();
 
if (($handle = fopen($fichier_csv, 'r')) !== false) {
$ligne = 0;
 
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) {
if($ligne != 0 && trim($donnees[0]) != '') {
$infos[$donnees[0]] = $donnees;
}
$ligne++;
}
fclose($handle);
}
 
return $infos;
}
 
/**
* Récupère les identifiants de zone dans un fichier csv donné
* @param string $nom_csv chemin vers le fichier csv (sans extension) qui contient les données
334,7 → 443,7
$ligne = 0;
 
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) {
 
if($ligne != 0 && trim($donnees[0]) != '') {
$zones_id[] = "'".$donnees[0]."'";
}