public function getGoogleMapIframe($params = array())
 {
     $html = '<link href="css/default.css" rel="stylesheet" type="text/css" />
 ';
     if (isset($this->variablesGet['longitude']) && $this->variablesGet['longitude'] != '' && isset($this->variablesGet['latitude']) && $this->variablesGet['latitude'] != '') {
         $ajax = new ajaxObject();
         $html .= $ajax->getAjaxFunctions();
         $longitude = $this->variablesGet['longitude'];
         $latitude = $this->variablesGet['latitude'];
         $listeCoords = array();
         // si archiIdAdresse est précisé , on remplace les coordonnées par celle de l'adresse ( car celle envoyée sont celle de la premiere du groupe d'adresse)
         $isCoordonneesAdresseCouranteValide = true;
         $isCoordonneesGroupeAdresseOK = false;
         if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
             // s'il existe des coordonnées pour le groupe d'adresse dans la table _adresseEvenement, on prend celles ci
             $reqCoordonneesGroupeAdresse = "SELECT longitudeGroupeAdresse,latitudeGroupeAdresse FROM _adresseEvenement WHERE idAdresse='" . $this->variablesGet['archiIdAdresse'] . "' AND idEvenement='" . $this->variablesGet['archiIdEvenementGroupeAdresse'] . "' AND longitudeGroupeAdresse<>'0' AND latitudeGroupeAdresse<>'0'";
             $resCoordonneesGroupeAdresse = $this->connexionBdd->requete($reqCoordonneesGroupeAdresse);
             if (mysql_num_rows($resCoordonneesGroupeAdresse) > 0) {
                 $fetchCoordonneesGroupeAdresse = mysql_fetch_assoc($resCoordonneesGroupeAdresse);
                 $longitude = $fetchCoordonneesGroupeAdresse['longitudeGroupeAdresse'];
                 $latitude = $fetchCoordonneesGroupeAdresse['latitudeGroupeAdresse'];
                 $isCoordonneesGroupeAdresseOK = true;
             }
         }
         if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && $this->variablesGet['archiIdAdresse'] != '0' && !$isCoordonneesGroupeAdresseOK) {
             $reqCoordonnees = "\n                    SELECT ha1.longitude as longitude, ha1.latitude as latitude\n                    FROM historiqueAdresse ha2, historiqueAdresse ha1\n                    WHERE ha2.idAdresse = ha1.idAdresse\n                    AND ha1.idAdresse = '" . $this->variablesGet['archiIdAdresse'] . "'\n                    GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse\n                    HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n                ";
             $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees);
             if (mysql_num_rows($resCoordonnees) == 1) {
                 $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees);
                 if ($fetchCoordonnees['longitude'] != '' && $fetchCoordonnees['latitude'] != '' && $fetchCoordonnees['longitude'] != '0' && $fetchCoordonnees['latitude'] != '0') {
                     $longitude = $fetchCoordonnees['longitude'];
                     $latitude = $fetchCoordonnees['latitude'];
                 } else {
                     $isCoordonneesAdresseCouranteValide = false;
                 }
             }
         }
         $affichageCoordonneesVille = false;
         if ($longitude < 0 || $latitude < 0 || $longitude == 0 || $latitude == 0 || !$isCoordonneesAdresseCouranteValide) {
             // on detection une longitude ou latitude negative : il doit y avoir eu une erreur de detection des parametres
             // on va centrer la carte sur la ville
             if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && $this->variablesGet['archiIdAdresse'] != '0') {
                 // recuperation de l'idville de l'adresse courante
                 $idVille = $this->getIdVilleFrom($this->variablesGet['archiIdAdresse'], 'idAdresse');
                 // coordonnees de la ville
                 $reqCoordonneesVille = "SELECT longitude,latitude,nom FROM ville WHERE idVille = '" . $idVille . "'";
                 $resCoordonneesVille = $this->connexionBdd->requete($reqCoordonneesVille);
                 $fetchCoordonneesVille = mysql_fetch_assoc($resCoordonneesVille);
                 $longitude = $fetchCoordonneesVille['longitude'];
                 $latitude = $fetchCoordonneesVille['latitude'];
                 $affichageCoordonneesVille = true;
             }
         }
         // rayon en metres
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             // dans le cas de l'affichage de la popup sur le detail de l'adresse on prend un rayon plus grand, donc plus d'adresses affichées
             $rayon = 200;
         } else {
             $rayon = 200;
         }
         $arrayGoogleMapCoord = $this->getArrayGoogleMapConfigCoordonneesFromCenter(array('longitude' => $longitude, 'latitude' => $latitude, 'rayon' => $rayon));
         $listeCoords = $arrayGoogleMapCoord['arrayConfigCoordonnees'];
         // verification des droits
         $isAuthorizedToDrag = false;
         $widthGoogleMapModePopup = 650;
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
                 $idAdresseCentree = $this->variablesGet['archiIdAdresse'];
                 $idEvenementGroupeAdresseCentre = $this->variablesGet['archiIdEvenementGroupeAdresse'];
                 $utilisateur = new archiUtilisateur();
                 $authentification = new archiAuthentification();
                 // verification des droits
                 if ($utilisateur->isAuthorized('googlemap_change_coordonnees', $authentification->getIdUtilisateur())) {
                     if ($utilisateur->getIdProfil($authentification->getIdUtilisateur()) == 4 || $utilisateur->getIdProfil($authentification->getIdUtilisateur()) == 3 && $utilisateur->isModerateurFromVille($authentification->getIdUtilisateur(), $idAdresseCentree, 'idAdresse')) {
                         $isAuthorizedToDrag = true;
                         $widthGoogleMapModePopup = 650;
                     }
                 }
             }
         }
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             // affichage pour la popup sur le detail d'une adresse
             if ($affichageCoordonneesVille) {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => $widthGoogleMapModePopup, 'height' => 500, 'zoom' => 11, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => false, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             } else {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => $widthGoogleMapModePopup, 'height' => 500, 'zoom' => 17, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => false, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             }
         } else {
             if ($affichageCoordonneesVille) {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 275, 'height' => 275, 'zoom' => 10, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => true, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             } else {
                 // affichage par defaut , s'affichage en haut de la page detail d'une adresse , a gauche de l'encars
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 275, 'height' => 275, 'zoom' => 16, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => true, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
                 //,'divStyle'=>'margin-top:-17px;'
             }
         }
         $html .= $gm->getJsFunctions();
         //$html.="<script  >".$gm->setFunctionAddPointsCallableFromChild()."</script>";
         $html .= $gm->getMap(array('listeCoordonnees' => $listeCoords, 'urlImageIcon' => $this->getUrlImage() . "pointGM.png", 'pathImageIcon' => $this->getCheminPhysique() . "images/pointGM.png"));
         // on ajoute le markeur central a la main
         $html .= "<script  >\n                var iconHome = new GIcon();\n                iconHome.image = \"" . $this->getUrlImage() . "placeMarker.png\";\n                //iconHome.shadow = \"https://labs.google.com/ridefinder/images/mm_20_shadow.png\";\n                iconHome.iconSize = new GSize(19, 32);\n                iconHome.shadowSize = new GSize(22, 20);\n                iconHome.iconAnchor = new GPoint(5, 26);\n                iconHome.infoWindowAnchor = new GPoint(5, 1);\n\n                //var iconMarkerHome = new GIcon(iconHome);\n                ";
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "markerHome = new GMarker(new GLatLng(" . $latitude . "," . $longitude . "),{icon:iconHome, draggable: true});";
         } else {
             $html .= "markerHome = new GMarker(new GLatLng(" . $latitude . "," . $longitude . "),{icon:iconHome});";
         }
         $html .= "map.addOverlay(markerHome);";
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "markerHome.enableDragging();";
         }
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "GEvent.addListener(markerHome,'drag',function(){parent.window.document.getElementById('latitudeUser').value=markerHome.getPoint().lat();parent.window.document.getElementById('longitudeUser').value=markerHome.getPoint().lng();parent.window.document.getElementById('validationCoordonnees').style.display='';});\n                ";
             $html .= "GEvent.addListener(\n                            map,\n                            'dragend',\n                            function(){appelAjaxReturnJs('" . html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noRefresh' => 1, 'noHTMLHeaderFooter' => 1, 'noHeaderNoFooter' => 1, 'latitudeHome' => $latitude, 'longitudeHome' => $longitude))) . "&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}\n                            );";
         } else {
             $html .= "GEvent.addListener(\n                            map,\n                            'dragend',\n                            function(){appelAjaxReturnJs('" . html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noHTMLHeaderFooter' => 1, 'noHeaderNoFooter' => 1, 'latitudeHome' => $latitude, 'longitudeHome' => $longitude))) . "&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}\n                            );";
             //$html.="GEvent.addListener(map,'dragend',function(){document.getElementById('iFrameMajCenter').src='".$this->creerUrl('','majGoogleMapNewCenter',array('noHeaderNoFooter'=>1,'latitudeHome'=>$latitude,'longitudeHome'=>$longitude))."&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat();});";
         }
         //$html.=$gm->setFunctionAddPointsCallableFromChild(array());
         $html .= "</script>";
         //$html.="<div id='jsMiseAJourCenter' ><iframe id='iFrameMajCenter' src=''></iframe></div>";//style='position:absolute;left:0px;top:0px;'
     }
     return $html;
 }
Ejemplo n.º 2
0
    $reqTitre = "SELECT prenom, nom FROM utilisateur WHERE idUtilisateur = {$userId}";
    $res = $config->connexionBdd->requete($reqTitre);
    $arrayUser = mysql_fetch_assoc($res);
    $labelConnexion = $arrayUser['prenom'] . " " . $arrayUser['nom'];
    $t->assign_block_vars('utilisateurConnecte', array());
    $t->assign_vars(array('inscriptionDeconnexion' => _("Déconnexion"), 'formulaireRecherche' => $recherche->afficheFormulaire(array(), 0, array('noDisplayRechercheAvancee' => false, 'noDisplayCheckBoxResultatsCarte' => false)), 'urlInscriptDeconnexion' => $config->creerUrl('deconnexion', 'authentification'), 'urlAccueil' => $config->creerUrl('', 'afficheAccueil'), 'txtAccueil' => _("Accueil"), 'urlMonArchi' => $config->creerUrl('', 'afficheAccueil', array('modeAffichage' => 'monArchi')), 'txtMonArchi' => _("Mon Archi"), 'authLinkOneUrl' => $config->creerUrl('', 'afficheAccueil', array('modeAffichage' => 'profil')), 'classAuthLinkWrapper' => 'connectedAuthLink', 'classFastConnect' => $classFastConnect));
    if ($utilisateur->getIdProfil($userId) >= 4) {
        $t->assign_block_vars('linkConnected', array('authLinkOneClass' => 'authLinkTwoClass subscribeLabel', 'authLinkUrl' => $config->creerUrl('', 'utilisateurListe'), 'authLinkLabel' => _("Utilisateurs")));
    }
    if ($utilisateur->getIdProfil($userId) >= 3) {
        $t->assign_block_vars('linkConnected', array('authLinkOneClass' => 'authLinkTwoClass subscribeLabel', 'authLinkUrl' => $config->creerUrl('', 'administration'), 'authLinkLabel' => _("Administration")));
    }
    $t->assign_block_vars('linkConnected', array('authLinkOneClass' => ' authLinkOneClass forgetPasswordLabel', 'authLinkUrl' => $config->creerUrl('', 'afficheAccueil', array('modeAffichage' => 'profil')), 'authLinkLabel' => _("Mon Profil")));
    $t->assign_block_vars('linkConnected', array('authLinkOneClass' => ' authLinkOneClass forgetPasswordLabel', 'authLinkUrl' => $config->creerUrl('', 'afficheAccueil', array('modeAffichage' => 'monArchi')), 'authLinkLabel' => _("Mon Archi")));
    $t->assign_block_vars('linkConnected', array('authLinkOneClass' => 'authLinkTwoClass subscribeLabel', 'authLinkUrl' => $config->creerUrl('deconnexion', 'authentification'), 'authLinkLabel' => _("Déconnexion")));
    if ($utilisateur->isAuthorized('affiche_menu_admin', $authentification->getIdUtilisateur())) {
        $t->assign_block_vars('afficheAdministrationMenu', array());
    }
}
$t->assign_vars(array("labelConnexion" => $labelConnexion, 'imageConnexion' => $imgConnexion, 'urlFr' => $config->creerUrl('', '', array_merge($_GET, array('lang' => fr_FR))), 'urlEn' => $config->creerUrl('', '', array_merge($_GET, array('lang' => en_US))), 'urlDe' => $config->creerUrl('', '', array_merge($_GET, array('lang' => de_DE)))));
if ($adresse->isParcoursActif()) {
    $t->assign_block_vars('isParcours', array());
}
//$t->assign_vars(array('lienRechercheParCarte'=>"<a style='margin-left:-42px;' href='".$config->creerUrl('', 'rechercheParCarte')."'>Recherche par carte</a>"));
$t->assign_vars(array('lienRechercheAvancee' => "<a style='margin-left:-42px;' href='" . $authentification->creerUrl('', 'rechercheAvancee') . "'>" . _("Recherche avancée") . "</a>"));
if (count($_POST) == 0 && count($_GET) == 0 || isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'afficheAccueil') {
    //$t->assign_vars(array('bandeauPublicite'=>"<a href='".$config->creerUrl('', 'publiciteArticlesPresse')."'><img src='".$config->getUrlRacine()."/images/publicite/bandeau3.jpg' border=0></a>"));
}
if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') {
    $a = new archiAdresse();
    $coord = $a->getCoordonneesFrom($_GET["archiIdAdresse"], "idAdresse");
 public function afficheFormulaire($tabTravail = array(), $modif = '', $idParent = 0, $typeParentId = '')
 {
     $html = '';
     $t = new Template('modules/archi/templates/');
     //$t->set_filenames((array('evl'=>'evenementFormulaire.tpl')));
     $t->set_filenames(array('evl' => 'nouveauDossier.tpl'));
     $isEvenementGroupeAdresse = false;
     $formulaire = new formGenerator();
     $groupeTypeEvenement = 2;
     // par defaut on selectionne les evenement de type 'travaux'
     if (isset($this->variablesPost['typeGroupeEvenement']) && $this->variablesPost['typeGroupeEvenement'] != '') {
         $groupeTypeEvenement = $this->variablesPost['typeGroupeEvenement'];
     }
     $t->assign_vars(array('typeBoutonValidation' => "button"));
     // quand test javascript sur les champs de l'adresse , type = button
     // cas d'ajout d'un sous evenement ou d'un evenement appartenant a une adresse
     // on n'affiche pas les listes d'evenements et d'adresses
     if ($idParent != 0) {
         // est ce que l'on veut lier l'evenement a un evenement que l'on a précisé en parametre ou a une adresse ?
         switch ($typeParentId) {
             case 'evenement':
                 // CAS OU L'ON VA AJOUTER UN SOUS EVENEMENT A L'EVENEMENT GROUPE d'ADRESSE
                 $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
                 if ($idPerson = archiPersonne::isPerson($idParent)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresse' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $adresse = new archiAdresse();
                     $t->assign_vars(array('recapitulatifAdresse' => $adresse->afficherRecapitulatifAdresses($idParent)));
                 }
                 $t->assign_block_vars('afficheAjoutEvenement', array());
                 //$t->assign_block_vars('isNotAffichageGroupeAdresse',array());
                 $t->assign_vars(array('evenementGroupeAdresse' => $idParent));
                 $t->assign_vars(array('nomBoutonValidation' => 'ajoutSousEvenement'));
                 $t->assign_vars(array('typeBoutonValidation' => "submit"));
                 break;
             case 'adresse':
                 $tabTravail['adresses']['value'] = array($idParent);
                 $t->assign_block_vars('ajouterAdresses', array());
                 break;
         }
     } else {
         // l'evenement est il un groupe d'adresse , si oui , on n'affichera que le champ des adresses
         if ($modif != '') {
             // c'est une modification d'evenement
             // on affiche le recapitulatif de l'adresse en haut de page
             $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
             $idEvenementGroupeAdresse = $this->getParent($modif);
             $adresse = new archiAdresse();
             if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                 $person = new archiPersonne();
                 $infos = $person->getInfosPersonne($idPerson);
                 $t->assign_vars(array('recapitulatifAdresse' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
             } else {
                 $t->assign_vars(array('recapitulatifAdresse' => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
             }
             $t->assign_vars(array('recaptitulatifAncres' => $this->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $modif)));
             $t->assign_vars(array("liensModifEvenements" => $this->afficherLiensModificationEvenement($modif)));
             $isEvenementGroupeAdresse = $this->isEvenementGroupeAdresse($modif);
             if ($isEvenementGroupeAdresse) {
                 // l'evenement courant est de type groupe d'adresse
                 // on affiche rien a par l'adresse
                 // on renseigne le champs cache du formulaire pour recuperer rapidement l'identifiant lors de la validation de la modification
                 $t->assign_vars(array('evenementGroupeAdresse' => $modif));
                 $t->assign_block_vars('ajouterAdresses', array());
                 //on recupere les adresses liées a cet evenement
                 $reqAdressesGroupeAdresses = "\n\t\t\t\t\t\t\tSELECT ha.idAdresse as idAdresse\n\t\t\t\t\t\t\tfrom historiqueAdresse ha2, historiqueAdresse ha\n\t\t\t\t\t\t\tright join _adresseEvenement ae on ae.idAdresse = ha.idAdresse\n\t\t\t\t\t\t\twhere ae.idEvenement = '" . $modif . "'\n\t\t\t\t\t\t\t\t\tand ha2.idAdresse = ha.idAdresse\n\t\t\t\t\t\t\t\t\tgroup by ha.idAdresse,ha.idHistoriqueAdresse\n\t\t\t\t\t\t\t\t\thaving ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\t\t";
                 $resAdressesGroupeAdresses = $this->connexionBdd->requete($reqAdressesGroupeAdresses);
                 while ($fetchAdressesGroupeAdresses = mysql_fetch_assoc($resAdressesGroupeAdresses)) {
                     $tabTravail["adresses"]['value'][] = $fetchAdressesGroupeAdresses['idAdresse'];
                 }
             } else {
                 // MODIFICATION d'UN EVENEMENT (juste l'evenement, pas d'adresse , pas de groupe d'adresse)
                 // initialisation des champs du template que l'on va afficher
                 $t->assign_block_vars('afficheAjoutEvenement', array());
                 $t->assign_vars(array('nomBoutonValidation' => 'evenementSimple'));
                 $t->assign_vars(array('typeBoutonValidation' => "submit"));
             }
         } else {
             // ce n'est pas une modification d'evenement
             $t->assign_block_vars('afficheAjoutEvenement', array());
         }
     }
     //***********************************************************************************************
     // TYPE STRUCTURE
     // dans le cas d'un ajout de sous evenement
     // par defaut on recupere le type de structure du premier evenement enregistré 'qui n'est pas un groupe d'adresses'
     //***********************************************************************************************
     $heriteIdTypeStructure = '';
     if ($idParent != '0' && $typeParentId == 'evenement') {
         $sqlTypeStructureHerite = "\n\t\t\t\t\tSELECT he.idTypeStructure as idTypeStructure\n\t\t\t\t\tFROM evenements he2, evenements he\n\t\t\t\t\tWHERE he.idEvenement =(select min(ee.idEvenementAssocie) from _evenementEvenement ee where ee.idEvenement = '" . $idParent . "')\n\t\t\t\t\t\t\tAND he2.idEvenement = he.idEvenement\n\t\t\t\t\t\t\tGROUP BY he.idEvenement\n\t\t\t\t\t\t\t";
         $resTypeStructureHerite = $this->connexionBdd->requete($sqlTypeStructureHerite);
         if (mysql_num_rows($resTypeStructureHerite) == 1) {
             $fetchTypeStructureHerite = mysql_fetch_assoc($resTypeStructureHerite);
             $heriteIdTypeStructure = $fetchTypeStructureHerite['idTypeStructure'];
         }
         //echo "heriteIdTypeStructure=".$heriteIdTypeStructure;
     }
     if (!isset($idEvenementGroupeAdresse)) {
         $idEvenementGroupeAdresse = $_GET["archiIdEvenement"];
     }
     if (!archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         $t->assign_block_vars("afficheAjoutEvenement.isAddress", array());
         $sqlTypeStructure = 'SELECT idTypeStructure, nom FROM typeStructure order by nom';
         if ($result = $this->connexionBdd->requete($sqlTypeStructure)) {
             while ($fetchTypeStructure = mysql_fetch_object($result)) {
                 if ($fetchTypeStructure->idTypeStructure != 0) {
                     //$tabTypeStructure[$rep->idTypeStructure] = $rep->nom;
                     if (isset($tabTravail['typeStructure']) && $tabTravail['typeStructure']['value'] == $fetchTypeStructure->idTypeStructure || $heriteIdTypeStructure != '' && $fetchTypeStructure->idTypeStructure == $heriteIdTypeStructure) {
                         $selected = 'selected="selected"';
                     } else {
                         $selected = '';
                     }
                     $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesStructure', array('id' => $fetchTypeStructure->idTypeStructure, 'nom' => $fetchTypeStructure->nom, 'selected' => $selected));
                 }
             }
         }
     }
     // ***********************************************************************************
     // si la personne n'est pas admin elle verra une version simplifiée du formulaire
     $authentification = new archiAuthentification();
     if ($authentification->estConnecte() && $authentification->estAdmin()) {
         $t->assign_block_vars('afficheAjoutEvenement.isAdmin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotAdmin', array());
     }
     // ******
     // ***********************************************************************************
     // autre cas pour l'affichage du champ numeroArchive , il faut que l'utilisateur soit autorisé à l'afficher => table utilisateur
     $utilisateur = new archiUtilisateur();
     if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeNumeroArchive', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeNumeroArchive', array());
     }
     if ($utilisateur->canChangeDateFinField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeDateFin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeDateFin', array());
     }
     if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) {
         $t->assign_block_vars('afficheAjoutEvenement.isDisplaySource', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotDisplaySource', array());
     }
     // ******
     // ***********************************************************************************
     // le type de groupe d'evenement
     // 1 - culturel
     // 2 - travaux
     $t->assign_vars(array('onClickTypeEvenement1' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '1')) . "','typeEvenement');document.getElementById('afficheChampsSupplementairesCulturel').style.display='block';document.getElementById('afficheChampsSupplementairesTravaux').style.display='none';"));
     $t->assign_vars(array('onClickTypeEvenement2' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '2')) . "','typeEvenement');document.getElementById('afficheChampsSupplementairesTravaux').style.display='block';document.getElementById('afficheChampsSupplementairesCulturel').style.display='none';"));
     // si c'est une modification de l'evenement il faut chercher l'id de type de groupe d'evenement afin d'afficher les bons div , et donc on reassigne la variable groupeTypeEvenement
     if ($modif != '') {
         if (isset($tabTravail['typeEvenement']['value'])) {
             $reqGroupeTypeEvenement = "select groupe from typeEvenement where idTypeEvenement='" . $tabTravail['typeEvenement']['value'] . "'";
             $resGroupeTypeEvenement = $this->connexionBdd->requete($reqGroupeTypeEvenement);
             $fetchGroupeTypeEvenement = mysql_fetch_assoc($resGroupeTypeEvenement);
             $groupeTypeEvenement = $fetchGroupeTypeEvenement['groupe'];
         }
     }
     // on affiche le bon div
     if ($groupeTypeEvenement == 1) {
         // 1: culturel
         $t->assign_vars(array('checkedTypeEvenement1' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireTravaux' => "display:none;"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:block;"));
         if (isset($tabTravail['ISMH']) && $tabTravail['ISMH']['value'] == '1') {
             $t->assign_vars(array('ISMHchecked' => " checked"));
         }
         if (isset($tabTravail['MH']) && $tabTravail['MH']['value'] == '1') {
             $t->assign_vars(array('MHchecked' => " checked"));
         }
     } elseif ($groupeTypeEvenement == 2) {
         // 2: travaux
         $t->assign_vars(array('nbEtages' => $tabTravail['nbEtages']['value']));
         $t->assign_vars(array('checkedTypeEvenement2' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireTravaux' => "display:block;"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:none;"));
     }
     if (isset($tabTravail['isDateDebutEnviron']) && $tabTravail['isDateDebutEnviron']['value'] == '1') {
         $t->assign_vars(array('isDateDebutEnviron' => " checked"));
     }
     if (!archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         // les type d'evenements
         // par defaut on selectionne le typeEvenement=2 (travaux)
         $resTypeEvenement = $this->connexionBdd->requete("SELECT idTypeEvenement,nom FROM typeEvenement where groupe = '" . $groupeTypeEvenement . "'");
         while ($fetchTypeEvenement = mysql_fetch_assoc($resTypeEvenement)) {
             $selected = "";
             if (isset($tabTravail['typeEvenement']) && $tabTravail['typeEvenement']['value'] == $fetchTypeEvenement["idTypeEvenement"]) {
                 $selected = "selected";
             }
             $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesEvenement', array('id' => $fetchTypeEvenement['idTypeEvenement'], 'nom' => $fetchTypeEvenement['nom'], 'selected' => $selected));
         }
     }
     // ***********************************************************************************
     //** Courant Architecturaux - récupération
     //*
     $sqlCourantArchitectural = 'SELECT idCourantArchitectural, nom FROM courantArchitectural order by nom';
     //$tabCourantArchitectural = array();
     $tableauCourants = new tableau();
     if ($result = $this->connexionBdd->requete($sqlCourantArchitectural)) {
         while ($fetchCourant = mysql_fetch_object($result)) {
             //$tabCourantArchitectural[$rep->idCourantArchitectural] = $rep->nom;
             if (isset($tabTravail['courant']) && is_array($tabTravail['courant']['value']) && in_array($fetchCourant->idCourantArchitectural, $tabTravail['courant']['value']) && $groupeTypeEvenement == 2) {
                 $selected = 'checked';
             } else {
                 $selected = '';
             }
             $tableauCourants->addValue("<input type='checkbox' name='courant[]' value='" . $fetchCourant->idCourantArchitectural . "' " . $selected . ">&nbsp;" . $fetchCourant->nom);
             //$t->assign_block_vars('isNotAffichageGroupeAdresse.courant', array('id'=> $fetchCourant->idCourantArchitectural, 'nom'=> $fetchCourant->nom, 'selected'=> $selected));
         }
         $t->assign_vars(array('listeCourantsArchitecturaux' => $tableauCourants->createHtmlTableFromArray(3, "white-space:nowrap;font-size:12px; font-color:#000000;", 'listeCourantsArchitecturaux')));
     }
     // ***********************************************************************************
     // assignation du bouton de validation : ajout ou modif
     if ($formulaire->estChiffre($modif)) {
         $t->assign_vars(array('typeTitre' => 'Modification', 'estmodif' => '<input type="hidden" name="idEvenement" value="' . $modif . '" />', 'boutonValidation' => 'Modifier', 'formAction' => $this->creerUrl('modifierEvenement', '', array('archiIdEvenement' => $modif))));
     } else {
         $t->assign_vars(array('typeTitre' => 'Ajout', 'estmodif' => '', 'boutonValidation' => 'Ajouter', 'formAction' => $this->creerUrl('ajoutEvenement')));
     }
     // ***********************************************************************************
     //**  Affichage des Erreurs
     //**
     foreach ($tabTravail as $name => $value) {
         if (!is_array($value["value"])) {
             if ($value['type'] == 'date') {
                 $val = $this->date->toFrench($this->date->toBdd($value['value']));
             } else {
                 $val = htmlspecialchars(stripslashes($value["value"]));
                 // nécessaire pour la description
             }
         } else {
             $val = $value["value"];
         }
         if ($value['type'] != 'checkbox') {
             $t->assign_vars(array($name => $val));
         }
         if (isset($value['error']) && $value["error"] != '') {
             $t->assign_vars(array($name . "-error" => $value["error"]));
         }
     }
     // ***********************************************************************************
     //**  Affichage des listes d'options
     //**
     // recherche des intitules de la source de l'evenement courant
     if (!empty($tabTravail['source']['value'])) {
         $sql = "\n\t\t\t\t\tSELECT s.idSource as idSource, s.nom as nom , ts.nom as nomTypeSource\n\t\t\t\t\tFROM source s\n\t\t\t\t\tLEFT JOIN typeSource ts ON ts.idTypeSource = s.idTypeSource\n\t\t\t\t\tWHERE s.idSource ='" . $tabTravail['source']['value'] . "'";
         $rep = $this->connexionBdd->requete($sql);
         $fetchSource = mysql_fetch_assoc($rep);
         $t->assign_vars(array('source' => $tabTravail['source']['value'], 'sourcetxt' => stripslashes($fetchSource['nom']) . ' ' . $fetchSource['nomTypeSource']));
     }
     // les personnes
     $d = new droitsObject();
     if ($d->isAuthorized('personne_sur_evenement_modifier', $authentification->getIdProfil())) {
         $t->assign_vars(array("affichePersonnesBlock" => "table-row"));
         if (!empty($tabTravail['personnes']['value'])) {
             foreach ($tabTravail['personnes']['value'] as $id => $val) {
                 $tabTravail['personnes']['value'][$id] = mysql_escape_string($val);
             }
             $sqlIdPersonne = implode("','", $tabTravail['personnes']['value']);
             $sql = "SELECT idPersonne, nom, prenom FROM personne WHERE idPersonne IN ('" . $sqlIdPersonne . "')";
             $rep = $this->connexionBdd->requete($sql);
             $tabPersonne = array();
             while ($res = mysql_fetch_object($rep)) {
                 $tabPersonne[$res->idPersonne] = $res->nom . ' ' . $res->prenom;
             }
             foreach ($tabPersonne as $id => $val) {
                 $t->assign_block_vars('afficheAjoutEvenement.personnes', array('id' => $id, 'nom' => $val, 'selected' => 'selected'));
             }
         }
     } else {
         $t->assign_vars(array("affichePersonnesBlock" => "none"));
     }
     // les adresses
     /*if (!empty($tabTravail['adresses']['value']))
     		{
     		foreach( $tabTravail['adresses']['value'] AS $id => $val)
     		{
     		$tabTravail['adresses']['value'][$id] = mysql_escape_string($val);
     		}
     		$sqlIdAdresse = implode("','", $tabTravail['adresses']['value']);
     		// recuperation des noms des adresses
     		$sql = "
     		SELECT ha.idAdresse as idAdresse, ha.nom as nom
     		FROM historiqueAdresse ha2, historiqueAdresse ha
     		WHERE ha.idAdresse IN ('".$sqlIdAdresse."')
     		AND ha.idAdresse = ha2.idAdresse
     		GROUP BY ha.idAdresse, ha.idHistoriqueAdresse
     		HAVING ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
     		";
     		$rep = $this->connexionBdd->requete($sql);
     		while ($res = mysql_fetch_object($rep))
     		{
     		$tabAdresse[$res->idAdresse] = $res->nom;
     		}
     
     		$adresse = new archiAdresse();
     		foreach($tabTravail['adresses']['value'] AS $id)
     		{
     		// recherche du libelle a afficher pour l'adresse
     		$nom = $adresse->getAdresseToDisplay($adresse->getArrayAdresseFromIdAdresse($id));//$adresse->getAdresseToDisplay($id);
     		$t->assign_block_vars('ajouterAdresses.adresses', array('val'=> $id, 'nom'=> $nom));
     		}
     		}
     
     		// les evenements lies ( pas utilisé pour le moment)
     		if (!empty($tabTravail['evenements']['value']))
     		{
     		// modif laurent pour ajout d'un sous evenement à l'evenement groupe d'adresse
     		if(count($tabTravail['evenements']['value'])==1)
     		{
     		foreach($tabTravail['evenements']['value'] as $indice => $value)
     		{
     		// recherche de l'evenement parent :
     		$resGroupeAdresse   = $this->connexionBdd->requete("select distinct idEvenement from _evenementEvenement where idEvenementAssocie='".$value."'");
     		$fetchGroupeAdresse = mysql_fetch_assoc($resGroupeAdresse);
     		$t->assign_vars(array('evenementGroupeAdresse'=>$fetchGroupeAdresse['idEvenement']));
     		}
     		}
     		else
     		{
     		$this->mail->sendMail('archiV2',$this->mail->getAdmin(),'ArchiV2-archiEvenements::il y a plusieurs evenements lies','il y a plusieurs evenements lies idEvenement='.$fetchGroupeAdresse['idEvenement']);
     		}
     
     
     		}
     		*/
     // ***********************************************************************************
     // gestion des appels des popups de dates
     $t->assign_vars(array('onClickDateDebut' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'onClickDateFin' => "document.getElementById('paramChampAppelantDate').value='dateFin';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';"));
     // bouton popup source
     $t->assign_vars(array('onClickBoutonChoisirSource' => "document.getElementById('paramChampsAppelantSource').value='source';document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';", 'onClickChoixPersonne' => "document.getElementById('paramChampsAppelantPersonne').value='personne';document.getElementById('calquePersonne').style.top=(getScrollHeight()+150)+'px';document.getElementById('calquePersonne').style.display='block';"));
     $recherche = new archiRecherche();
     //  liaison avec les adresses
     $t->assign_vars(array('popupPersonnes' => $recherche->getPopupChoixPersonne('modifEvenement'), 'popupSources' => $recherche->getPopupChoixSource('modifEvenement'), 'popupCalendrier' => $this->getPopupCalendrier()));
     // ******************************************************************************************************************************
     // on recupere les messages d'aide contextuelle et on les affiche :
     $helpMessages = $this->getHelpMessages("helpEvenement");
     foreach ($helpMessages as $fieldName => $helpMessage) {
         $t->assign_vars(array($fieldName => $helpMessage));
     }
     // ******************************************************************************************************************************
     ob_start();
     $t->pparse('evl');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 public function afficher($tabTravail = array(), $idUtilisateur = '', $modeAffichage = 'utilisateurDetail')
 {
     $html = '';
     $tabParametresPredefinis = array('pays', 'ville');
     $authentification = new archiAuthentification();
     $u = new archiUtilisateur();
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('ev' => $modeAffichage . '.tpl'));
     if (empty($idUtilisateur) or !is_numeric($idUtilisateur) or $idUtilisateur < 1) {
         // erreur
         $html .= 'Erreur id invalide';
         if (!$authentification->estConnecte()) {
             echo "<script  >location.href='" . $this->creerUrl('', 'authentification', array()) . "';</script>";
         }
     } else {
         // si l'on n'est pas admin on ne peut modifier que son propre compte
         if ($authentification->estConnecte() && ($idUtilisateur == $authentification->getIdUtilisateur() || $authentification->estAdmin())) {
             if ($modeAffichage == 'utilisateurProfil') {
                 $s = new objetSession();
                 $infos = $u->getArrayInfosFromUtilisateur($s->getFromSession('utilisateurConnecte' . $this->idSite));
                 $t->assign_vars(array("phraseBienvenu" => _("Modifier vos informations")));
                 $t->assign_vars(array("srcImgTrombone" => $this->getUrlImage(null, "trombone.jpg")));
             }
             $sqlIdUtilisateur = $idUtilisateur;
             $rep = $this->getInfosModifsPerso($idUtilisateur);
             if ($rep) {
                 $idUtilisateur = $rep['idUtilisateur'];
                 if (!empty($rep['nomVille'])) {
                     $t->assign_block_vars('villeFavoris', array());
                 }
                 $t->assign_vars(array('villeFavorite' => $rep['nomVille'], 'urlVilleFavorite' => $this->creerUrl('', 'adresseListe', array('selection' => 'ville', 'id' => $rep['idVille'], 'debut' => 0)), 'paysVilleFavorite' => $rep['nomPays'], 'urlPaysVilleFavorite' => $this->creerUrl('', 'adresseListe', array('selection' => 'pays', 'id' => $rep['idPays'], 'debut' => 0))));
                 // évènements créés par l'utilisateur
                 //$e = new archiEvenement();
                 //$evenements = $e->afficherListe(array('selection'=>'utilisateurAjout',  'id' => $idUtilisateur)); // liste des evenements de l'utilisateur
                 // images créés par l'utilisateur
                 //$i = new archiImage();
                 //$images = $i->afficherListe(array('selection'=>'utilisateur',  'id' => $idUtilisateur)); // liste des images de l'utilisateur
                 $t->assign_vars(array('idUtilisateurModif' => $idUtilisateur));
                 // ****************************
                 if (count($tabTravail) > 0) {
                     // recuperation des infos du formulaire
                     $nom = $tabTravail['nom']['value'];
                     $prenom = $tabTravail['prenom']['value'];
                     $mail = $tabTravail['mail']['value'];
                     if (isset($tabTravail['idProfil']['value'])) {
                         $idProfil = $tabTravail['idProfil']['value'];
                     }
                     if (isset($tabTravail['alerteMail']['value'])) {
                         $alerteMail = $tabTravail['alerteMail']['value'];
                     }
                     if (isset($tabTravail['idPeriodeEnvoiMailsRegroupes']['value'])) {
                         $idPeriodeEnvoiMailsRegroupes = $tabTravail['idPeriodeEnvoiMailsRegroupes']['value'];
                     }
                     if (isset($tabTravail['urlSiteWeb']['value'])) {
                         $urlSiteWeb = $tabTravail['urlSiteWeb']['value'];
                     }
                     if (isset($tabTravail['displayProfilContactForm']['value'])) {
                         $displayProfilContactForm = $tabTravail['displayProfilContactForm']['value'];
                     }
                     foreach ($tabTravail as $name => $value) {
                         $t->assign_vars(array($name . '-error' => $value['error']));
                     }
                 } else {
                     // recuperation des infos de la base
                     $nom = $rep['nom'];
                     $prenom = $rep['prenom'];
                     $mail = $rep['mail'];
                     $idProfil = $rep['idProfil'];
                     $alerteMail = $rep['alerteMail'];
                     $urlSiteWeb = $rep['urlSiteWeb'];
                     $displayProfilContactForm = $rep['displayProfilContactForm'];
                     $idPeriodeEnvoiMailsRegroupes = $rep['idPeriodeEnvoiMailsRegroupes'];
                 }
                 $d = new droitsObject();
                 $arrayProfils = $d->getArrayListeProfils();
                 $selectProfil = "<select name='idProfil' style='width:145px;'>";
                 foreach ($arrayProfils as $idProfilListe => $libelleProfilListe) {
                     $checked = "";
                     if ($idProfil == $idProfilListe) {
                         $checked = "selected";
                     }
                     $selectProfil .= "<option value='{$idProfilListe}' {$checked}>{$libelleProfilListe}</option>";
                 }
                 $selectProfil .= "</select>";
                 // periodicite d'envoi des mails
                 $reqPeriodicite = "SELECT idPeriode, intitule FROM periodesEnvoiMailsRegroupes";
                 $resPeriodicite = $this->connexionBdd->requete($reqPeriodicite);
                 $selectPeriodiciteMail = "<select name='idPeriodeEnvoiMailsRegroupes'>";
                 while ($fetchPeriodicite = mysql_fetch_assoc($resPeriodicite)) {
                     $selected = "";
                     if ($idPeriodeEnvoiMailsRegroupes == $fetchPeriodicite['idPeriode']) {
                         $selected = "selected";
                     }
                     $selectPeriodiciteMail .= "<option value='" . $fetchPeriodicite['idPeriode'] . "' {$selected}>" . $fetchPeriodicite['intitule'] . "</option>";
                 }
                 $selectPeriodiciteMail .= "</select>";
                 $t->assign_block_vars('detailUtilisateur', array('nom' => $nom, 'prenom' => $prenom, 'email' => $mail, 'onClickChoixVilleFavorite' => "document.getElementById('calqueVille').style.top=getScrollHeight()+150+'px';document.getElementById('paramChampAppelantVille').value='ville';document.getElementById('calqueVille').style.display='block';", 'ville' => $rep['idVille'], 'villetxt' => $rep['nomVille'], 'urlSiteWeb' => $urlSiteWeb, 'imageAvatar' => "<img src='" . $this->getImageAvatar(array('idUtilisateur' => $idUtilisateur)) . "' border=0>"));
                 $authentifie = new archiAuthentification();
                 if ($authentifie->estConnecte() && $authentifie->estAdmin()) {
                     $t->assign_block_vars('detailUtilisateur.utilisateurCourantIsAdmin', array());
                     $t->assign_vars(array('selectProfil' => $selectProfil));
                     //$t->assign_vars(array("urlLogsMails"=>"<a href='".$this->creerUrl('', 'afficheLogsMails', array('idUtilisateur'=>$idUtilisateur))."'>Acceder au log des mail de cet utilisateur</a>"));
                 }
                 if ($modeAffichage == "utilisateurDetail") {
                     if ($authentifie->estConnecte() && $authentifie->estAdmin()) {
                         $t->assign_vars(array('selectPeriodiciteMail' => $selectPeriodiciteMail));
                         $t->assign_block_vars('detailUtilisateur.banissementUtilisateurParAdmin', array());
                         if ($rep['compteBanni'] == '1') {
                             $t->assign_vars(array('checkDisplayBannirUtilisateurOui' => 'checked'));
                         } else {
                             $t->assign_vars(array('checkDisplayBannirUtilisateurNon' => 'checked'));
                         }
                     }
                     if ($this->canChangeNumeroArchiveField(array('idUtilisateur' => $idUtilisateur))) {
                         $t->assign_vars(array('checkDisplayNumeroArchiveFieldOui' => 'checked'));
                     } else {
                         $t->assign_vars(array('checkDisplayNumeroArchiveFieldNon' => 'checked'));
                     }
                     if ($this->canChangeDateFinField(array('idUtilisateur' => $idUtilisateur))) {
                         $t->assign_vars(array('checkDisplayDateFinFieldOui' => 'checked'));
                     } else {
                         $t->assign_vars(array('checkDisplayDateFinFieldNon' => 'checked'));
                     }
                     if ($this->canCopyright(array('idUtilisateur' => $idUtilisateur))) {
                         $t->assign_vars(array('canCopyright1' => 'checked'));
                     } else {
                         $t->assign_vars(array('canCopyright0' => 'checked'));
                     }
                     if ($this->canModifyTags(array('idUtilisateur' => $idUtilisateur))) {
                         $t->assign_vars(array('canModifyTags1' => 'checked'));
                     } else {
                         $t->assign_vars(array('canModifyTags0' => 'checked'));
                     }
                     if ($this->canAddWithoutStreet(array('idUtilisateur' => $idUtilisateur))) {
                         $t->assign_vars(array('canAddWithoutStreet1' => 'checked'));
                     } else {
                         $t->assign_vars(array('canAddWithoutStreet0' => 'checked'));
                     }
                 }
                 if ($modeAffichage == 'utilisateurProfil') {
                     if ($authentifie->estConnecte() && ($idProfil == '3' || $idProfil == '4')) {
                         $t->assign_block_vars('detailUtilisateur.utilisateurCourantIsAdminOrModerateur', array());
                         $t->assign_vars(array('selectPeriodiciteMail' => $selectPeriodiciteMail));
                     }
                 }
                 if ($authentifie->estConnecte()) {
                     if ($rep['alerteCommentaires'] == '1') {
                         $t->assign_vars(array('checkAlertesCommentairesOui' => 'checked="checked"'));
                     } else {
                         $t->assign_vars(array('checkAlertesCommentairesNon' => 'checked="checked"'));
                     }
                     if ($rep['alerteAdresses'] == '1') {
                         $t->assign_vars(array('checkAlertesAdressesOui' => 'checked="checked"'));
                     } else {
                         $t->assign_vars(array('checkAlertesAdressesNon' => 'checked="checked"'));
                     }
                     if ($alerteMail == '1') {
                         $t->assign_vars(array('checkAlerteMailOui' => 'checked="checked"'));
                     } else {
                         $t->assign_vars(array('checkAlerteMailNon' => 'checked="checked"'));
                     }
                     if ($displayProfilContactForm == '1') {
                         $t->assign_vars(array('checkContactPersoProfilOui' => 'checked="checked"'));
                     } else {
                         $t->assign_vars(array('checkContactPersoProfilNon' => 'checked="checked"'));
                     }
                 }
                 if ($modeAffichage == "utilisateurDetail") {
                     $t->assign_vars(array('formAction' => $this->creerUrl('modifierUtilisateur', 'utilisateurDetail', array('modeAffichage' => 'utilisateurDetail', 'idUtilisateur' => $idUtilisateur))));
                 } else {
                     $t->assign_vars(array('formAction' => $this->creerUrl('modifierUtilisateur', 'afficheAccueil', array('modeAffichage' => 'profil'))));
                 }
                 // gestion de la popup du choix de la ville
                 $adresses = new archiAdresse();
                 $t->assign_vars(array('popupChoixVille' => $adresses->getPopupChoixVille('modifUtilisateur')));
                 ob_start();
                 $t->pparse('ev');
                 $html = ob_get_contents();
                 ob_end_clean();
             } else {
                 $html .= 'Aucun résultat';
             }
         } else {
             if ($authentification->estConnecte()) {
                 echo "Vous n'avez pas les droits pour effectuer cette action.<br>";
             } else {
                 echo "Vous n'êtes pas connecté.<br>";
             }
         }
     }
     $ongletUtilisateur = $html;
     $onglets = new ongletObject('0');
     $onglets->setLargeurTotale('700');
     $onglets->setLargeurEtiquette('200');
     $onglets->setHauteurOnglets('25');
     $onglets->setStyleContoursContenu("style='border-left:#007799 solid 2px;border-right:#007799 solid 2px;border-bottom:#007799 solid 2px;'");
     $onglets->setStyleTable("style='margin:0;padding:0;'");
     $onglets->setStyleTableEtiquettes("style='margin:0;padding:0;'");
     $onglets->setStylesOnglets('');
     $onglets->setStyleBorderHautContenu("style='border-bottom:2px solid #007799;'");
     $isCompteModerateur = false;
     if ($this->getIdProfilFromUtilisateur($idUtilisateur) == '3') {
         $isCompteModerateur = true;
     }
     if (isset($this->variablesGet['archiOnglet']) && $this->variablesGet['archiOnglet'] == 'listeVilles') {
         $afficheOngletUtilisateur = false;
         $afficheOngletListeVille = true;
         $afficheOngletLogsMails = false;
     } elseif (isset($this->variablesGet['recherche'])) {
         $afficheOngletUtilisateur = false;
         $afficheOngletListeVille = false;
         $afficheOngletLogsMails = true;
     } else {
         $afficheOngletUtilisateur = true;
         $afficheOngletListeVille = false;
         $afficheOngletLogsMails = false;
     }
     if ($modeAffichage == 'utilisateurDetail' && $u->isAuthorized('admin_ville_par_moderateur', $authentification->getIdUtilisateur())) {
         $onglets->addContent("utilisateur", $ongletUtilisateur, $afficheOngletUtilisateur);
     }
     if ($modeAffichage == 'utilisateurDetail' && $isCompteModerateur && $u->isAuthorized('admin_ville_par_moderateur', $authentification->getIdUtilisateur())) {
         $ongletListeVille = "";
         $reqVilles = "\n                        SELECT * \n                        FROM ville \n                        WHERE nom!='autre'";
         $resVilles = $this->connexionBdd->requete($reqVilles);
         $reqVillesModeration = "SELECT idVille FROM utilisateurModerateurVille WHERE idUtilisateur='" . $idUtilisateur . "'";
         $resVillesModeration = $this->connexionBdd->requete($reqVillesModeration);
         $arrayListeVillesModerees = array();
         if (mysql_num_rows($resVillesModeration) > 0) {
             while ($fetchVillesModeration = mysql_fetch_assoc($resVillesModeration)) {
                 $arrayListeVillesModerees[] = $fetchVillesModeration['idVille'];
             }
         }
         $tableau = new tableau();
         while ($fetchVilles = mysql_fetch_assoc($resVilles)) {
             $checked = "";
             $baliseOuvrante = "";
             $baliseFermante = "";
             if (in_array($fetchVilles['idVille'], $arrayListeVillesModerees)) {
                 $checked = "checked";
                 $baliseOuvrante = "<b>";
                 $baliseFermante = "</b>";
             }
             $tableau->addValue("<input type='checkbox' name='idVillesModerateur[]' value='" . $fetchVilles['idVille'] . "' {$checked}>&nbsp;{$baliseOuvrante}" . $fetchVilles['nom'] . $baliseFermante);
         }
         $ongletListeVille .= "<h3>Cet utilisateur modère :</h3>";
         $ongletListeVille .= "<form action='" . $this->creerUrl('enregistreListeVillesModerateur', 'utilisateurDetail', array('idUtilisateur' => $idUtilisateur, 'archiOnglet' => 'listeVilles')) . "' name='formulaireModerationVille' enctype='multipart/form-data' method='POST'>";
         $ongletListeVille .= $tableau->createHtmlTableFromArray(4);
         $ongletListeVille .= "<input type='hidden' value='" . $idUtilisateur . "' name='idUtilisateurModerateur'>";
         $ongletListeVille .= "<input type='submit' value='Enregistrer'>";
         $ongletListeVille .= "</form>";
         $onglets->addContent("modération de ville", $ongletListeVille, $afficheOngletListeVille);
     }
     if ($modeAffichage == 'utilisateurDetail' && $u->isAuthorized('admin_ville_par_moderateur', $authentification->getIdUtilisateur())) {
         // utilisateur administrateur
         $administration = new archiAdministration();
         $ongletLogsMail = $administration->getLoggedMails();
         $onglets->addContent("log mails", $ongletLogsMail, $afficheOngletLogsMails);
     }
     if ($modeAffichage == 'utilisateurDetail' && $u->isAuthorized('admin_ville_par_moderateur', $authentification->getIdUtilisateur())) {
         $html = $onglets->getHTML();
     }
     return $html;
 }
 /**
  * Affiche la liste des sources
  * 
  * @param array  $criteres      Critères
  * @param string $modeAffichage Mode d'affichage
  * 
  * @return string HTML
  * */
 public function afficherListe($criteres = array(), $modeAffichage = '')
 {
     $html = '';
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('listeSource' => 'listeSources.tpl'));
     if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') {
         $modeAffichage = $this->variablesGet['modeAffichage'];
     }
     $u = new archiUtilisateur();
     $a = new archiAuthentification();
     if ($a->estConnecte()) {
         if ($u->isAuthorized('ajout_source', $a->getIdUtilisateur())) {
             $t->assign_block_vars('isAuthorizedAjoutSource', array());
         }
     }
     // critere recherche par mot cle
     $sqlMotCle = "";
     $arrayMotCle = array();
     $urlMotCle = "";
     $isAffichageResultatRechercheMotCle = false;
     if (isset($this->variablesGet['motCle']) && $this->variablesGet['motCle'] != '') {
         $sqlMotCle = " AND LOWER(CONCAT(s.nom)) LIKE \"%" . $this->variablesGet['motCle'] . "%\" ";
         $arrayMotCle = array('motCle' => $this->variablesGet['motCle']);
         $urlMotCle = "&motCle=" . $this->variablesGet['motCle'];
         $t->assign_vars(array('motCleRechercheSource' => $this->variablesGet['motCle']));
         $isAffichageResultatRechercheMotCle = true;
     }
     switch ($modeAffichage) {
         case 'nouveauDossier':
         case 'modifEvenement':
         case 'modifImage':
         case 'ajoutModifParcoursAdmin':
             $t->assign_vars(array('urlAjout' => $this->creerUrl('', 'afficherAjouterSource', array('noHeaderNoFooter' => 1, 'modeAffichage' => $modeAffichage))));
             $t->assign_vars(array('formAction' => $this->creerUrl('', 'sourceListe', array('noHeaderNoFooter' => 1, 'modeAffichage' => $modeAffichage))));
             // si c'est un affichage apres un ajout ,  on renvoi le nouvel element
             if (isset($criteres['newIdSourceAdded']) && $criteres['newIdSourceAdded'] != '0') {
                 $t->assign_vars(array('codeJavascriptReturnNewElementAjoute' => "\n                    parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value).value='" . $criteres['newIdSourceAdded'] . "';\n                    parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value+'txt').value='" . str_replace("'", "\\'", stripslashes($this->getSourceLibelle($criteres['newIdSourceAdded']))) . "';\n                    parent.document.getElementById('calqueSource').style.display='none';\n                    "));
             }
             break;
         default:
             $t->assign_vars(array('urlAjout' => $this->creerUrl('', 'ajouterSource')));
             $t->assign_vars(array('formAction' => $this->creerUrl('', 'sourceListe')));
             break;
     }
     // analyse des criteres
     $sqlTypeSource = "";
     $arrayUrlTypeSource = array();
     if (isset($criteres['archiTypeSource'])) {
         $sqlTypeSource = " AND ts.idTypeSource = '" . $criteres['archiTypeSource'] . "' ";
         $arrayUrlTypeSource = array('archiTypeSource' => $criteres['archiTypeSource']);
     }
     // récupération du nombre de résultats par lettres
     $tabLettres = array();
     $sqlLettreCourante = '';
     if ($isAffichageResultatRechercheMotCle) {
         // en mode d'affichage de resultat de recherche ,  on affiche pas la liste alphabetique
         // donc on ne groupe pas par lettre dans la requete
         $sqlComptageResultat = "SELECT LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"),  1, 1)) AS lettre FROM source s \n                LEFT JOIN typeSource ts USING (idTypeSource)\n                WHERE 1 " . $sqlTypeSource . " " . $sqlMotCle . " ";
     } else {
         $sqlComptageResultat = "SELECT LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"),  1, 1)) AS lettre FROM source s \n                LEFT JOIN typeSource ts USING (idTypeSource)\n                WHERE 1 " . $sqlTypeSource . " " . $sqlMotCle . " GROUP BY LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"),  1, 1))";
         $rep = $this->connexionBdd->requete($sqlComptageResultat);
         while ($res = mysql_fetch_object($rep)) {
             $tabLettres[] = $res->lettre;
         }
         // si aucune lettre n'est précisée,  on indique la première lettre ayant des résultats
         // si le tableau de lettres est défini
         // et que la première lettre n'existe pas ou que la première lettre n'existe pas dans le tableau
         if (count($tabLettres) > 0 and (!isset($criteres['alphaSource']) or !in_array($criteres['alphaSource'], $tabLettres))) {
             $criteres['alphaSource'] = $tabLettres[0];
         }
         if (isset($criteres['alphaSource'])) {
             $sqlLettreCourante = " AND LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"), 1, 1)) = '" . $criteres['alphaSource'] . "' ";
         }
     }
     $nbEnregistrementsParPage = '3';
     if (isset($criteres['nbEnregistrements'])) {
         $nbEnregistrementsParPage = $criteres['nbEnregistrements'];
     }
     $debutEnregistrement = '0';
     if (isset($criteres['archiPageSource'])) {
         $debutEnregistrement = ($criteres['archiPageSource'] - 1) * $nbEnregistrementsParPage;
     }
     // affichage de la liste alphabetique
     $lettre = '';
     if (isset($tabLettre[0])) {
         $lettre = $tabLettre[0];
     }
     // on affiche les lettres si on est pas en recherche
     $t->assign_vars(array('listeAlphabetique' => $this->afficherListeAlphabetique('sourceListe', $lettre, $tabLettres, array('paramsUrl' => $urlMotCle))));
     // 'sourceListe' correspond au cas d'affichage de index.php
     // recuperation des types de sources
     $reqTypesSources = "select idTypeSource,  nom from typeSource";
     $resTypesSources = $this->connexionBdd->requete($reqTypesSources);
     $selected = '';
     while ($fetchTypesSources = mysql_fetch_array($resTypesSources)) {
         $selected = '';
         if (isset($criteres['archiTypeSource']) && $criteres['archiTypeSource'] == $fetchTypesSources['idTypeSource']) {
             $selected = 'selected';
         }
         $t->assign_block_vars('typeSources', array('id' => $fetchTypesSources['idTypeSource'], 'nom' => $fetchTypesSources['nom'], 'selected' => $selected));
     }
     // recuperation du nombre de personne de la lettre courante ,  pour les numeros de pages
     $reqSources = "\n            SELECT s.idSource as idSource,  s.nom as nom,  s.idTypeSource as idTypeSource, ts.nom as nomTypeSource,  s.description as description\n            FROM source s\n            LEFT JOIN typeSource ts ON ts.idTypeSource = s.idTypeSource\n            WHERE 1=1\n            " . $sqlLettreCourante . "\n            " . $sqlTypeSource . "\n            {$sqlMotCle}\n            ORDER BY nom\n        ";
     $resSources = $this->connexionBdd->requete($reqSources);
     $nbEnregistrements = mysql_num_rows($resSources);
     // recuperation du nombre de pages a afficher
     if ($nbEnregistrements > $nbEnregistrementsParPage) {
         if ($nbEnregistrements % $nbEnregistrementsParPage != 0) {
             // on prend la partie entiere de la division + 1
             $nbPages = intval($nbEnregistrements / $nbEnregistrementsParPage) + 1;
         } else {
             $nbPages = $nbEnregistrements / $nbEnregistrementsParPage;
         }
         for ($i = 1; $i <= $nbPages; $i++) {
             switch ($modeAffichage) {
                 case "nouveauDossier":
                     $t->assign_block_vars('pages', array('page' => $i, 'url' => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i, 'archiAffichage' => 'sourceListe'))), 'onclick' => ""));
                     //afficheRechercheSourcePopup
                     break;
                 case 'modifEvenement':
                 case 'modifImage':
                 case 'ajoutModifParcoursAdmin':
                 default:
                     $t->assign_block_vars('pages', array('page' => $i, 'url' => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i, 'archiAffichage' => 'sourceListe'))), 'onclick' => ""));
                     if ($i == 1 && $nbPages > 1) {
                         $t->assign_vars(array("pageSuivante" => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i + 1, 'archiAffichage' => 'sourceListe')))));
                     }
                     if ($i > 1 && $i <= $nbPages) {
                         $t->assign_vars(array("pagePrecedente" => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i - 1, 'archiAffichage' => 'sourceListe')))));
                     }
                     break;
             }
         }
     } else {
         $nbPages = 1;
         $t->assign_block_vars('nopage', array());
     }
     if ($nbEnregistrements > 0) {
         mysql_data_seek($resSources, $debutEnregistrement);
         $fetchSource = mysql_fetch_assoc($resSources);
         $i = 0;
         while ($i < $nbEnregistrementsParPage && isset($fetchSource['nom'])) {
             switch ($modeAffichage) {
                 case 'popup':
                     $t->assign_block_vars('sources', array('nom' => $fetchSource['nom'], 'typeSource' => $fetchSource['nomTypeSource'], 'url' => '#', 'onclick' => "parent.document.getElementById('idSource').value='" . $fetchSource['idSource'] . "';parent.document.getElementById('nomSource').value='" . addslashes($fetchSource['nom']) . " " . $fetchSource['nomTypeSource'] . "';parent.document.getElementById('calqueSource').style.display='none';"));
                     break;
                 case 'ajoutEvenement':
                 case 'nouveauDossier':
                 case 'modifEvenement':
                 case 'modifImage':
                 case 'ajoutModifParcoursAdmin':
                     $t->assign_block_vars('sources', array('nom' => stripslashes($fetchSource['nom']), 'typeSource' => "(" . stripslashes($fetchSource['nomTypeSource']) . ")", 'url' => '#', 'onclick' => "parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value).value='" . $fetchSource['idSource'] . "';parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value+'txt').value='" . str_replace(array("\"", "'"), array("&quot;", "\\'"), stripslashes($fetchSource['nom'])) . " (" . $fetchSource['nomTypeSource'] . ")';parent.document.getElementById('calqueSource').style.display='none';"));
                     break;
                 default:
                     $t->assign_block_vars('sources', array('nom' => $fetchSource['nom'], 'url' => $this->creerUrl('', 'source', array('idSource' => $fetchSource['idSource'])), 'typeSource' => $fetchSource['nomTypeSource']));
                     break;
             }
             $i++;
             $fetchSource = mysql_fetch_assoc($resSources);
         }
     } else {
         $t->assign_block_vars('noSource', array());
     }
     ob_start();
     $t->pparse('listeSource');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 public function afficher($idImage = 0)
 {
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('detailImage' => 'detailImage.tpl'));
     $adresse = new archiAdresse();
     $evenement = new archiEvenement();
     $authentification = new archiAuthentification();
     $string = new stringObject();
     $u = new archiUtilisateur();
     $d = new droitsObject();
     $html = "";
     if ((isset($this->variablesGet['formatPhoto']) && $this->variablesGet['formatPhoto'] == 'moyenRedim' || isset($this->variablesGet['formatPhoto']) && $this->variablesGet['formatPhoto'] == 'original') && !$authentification->estConnecte()) {
         // il faut etre connecté et donc inscrit pour pouvoir voir les images dans un format different
         $html .= $authentification->afficheFormulaireAuthentification('noCompact', array("msg" => "<b>Pour voir les photos au format moyen ou l'original vous devez être connecté. Si vous n'avez pas encore de compte utilisateur pour vous connecter,  cliquez <a href='" . $this->creerUrl('', 'inscription') . "'>ici</a></b>"));
     } else {
         if ($authentification->estConnecte()) {
             $t->assign_block_vars("isConnected", array());
             $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
             if ($d->isAuthorized('image_supprimer', $idProfilUtilisateur)) {
                 require_once __DIR__ . '/archiPersonne.class.php';
                 $e = new ArchiEvenement();
                 // on verifie que l'utilisateur est moderateur de la ville ou est admin
                 if ($u->isModerateurFromVille($authentification->getIdUtilisateur(), $idImage, 'idImage') || $idProfilUtilisateur == '4' || ArchiPersonne::isPerson($e->getIdEvenementGroupeAdresseFromIdEvenement($_GET['archiRetourIdValue']))) {
                     if (isset($this->variablesGet['archiRetourAffichage'])) {
                         $t->assign_block_vars('isAdminOrModerateurFromVille', array('urlSupprimerImage' => $this->creerUrl('deleteImage', '', array('archiIdImage' => $idImage, 'archiRetourAffichage' => $this->variablesGet['archiRetourAffichage'], 'archiRetourIdName' => $this->variablesGet['archiRetourIdName'], 'archiRetourIdValue' => $this->variablesGet['archiRetourIdValue']))));
                     } else {
                         $t->assign_block_vars('isAdminOrModerateurFromVille', array('urlSupprimerImage' => $this->creerUrl('deleteImage', '', array('archiIdImage' => $idImage))));
                     }
                 }
             }
             if ($authentification->estAdmin()) {
                 if (isset($this->variablesGet['archiRetourAffichage']) && isset($this->variablesGet['archiRetourIdName']) && isset($this->variablesGet['archiRetourIdValue'])) {
                     $t->assign_block_vars('isAdmin', array('urlAfficheHistorique' => $this->creerUrl('', 'afficheHistoriqueImage', array('archiIdImage' => $idImage, 'archiRetourAffichage' => $this->variablesGet['archiRetourAffichage'], 'archiRetourIdName' => $this->variablesGet['archiRetourIdName'], 'archiRetourIdValue' => $this->variablesGet['archiRetourIdValue']))));
                 } else {
                     $t->assign_block_vars('isAdmin', array('urlAfficheHistorique' => $this->creerUrl('', 'afficheHistoriqueImage', array('archiIdImage' => $idImage))));
                 }
             }
         }
         // gestion des liens vers le detail de la photo et autres formats
         if (isset($this->variablesGet["formatPhoto"])) {
             switch ($this->variablesGet["formatPhoto"]) {
                 case 'petit':
                     $classLienPetit = "formatAffichePhotoSelected";
                     $classLienMoyen = "formatAffichePhoto";
                     $classLienOriginal = "formatAffichePhoto";
                     $formatPhoto = "grand";
                     // petit correspond au format 'grand' en interne
                     $formatPhotoUrl = "petit";
                     break;
                 case 'moyenRedim':
                     $classLienPetit = "formatAffichePhoto";
                     $classLienMoyen = "formatAffichePhotoSelected";
                     $classLienOriginal = "formatAffichePhoto";
                     $formatPhoto = "moyenRedim";
                     $formatPhotoUrl = "moyenRedim";
                     break;
                 case 'original':
                     $classLienPetit = "formatAffichePhoto";
                     $classLienMoyen = "formatAffichePhoto";
                     $classLienOriginal = "formatAffichePhotoSelected";
                     $formatPhoto = "originaux";
                     $formatPhotoUrl = "original";
                     break;
             }
         } else {
             $classLienPetit = "formatAffichePhotoSelected";
             $classLienMoyen = "formatAffichePhoto";
             $classLienOriginal = "formatAffichePhoto";
             $formatPhoto = "grand";
             $formatPhotoUrl = "petit";
         }
         if (isset($this->variablesGet['archiRetourAffichage'])) {
             $t->assign_vars(array("choixFormatPhoto" => "<span style='color:#007799;'>Photo au format : <a href='" . $this->creerUrl('', 'imageDetail', array("archiIdImage" => $idImage, "archiRetourAffichage" => $this->variablesGet['archiRetourAffichage'], "archiRetourIdName" => $this->variablesGet['archiRetourIdName'], "archiRetourIdValue" => $this->variablesGet['archiRetourIdValue'], "formatPhoto" => 'petit')) . "' class='{$classLienPetit}'>Petit</a> | <a href='" . $this->creerUrl('', 'imageDetail', array("archiIdImage" => $idImage, "archiRetourAffichage" => $this->variablesGet['archiRetourAffichage'], "archiRetourIdName" => $this->variablesGet['archiRetourIdName'], "archiRetourIdValue" => $this->variablesGet['archiRetourIdValue'], "formatPhoto" => 'moyenRedim')) . "' class='{$classLienMoyen}'>Moyen</a> | <a href='" . $this->creerUrl('', 'imageDetail', array("archiIdImage" => $idImage, "archiRetourAffichage" => $this->variablesGet['archiRetourAffichage'], "archiRetourIdName" => $this->variablesGet['archiRetourIdName'], "archiRetourIdValue" => $this->variablesGet['archiRetourIdValue'], "formatPhoto" => 'original')) . "' class='{$classLienOriginal}'>Original</a></span><br />"));
         } else {
             $idAdresseRetour = $this->getIdAdresseFromIdImage($idImage);
             $t->assign_vars(array("choixFormatPhoto" => "<span style='color:#007799;'>Photo au format : <a href='" . $this->creerUrl('', 'imageDetail', array("archiIdImage" => $idImage, "archiRetourAffichage" => 'adresseDetail', "archiRetourIdName" => 'archiIdAdresse', "archiRetourIdValue" => $idAdresseRetour, "formatPhoto" => 'petit')) . "' class='{$classLienPetit}'>Petit</a> | <a href='" . $this->creerUrl('', 'imageDetail', array("archiIdImage" => $idImage, "archiRetourAffichage" => 'adresseDetail', "archiRetourIdName" => 'archiIdAdresse', "archiRetourIdValue" => $idAdresseRetour, "formatPhoto" => 'moyenRedim')) . "' class='{$classLienMoyen}'>Moyen</a> | <a href='" . $this->creerUrl('', 'imageDetail', array("archiIdImage" => $idImage, "archiRetourAffichage" => 'adresseDetail', "archiRetourIdName" => 'archiIdAdresse', "archiRetourIdValue" => $idAdresseRetour, "formatPhoto" => 'original')) . "' class='{$classLienOriginal}'>Original</a></span><br />"));
         }
         // ***********************************************************************************************************************
         // on prend l'adresse de reference de la page si elle existe sinon celle de l'evenement courant et sinon on prend l'adresse de reference de l'image
         if (isset($this->variablesGet['archiIdAdresse'])) {
             $idAdresseReference = $this->variablesGet['archiIdAdresse'];
         } elseif (isset($this->variablesGet['archiRetourIdName']) && $this->variablesGet['archiRetourIdName'] == 'idEvenement' && isset($this->variablesGet['archiRetourIdValue'])) {
             $idAdresseReference = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiRetourIdValue']);
         } else {
             $idAdresseReference = $this->getIdAdresseFromIdImage($idImage);
         }
         // **********************************************************************************************************************
         $arrayInfosImage = $this->getInfosCompletesFromIdImage($idImage, array('idAdresseReference' => $idAdresseReference, 'displayFirstTitreAdresse' => true, 'classCSSTitreAdresse' => "textePrisDepuisVueSur", 'withZonesOnMouseOver' => true));
         if (count($arrayInfosImage['vueSurLiens']) > 0) {
             if (count($arrayInfosImage['vueSurLiens']) > 1) {
                 $t->assign_vars(array("infosVueSur" => "<span class='textePrisDepuisVueSurEntete'>Vue sur :</span>&nbsp;<br>" . implode("<br>", $arrayInfosImage['vueSurLiens']) . "<br>"));
             } else {
                 $t->assign_vars(array("infosVueSur" => "<span class='textePrisDepuisVueSurEntete'>Vue sur </span>&nbsp;" . implode(" / ", $arrayInfosImage['vueSurLiens']) . "<br>"));
             }
         }
         if (count($arrayInfosImage['prisDepuisLiens']) > 0) {
             $t->assign_vars(array("infosPrisDepuis" => "<br><span class='textePrisDepuisVueSurEntete'>Pris depuis</span>&nbsp; " . implode(" / ", $arrayInfosImage['prisDepuisLiens']) . "<br>"));
         }
         $e = new archiEvenement();
         if (archiPersonne::isPerson($e->getIdEvenementGroupeAdresseFromIdEvenement($_GET["archiRetourIdValue"]))) {
             $resImage = $this->connexionBdd->requete("SELECT * FROM `historiqueImage` WHERE `idImage` =" . $idImage . ' ORDER BY idHistoriqueImage DESC');
         } else {
             $resImage = $this->connexionBdd->requete("SELECT * FROM `historiqueImage` WHERE `idImage` = {$idImage}\n                    ORDER BY idHistoriqueImage DESC");
             /*$resImage = $this->connexionBdd->requete("
                             select hI.idSource,  hI.nom, hI.dateUpload, hI.dateCliche, hI.description, hI.idUtilisateur, hI.idHistoriqueImage, ha1.idAdresse as idAdresse, ha1.numero as numero,
                             hI.isDateClicheEnviron as isDateClicheEnviron,
                             r.nom as nomRue,
                             sq.nom as nomSousQuartier,
                             q.nom as nomQuartier,
                             v.nom as nomVille,
                             p.nom as nomPays,
                             ha1.numero as numeroAdresse,
                             hI.numeroArchive as numeroArchive,
                             ha1.idRue,
                             r.prefixe as prefixeRue,
                             IF (ha1.idSousQuartier != 0,  ha1.idSousQuartier,  r.idSousQuartier) AS idSousQuartier,
                             IF (ha1.idQuartier != 0,  ha1.idQuartier,  sq.idQuartier) AS idQuartier,
                             IF (ha1.idVille != 0,  ha1.idVille,  q.idVille) AS idVille,
                             IF (ha1.idPays != 0,  ha1.idPays,  v.idPays) AS idPays
             
                             from historiqueImage hI2, historiqueImage hI
             
                             RIGHT JOIN _evenementImage ei ON ei.idImage = hI.idImage
                             RIGHT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = ei.idEvenement
                             RIGHT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement
                             RIGHT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse
                             RIGHT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse
             
             
                             LEFT JOIN rue r         ON r.idRue = ha1.idRue
                             LEFT JOIN sousQuartier sq    ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )
                             LEFT JOIN quartier q        ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )
                             LEFT JOIN ville v        ON v.idVille = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille!='0' , ha1.idVille , q.idVille )
                             LEFT JOIN pays p        ON p.idPays = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille='0' and ha1.idPays!='0' , ha1.idPays , v.idPays )
             
             
             
             
                             where hI.idImage='$idImage'
                             and hI2.idImage=hI.idImage
                             group by hI.idImage, hI.idHistoriqueImage, ha1.idAdresse,  ha1.idHistoriqueAdresse
                             having hI.idHistoriqueImage = max(hI2.idHistoriqueImage) and ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
                             LIMIT 1
                             ");*/
         }
         $fetch = mysql_fetch_array($resImage);
         /*
         stripslashes($fetch['nom'])
          $this->date->toFrench($fetch['dateCliche'])
         */
         $nomEtDateCliche = "";
         if (stripslashes($fetch['nom']) != '' && $this->date->toFrench($fetch['dateCliche']) != '') {
             $nomEtDateCliche = stripslashes($fetch['nom']) . ' - ' . $this->date->toFrench($fetch['dateCliche']);
         } else {
             $nomEtDateCLiche = stripslashes($fetch['nom']) . $this->date->toFrench($fetch['dateCliche']);
         }
         // on affiche les deux car on sait qu'il y en a un qui est vide,  donc pas de probleme
         $datePriseDeVue = "";
         if ($this->date->toFrench($fetch['dateCliche']) != '') {
             $environ = "";
             if ($fetch['isDateClicheEnviron'] == '1') {
                 $environ = "environ ";
             }
             $datePriseDeVue = "Date : {$environ}" . $this->date->toFrench($fetch['dateCliche']);
         }
         $description = $fetch['description'];
         $bbCode = new bbCodeObject();
         //$bbCode = new bbCodeObject();
         if (!empty($description)) {
             $description = $bbCode->convertToDisplay(array('text' => $description));
         }
         if (isset($fetch['idSource']) && $fetch['idSource'] != '' && $fetch['idSource'] != '0') {
             $reqSource = "\n                    SELECT s.idSource as idSource,  s.nom as nomSource,  ts.nom as nomTypeSource\n                    FROM source s\n                    LEFT JOIN typeSource ts ON ts.idTypeSource = s.idTypeSource\n                    WHERE s.idSource = '" . $fetch['idSource'] . "'";
             $resSource = $this->connexionBdd->requete($reqSource);
             $fetchSource = mysql_fetch_assoc($resSource);
             $description .= "<br>Source : <a href='" . $this->creerUrl('', 'listeAdressesFromSource', array('source' => $fetch['idSource'], 'submit' => 'Rechercher')) . "'>" . stripslashes($fetchSource['nomSource']) . " (" . stripslashes($fetchSource['nomTypeSource']) . ")</a>";
         }
         if (isset($fetch['numeroArchive']) && $fetch['numeroArchive'] != '') {
             // modif fabien du 15/04/2011 suite mail directrice Archives de Strasbourg Mme Perry Laurence
             $description .= "<br>Cote Archives de Strasbourg : " . $fetch['numeroArchive'];
         }
         $intituleAdresse = $adresse->getIntituleAdresse($fetch);
         $reqImages = "\n            SELECT idImage FROM _evenementImage WHERE idEvenement = " . mysql_real_escape_string($_GET['archiRetourIdValue']) . " ORDER BY position\n            ";
         $resImages = $this->connexionBdd->requete($reqImages);
         $found = false;
         while ($row = mysql_fetch_assoc($resImages)) {
             if (intval($row['idImage']) == $_GET['archiIdImage']) {
                 if (isset($prev)) {
                     $prevImage = $prev;
                     $t->assign_block_vars('previous', array());
                 }
                 $next = true;
             } else {
                 if (isset($next)) {
                     $nextImage = $row;
                     $t->assign_block_vars('next', array());
                     break;
                 }
             }
             $prev = $row;
         }
         $reqImages = "\n            SELECT idImage FROM _evenementImage  WHERE idEvenement = " . mysql_real_escape_string($_GET['archiRetourIdValue']) . " ORDER BY position\n            ";
         $resImages = $this->connexionBdd->requete($reqImages);
         $imgList = array();
         while ($row = mysql_fetch_row($resImages)) {
             $reqImage = '
             SELECT idHistoriqueImage, dateUpload, description, idImage
             FROM historiqueImage
             WHERE idImage = ' . mysql_real_escape_string($row[0]) . '
             ORDER BY idHistoriqueImage DESC
             LIMIT 1';
             $resImage = $this->connexionBdd->requete($reqImage);
             $imgList[] = mysql_fetch_row($resImage);
         }
         $intituleAdresseNoQuartierNoVille = $adresse->getIntituleAdresse($fetch, array('noQuartier' => true, 'noSousQuartier' => true, 'noVille' => true));
         $format = isset($_GET['formatPhoto']) ? $_GET['formatPhoto'] : 'petit';
         if ($u->canModifyTags(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
             $tags = 'Tags&nbsp;: ';
             if (empty($fetch["tags"])) {
                 $tags .= '<i>(aucun)</i>';
             } else {
                 $tags .= stripslashes($fetch["tags"]);
             }
         } else {
             $tags = '';
         }
         $t->assign_vars(array('datePriseDeVue' => $datePriseDeVue, 'cheminDetailImage' => 'photos-' . $string->convertStringToUrlRewrite($intituleAdresse) . '-' . $fetch['dateUpload'] . '-' . $fetch['idHistoriqueImage'] . '-' . $formatPhoto . '.jpg', 'nomEtDateCliche' => $nomEtDateCliche, 'tags' => $tags, 'description' => $description, 'fullscreenDesc' => strip_tags($description), 'nom' => $intituleAdresseNoQuartierNoVille, 'IDDivImage' => "divImage_" . $idImage, 'IDDivZones' => "divZones_" . $idImage, 'nextURL' => $this->creerUrl('', 'imageDetail', array('archiIdImage' => $nextImage['idImage'], 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $_GET['archiRetourIdValue'], "formatPhoto" => $format)), 'prevURL' => $this->creerUrl('', 'imageDetail', array('archiIdImage' => $prevImage['idImage'], 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $_GET['archiRetourIdValue'], "formatPhoto" => $format)), 'list' => rawurlencode(json_encode($imgList)), 'imgID' => rawurlencode(json_encode(array($fetch['idHistoriqueImage'], $fetch['idImage']))), 'imgDate' => $fetch['dateUpload'], 'orgId' => $fetch['idImage'], 'format' => $format));
         //$this->urlImagesGrand.$fetch['dateUpload'].'/'.$fetch['idHistoriqueImage'].".jpg"
         // si affichage du detail sans modification ,  on affiche les zones cliquables
         // pour la selection de zone modifiable
         // on ne l'affiche que si l'image figure dans la table _adresseImage et comporte des adresses sur lesquelles le champ vueSur est a 1
         if (count($arrayInfosImage['vueSurLiens']) > 0 && $authentification->estConnecte() && $u->isAuthorized('selection_zones_photo', $authentification->getIdUtilisateur())) {
             if ($u->getIdProfil($authentification->getIdUtilisateur()) == 4 || $u->isModerateurFromVille($authentification->getIdUtilisateur(), $idImage, 'idImage')) {
                 $styleMenuZoneSelection = "";
                 if (isset($this->variablesGet['archiSelectionZone']) && $this->variablesGet['archiSelectionZone'] == '1') {
                     // menu en rouge si on est sur la selection de zone
                     $styleMenuZoneSelection = "color:#FF0000;";
                 }
                 $t->assign_block_vars('selectionZonesCliquables', array('styleMenuZoneSelection' => $styleMenuZoneSelection, 'urlSelectionZone' => $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImage, 'archiRetourAffichage' => $this->variablesGet['archiRetourAffichage'], 'archiRetourIdName' => $this->variablesGet['archiRetourIdName'], 'archiRetourIdValue' => $this->variablesGet['archiRetourIdValue'], 'archiSelectionZone' => 1, 'formatPhoto' => $formatPhotoUrl))));
             }
         }
         $authentifie = new archiAuthentification();
         // gestion du lien de retour à la page précédente
         if (isset($this->variablesGet['archiRetourAffichage']) && isset($this->variablesGet['archiRetourIdName']) && isset($this->variablesGet['archiRetourIdValue'])) {
             //$t->assign_block_vars('isRetour',  array('urlRetour'=>$this->creerUrl('',  $this->variablesGet['archiRetourAffichage'],  array($this->variablesGet['archiRetourIdName']=>$this->variablesGet['archiRetourIdValue']))));
             // affichage de l'encars des adresses
             $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesGet['archiRetourIdValue']);
             if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                 $person = new archiPersonne();
                 $infos = $person->getInfosPersonne($idPerson);
                 $html .= "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>";
             } else {
                 $html .= $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
             }
             $t->assign_vars(array('urlModifierImage' => $this->creerUrl('', 'modifierImage', array('archiIdImageModification' => $idImage, 'archiIdEvenementGroupeAdresseAffichageAdresse' => $idEvenementGroupeAdresse))));
         } elseif (isset($idAdresseRetour) && $idAdresseRetour != '' && $idAdresseRetour != '0') {
             $resIdGroupeAdresse = $adresse->getIdEvenementGroupeAdresseFromAdresse($idAdresseRetour);
             $fetchIdGroupeAdresse = mysql_fetch_assoc($resIdGroupeAdresse);
             $html .= $adresse->afficherRecapitulatifAdresses($fetchIdGroupeAdresse['idEvenement']);
             $t->assign_vars(array('urlModifierImage' => $this->creerUrl('', 'modifierImage', array('archiIdImageModification' => $idImage, 'archiIdEvenementGroupeAdresseAffichageAdresse' => $fetchIdGroupeAdresse['idEvenement']))));
         } else {
             $t->assign_vars(array('urlModifierImage' => $this->creerUrl('', 'modifierImage', array('archiIdImageModification' => $idImage))));
         }
         // ***********************************************************************************************************************
         if (isset($this->variablesGet['archiRetourIdName']) && $this->variablesGet['archiRetourIdName'] == 'idEvenement' && isset($this->variablesGet['archiRetourIdValue'])) {
             $reqVerifZone = "\n                    SELECT 0\n                    FROM _adresseImage ai\n                    WHERE\n                        ai.idImage='" . $idImage . "'\n                    AND ai.idEvenementGroupeAdresse = '" . $this->variablesGet['archiRetourIdValue'] . "'\n                    AND vueSur='1'\n                    AND ai.coordonneesZoneImage<>''\n                    AND ai.largeurBaseZoneImage<>''\n                    AND ai.longueurBaseZoneImage<>''\n\n                ";
             $resVerifZone = $this->connexionBdd->requete($reqVerifZone);
             if (mysql_num_rows($resVerifZone) > 0) {
                 $imageZoom = $this->getUrlRacine() . "imageZoomZone.php?idImage=" . $idImage . "&idEvenementGroupeAdresse=" . $this->variablesGet['archiRetourIdValue'] . "&idAdresseCourante=" . $idAdresseReference . "&date=" . $fetch['dateUpload'] . "&idHistorique=" . $fetch['idHistoriqueImage'];
                 $t->assign_vars(array('imageZoom' => "<img src='{$imageZoom}' alt=''>"));
                 $t->assign_vars(array('txtZoom' => "<br>" . _("L'image ci-dessus est un zoom de l'image ci-dessous :")));
             }
         }
         $licence = $this->getLicence($idImage);
         $textLicence = "<img src='images/licences/" . $licence["logo"] . "' alt=''/> ";
         if (!empty($licence["link"])) {
             $textLicence .= "<a rel='license' href='" . $licence["link"] . "'>";
         }
         $textLicence .= $licence["name"];
         if (!empty($licence["link"])) {
             $textLicence .= "</a>";
         }
         $auteur = $this->getAuteur($idImage);
         if (is_array($auteur)) {
             if (!empty($auteur["nom"]) && $auteur["nom"] != " ") {
                 $textLicence .= " (<span itemprop='author'><a rel='author' href='profil-" . $auteur["id"] . ".html'>" . $auteur["nom"] . "</a></span>)";
             }
         } else {
             $textLicence .= " (<span itemprop='author'>" . $auteur . "</span>)";
         }
         $t->assign_vars(array("licence" => $textLicence));
         // ***********************************************************************************************************************
         ob_start();
         $t->pparse('detailImage');
         $html .= ob_get_contents();
         ob_end_clean();
         $image = new imageObject();
         $html .= $image->getJsSetOpacityFunction();
         $html .= $image->getJsCodeDrawFunctions();
         if (isset($this->variablesGet['archiSelectionZone']) && $this->variablesGet['archiSelectionZone'] == '1') {
             // recuperation des longueur et largeur de l'image affiché pour avoir le rapport de base entre ces deux dimensions,  comme cela on pourra reporter les zones sur les images d'autres longueurs et largeurs grace au taux calculé
             $calque = new calqueObject(array('idPopup' => 'popupSelectAdresseVueSurZone'));
             // calque de selection d'adresse une fois que la zone est selectionnee
             $html .= $calque->getDiv(array('height' => 300, 'lienSrcIFrame' => $this->creerUrl('', 'affichePopupSelectionZoneVueSur', array("noHeaderNoFooter" => '1', "archiIdImage" => $idImage)), "titre" => "Selectionnez l'adresse de la zone", "codeJsFermerButton" => "location.href=location.href;"));
             $html .= "<script  >" . $calque->getJsToDragADiv() . "</script>";
             // fonctions de trace,  obligatoire si on veut afficher les zones
             $html .= $image->getJsCodeSelectionZone(array('nomIDImage' => 'divImage', 'tracePolygoneResultat' => true, 'onZoneSelectedAction' => "\n                                        document.getElementById('" . $calque->getJSDivId() . "').style.display='block';\n                                        imageElement = document.getElementById('imageAfficheeID');\n                                        document.getElementById('largeurBaseImageZoneSelection').value=imageElement.clientWidth;\n                                        document.getElementById('longueurBaseImageZoneSelection').value=imageElement.clientHeight;\n                                ", 'addHTMLElementsToFormValidatedAfterZoneSelection' => "<input type='hidden' id='idAdresseRetourZone' name='idAdresseRetourZone' value=''>\n                                <input type='hidden' name='largeurBaseImageZoneSelection' id='largeurBaseImageZoneSelection' value=''>\n                                <input type='hidden' name='longueurBaseImageZoneSelection' id='longueurBaseImageZoneSelection' value=''>\n                                ", 'actionFormValidateZone' => $this->creerUrl('enregistreZoneImage', 'imageDetail', array('archiIdImage' => $idImage, 'archiRetourAffichage' => $this->variablesGet['archiRetourAffichage'], 'archiRetourIdName' => $this->variablesGet['archiRetourIdName'], 'archiRetourIdValue' => $this->variablesGet['archiRetourIdValue']))));
         }
         // affichage des zones existantes,  map sur l'image et divs des formes
         if ($formatPhoto == 'moyenRedim') {
             // vu que le format de la photo moyenRedim est generé a la volée,  il faut calculer les hauteurs et largeurs en fonction d'une autre photo. Ici on prendra le format grand c'est suffisamment precis pas besoin de prendre le format original
             // les photos redimensionnées ont une largeur X de 700px ,  voir le htaccess
             $sizes = getimagesize($this->getCheminPhysiqueImage("grand") . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg");
             // on converti les dimensions
             $sizeX = 0;
             $sizeY = 0;
             if ($sizes[0] >= $sizes[1]) {
                 $sizeX = 700;
                 $sizeY = round(700 * $sizes[0] / $sizes[1]);
             } else {
                 $sizeY = 700;
                 $sizeX = round(700 * $sizes[1] / $sizes[0]);
             }
             $arrayZones = $this->getDivsAndMapsZonesImagesVueSur(array("idImage" => $idImage, 'largeurImageCourante' => $sizeX, 'longueurImageCourante' => $sizeY));
         } else {
             $sizes = getimagesize($this->getCheminPhysique() . "images/" . $formatPhoto . "/" . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg");
             $arrayZones = $this->getDivsAndMapsZonesImagesVueSur(array("idImage" => $idImage, 'largeurImageCourante' => $sizes[0], 'longueurImageCourante' => $sizes[1]));
         }
         $html .= $arrayZones['htmlDivs'];
         $html .= $arrayZones['htmlMaps'];
         $html .= $arrayZones['htmlJs'];
     }
     return $html;
 }
 /**
  * Affichage du menu d'administration
  * 
  * @return string HTML
  * */
 public function afficheMenu()
 {
     $html = "";
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('administration' => 'administration.tpl'));
     $menu = array();
     $u = new archiUtilisateur();
     $a = new archiAuthentification();
     $idUtilisateur = $a->getIdUtilisateur();
     if ($u->isAuthorized('admin_droits', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Droits") => $this->creerUrl('', 'adminDroits')));
     }
     if ($u->isAuthorized('admin_actualites', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Actualités") => $this->creerUrl('', 'adminActualites')));
     }
     $menu[_("Pages")] = $this->creerUrl('', 'adminPages', array());
     if ($u->isAuthorized('admin_actualites', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Compteur de dons") => $this->creerUrl('', 'adminCompteur')));
     }
     if ($u->isAuthorized('admin_sources', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Sources") => $this->creerUrl('', 'administration', array('tableName' => 'source'))));
     }
     if ($u->isAuthorized('admin_types_sources', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Types de sources") => $this->creerUrl('', 'administration', array('tableName' => 'typeSource'))));
     }
     if ($u->isAuthorized('admin_types_structures', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Types de structures") => $this->creerUrl('', 'administration', array('tableName' => 'typeStructure'))));
     }
     if ($u->isAuthorized('admin_courants_architecturaux', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Courant architecturaux") => $this->creerUrl('', 'administration', array('tableName' => 'courantArchitectural'))));
     }
     $menu[_("Gestion des personnes")] = array();
     if ($u->isAuthorized('admin_metiers', $idUtilisateur)) {
         $menu[_("Gestion des personnes")] = array_merge($menu[_("Gestion des personnes")], array(_("Métiers") => $this->creerUrl('', 'administration', array('tableName' => 'metier'))));
     }
     if ($u->isAuthorized('admin_personnes', $idUtilisateur)) {
         $menu[_("Gestion des personnes")] = array_merge($menu[_("Gestion des personnes")], array(_("Modifier une personne") => $this->creerUrl('', 'adminPersonne', array())));
     }
     $menu[_("Gestion des adresses")] = array();
     if ($u->isAuthorized('admin_adresses', $idUtilisateur)) {
         $menu[_("Gestion des adresses")] = array_merge($menu[_("Gestion des adresses")], array(_("Ajout d'éléments d'adresse (rue, sous-quartier, quartier, ville, pays)") => $this->creerUrl('', 'ajoutNouvelleAdresse', array())));
     }
     if ($u->isAuthorized('admin_rues', $idUtilisateur)) {
         $menu[_("Gestion des adresses")] = array_merge($menu[_("Gestion des adresses")], array(_("Gérer les rues") => $this->creerUrl('', 'adminElementAdresse', array('tableName' => 'rue'))));
     }
     if ($u->isAuthorized('admin_sousQuartiers', $idUtilisateur)) {
         $menu[_("Gestion des adresses")] = array_merge($menu[_("Gestion des adresses")], array(_("Gérer les sous-quartiers") => $this->creerUrl('', 'adminElementAdresse', array('tableName' => 'sousQuartier'))));
     }
     if ($u->isAuthorized('admin_quartiers', $idUtilisateur)) {
         $menu[_("Gestion des adresses")] = array_merge($menu[_("Gestion des adresses")], array(_("Gérer les quartiers") => $this->creerUrl('', 'adminElementAdresse', array('tableName' => 'quartier'))));
     }
     if ($u->isAuthorized('admin_villes', $idUtilisateur)) {
         $menu[_("Gestion des adresses")] = array_merge($menu[_("Gestion des adresses")], array(_("Gérer les villes") => $this->creerUrl('', 'adminElementAdresse', array('tableName' => 'ville'))));
     }
     if ($u->isAuthorized('admin_pays', $idUtilisateur)) {
         $menu[_("Gestion des adresses")] = array_merge($menu[_("Gestion des adresses")], array(_("Gérer les pays") => $this->creerUrl('', 'adminElementAdresse', array('tableName' => 'pays'))));
     }
     if ($u->isAuthorized('admin_affiche_resultats_sondages', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Voir les statistiques des sondages") => $this->creerUrl('', 'adminSondages', array())));
     }
     if ($u->isAuthorized('admin_parcours', $idUtilisateur)) {
         $menu = array_merge($menu, array(_("Gérer les parcours") => $this->creerUrl('', 'adminListeParcours', array())));
     }
     if ($u->isAuthorized('admin_traduction', $idUtilisateur)) {
         $menu[_("Traduction")] = array(_("Traduction") => $this->tradLink, _("Détecter les nouvelles chaines à traduire") => "script/updateTranslation.php", _("Appliquer les nouvelles traductions") => "script/applyTranslation.php");
         //$menu[_("Détecter les nouvelles chaines à traduire")] = "script/updateTranslation.php";
         //$menu[_("Appliquer les nouvelles traductions")] = "script/applyTranslation.php";
     }
     foreach ($menu as $nom => $url) {
         if (is_array($url)) {
             $menuHTML = $nom . _(" :");
             $menuHTML .= "<ul>";
             foreach ($url as $subName => $subURL) {
                 $menuHTML .= "<li><a href='" . $subURL . "'>" . $subName . "</a></li>";
             }
             $menuHTML .= "</ul>";
         } else {
             $menuHTML = "<a href='" . $url . "'>" . $nom . "</a>";
             //<a href="{listeMenu.url}">{listeMenu.nom}</a>
         }
         $t->assign_block_vars('listeMenu', array("menu" => $menuHTML));
     }
     ob_start();
     $t->pparse('administration');
     $html = ob_get_contents();
     ob_end_clean();
     return $html;
 }