Ejemplo n.º 1
0
     echo $i->deleteInterest();
     break;
 case 'lienOpendata':
     $s = new archiAccueil();
     echo $s->afficherOpendata();
     break;
 case 'profil':
     $u = new archiUtilisateur();
     echo $u->displayProfile($_GET['idUtilisateur']);
     break;
 case 'profilPublique':
     $u = new archiUtilisateur();
     $u->getPublicProfil($_GET['idUtilisateur']);
     break;
 case 'profilPrive':
     $u = new archiUtilisateur();
     $u->getPrivateProfil();
     break;
 case 'diff':
     $util = new archiUtils();
     $plop = $util->yoloDiff("thi is a test", "This test is the test new test");
     break;
 case 'historiqueEvenement':
     $e = new archiEvenement();
     $e->afficherHistoriqueEvenement($_GET['idEvenement']);
     break;
 case 'listeQuartiers':
     $criteres = array('typeStructure' => 22);
     $s = new archiRecherche();
     echo $s->advancedSearch($criteres);
     break;
 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.º 3
0
 * @license  GNU GPL v3 https://www.gnu.org/licenses/gpl.html
 * @link     http://archi-wiki.org/
 * 
 * */
$t = new Template('modules/header/templates/');
$t->set_filenames(array('header' => 'header.tpl'));
$authentification = new archiAuthentification();
$recherche = new archiRecherche();
$config = new ArchiConfig();
$adresse = new archiAdresse();
$evenement = new archiEvenement();
$image = new archiImage();
$ajax = new ajaxObject();
$calque = new calqueObject();
$string = new stringObject();
$utilisateur = new archiUtilisateur();
$session = new objetSession();
$i = new imageObject();
if (!isset($jsHeader)) {
    // variables récupérée de chaque fonction des classes du site permettant de mettre du javascript recupéré , dans le header , plutot qu'en plein milieu de la page ou dans le bas de page s'il faut qu'il soit executé a la fin
    $jsHeader = "";
}
if (!isset($jsFooter)) {
    $jsFooter = "";
}
$titreSite = $config->titreSite;
$titre = _("Archi-Wiki. Tous architectes ! Partageons la ville, ses bâtiments, ses lieux.");
$description = $config->descSite;
$motsCle = "";
if ($session->isInSession('archiIdVilleGeneral') && $session->getFromSession('archiIdVilleGeneral') != '' && $session->getFromSession('archiIdVilleGeneral') != '1' && !empty($_SESSION["archiIdVilleGeneral"])) {
    //$titreSite = "photos-immeubles.org";
 }
 $messageHTML = "<!Doctype HTML>\n    <html>\n    <head>\n    <title>" . stripslashes($sujet) . "</title>\n    <meta charset='UTF-8' />\n    </head>\n    <body>";
 if (isset($_GET["modePrevisualisationAdmin"]) && !isset($_GET["testMail"])) {
     $messageHTML .= $messageIntro . $messageFin;
 } else {
     $messageHTML .= $messageIntro . $messageStrasbourg . $messageStrasModif . $messageAutres . $messageAutresModif . $messagePeople . $messageFin;
 }
 $messageHTML .= "</body></html>";
 if (isset($_SERVER["SERVER_NAME"]) && !isset($_GET["modePrevisualisationAdmin"]) || isset($_GET["preview"])) {
     print_r($messageHTML);
     if (isset($_GET["testMail"])) {
         include_once __DIR__ . "/../modules/archi/includes/archiAuthentification.class.php";
         include_once __DIR__ . "/../modules/archi/includes/archiUtilisateur.class.php";
         $auth = new archiAuthentification();
         $idUtilisateur = $auth->getIdUtilisateur();
         $u = new archiUtilisateur();
         $mailUtilisateur = $u->getMailUtilisateur($idUtilisateur);
         $mail->sendMail($mail->getSiteMail(), $mailUtilisateur, $sujet, $messageHTML, false);
     }
 } else {
     $reqUtilisateurs = "SELECT idUtilisateur,mail FROM utilisateur WHERE alerteMail='1' and compteActif='1'";
     $resUtilisateurs = $config->connexionBdd->requete($reqUtilisateurs);
     //         $mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //         $mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     if (isset($_GET['debug']) && $_GET['debug'] == '1') {
         //          $mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
         //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
 /**
  * Affichage de la page d'accueil
  *
  * @param array $params Paramètres
  *
  * @return string HTML
  * */
 function afficheAccueil($params = array())
 {
     $t = new Template($this->getCheminPhysique() . $this->cheminTemplates);
     $t->set_filenames(array('accueil' => 'accueil.tpl'));
     $html = '';
     $infos = "";
     $calque = new calqueObject();
     $date = new dateObject();
     $auth = new archiAuthentification();
     if ($auth->estConnecte()) {
         $t->assign_block_vars('estConnecte', array());
     }
     $t->assign_vars(array('urlAjoutAdresse' => $this->creerUrl('', 'ajoutNouveauDossier')));
     $adresses = new archiAdresse();
     if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') {
         $modeAffichage = $this->variablesGet['modeAffichage'];
     } else {
         $modeAffichage = '';
     }
     switch ($modeAffichage) {
         // **********************************************************************************************************************************
         // PROFIL
         // **********************************************************************************************************************************
         case 'profil':
             $t->assign_block_vars('afficheProfil', array());
             $t->assign_vars(array('onglet1' => "<a href='" . $this->creerUrl('', 'afficheAccueil', array('modeAffichage' => '')) . "'><font color='#FFFFFF'>" . _("Nouveautés") . "</font></a>", 'onglet2' => _("Mon Profil"), 'onglet3' => "<a href='" . $this->creerUrl('', 'afficheAccueil', array('modeAffichage' => 'monArchi')) . "'><font color='#FFFFFF'>" . _("Mon Archi") . "</font></a>"));
             $u = new archiUtilisateur();
             $s = new objetSession();
             if ($s->isInSession('utilisateurConnecte' . $this->idSite)) {
                 $profil = $u->afficher(array(), $s->getFromSession('utilisateurConnecte' . $this->idSite), 'utilisateurProfil');
             } else {
                 //header('Location: ?archiAffichage=authentification&archiActionPrecedente=afficheProfil');
                 $authentification = new ArchiAuthentification();
                 echo $authentification->afficheFormulaireAuthentification();
             }
             $t->assign_vars(array('htmlProfil' => $profil));
             break;
             //Mon Archi
         //Mon Archi
         case 'monArchi':
             $t->assign_block_vars('afficheMonArchi', array());
             $t->assign_vars(array('onglet1' => "<a href='" . $this->creerUrl('', 'afficheAccueil', array('modeAffichage' => '')) . "'><font color='#FFFFFF'>" . _("Nouveautés") . "</font></a>", 'onglet2' => "<a href='" . $this->creerUrl('', 'afficheAccueil', array('modeAffichage' => 'profil')) . "'><font color='#FFFFFF'>" . _("Mon Profil") . "</font></a>", 'onglet3' => _("Mon Archi")));
             $utilisateur = new archiUtilisateur();
             $adresse = new archiAdresse();
             $arrayInfosConnexions = $utilisateur->getInfosConnexions($auth->getIdUtilisateur());
             $arrayInfosModifs = $utilisateur->getInfosModifsPerso($auth->getIdUtilisateur());
             $monArchi = "<table border=''><tr><td width=500><h2>" . _("Mon Archi") . "</h2></td></tr></table>";
             if (mysql_fetch_assoc($this->connexionBdd->requete("SELECT idImage FROM historiqueImage WHERE idUtilisateur = '" . $auth->getIdUtilisateur() . "' AND licence = '3'"))) {
                 $monArchi .= "<strong>" . _("Certaines de vos images ne sont pas librement réutilisables !") . "</strong>";
                 $monArchi .= "<br/>";
                 $monArchi .= _("Cliquez") . " <a href='" . $this->creerUrl("", "batchLicence") . "'>" . _("ici") . "</a> " . _("pour les publier sous licence libre.");
                 $monArchi .= "<br/><br/>";
             }
             $monArchi .= "<div style='font-size:12px;'>\n\t\t\t\t\t\t<b>" . _("En tant qu'utilisateur vous pouvez :") . "</b><ul>\n\t\t\t\t\t\t<li> <a href='" . $this->creerUrl('', 'ajoutNouveauDossier') . "' onmouseover=\"" . $calque->getJsContextHelpOnMouseOver(_("En ajoutant votre adresse vous contribuez au développement du site. Mais d\\'abord qu\\'entend t-on par \"votre adresse\" ? Et bien cela peut être l\\'immeuble ou la maison que vous occupez. Un immeuble que vous aimez mais que vous ne trouvez pas sur le site. Avec le développement des appareils photo numériques,  il devient très simple de prendre une photo,  et de la copier sur l\\'ordinateur. Ajouter une adresse dans www.archi-strasbourg.org ne prend pas plus de 20 secondes. Copier la photo 10 secondes de plus...")) . "\" onmouseout='" . $calque->getJSContextHelpOnMouseOut() . "'>" . _("ajouter des adresses") . "</a></li>\n\t\t\t\t\t\t<li> <span onmouseover=\"" . $calque->getJsContextHelpOnMouseOver(_("Vous pouvez ajouter des photos afin d'illustrer une adresse.")) . "\" onmouseout=\"" . $calque->getJSContextHelpOnMouseOut() . "\"> " . _("ajouter des photos à une adresse") . "</span></li>\n\t\t\t\t\t\t<li> <span onmouseover=\"" . $calque->getJsContextHelpOnMouseOver(_("Vous pouvez ajouter des évènements sur toute adresse qu'un autre utilisateur a créée.")) . "\" onmouseout=\"" . $calque->getJSContextHelpOnMouseOut() . "\">" . _("ajouter des évènements à une adresse") . "</span></li>\n\t\t\t\t\t\t<li> <span onmouseover=\"" . $calque->getJsContextHelpOnMouseOver(_("En activant votre alerte mail sur les adresses,  vous serez prevenu de toute modification sur une adresse dont vous êtes l'auteur")) . "\" onmouseout=\"" . $calque->getJSContextHelpOnMouseOut() . "\">" . _("être prévenu par mail d'une modification de vos participations") . "</span></li>\n\t\t\t\t\t\t<li> <span onmouseover=\"" . $calque->getJsContextHelpOnMouseOver(_("En acceptant de recevoir les mails concernant les nouvelles adresses,  vous serez prévenu de l'ajout d'une nouvelle adresse sur le site.")) . "\" onmouseout=\"" . $calque->getJSContextHelpOnMouseOut() . "\">" . _("être averti des nouvelles adresses") . "</span></li>\n\t\t\t\t\t\t<li> <span onmouseover=\"" . $calque->getJsContextHelpOnMouseOver(_("Grâce à l'alerte par mail sur les commentaires,  vous pouvez débattre avec les autres utilisateurs.")) . "\" onmouseout=\"" . $calque->getJSContextHelpOnMouseOut() . "\">" . _("être averti des nouveaux commentaires ajoutés sur une adresse que vous avez créée.") . "</span></li></ul>";
             $monArchi .= "<b>" . _("Vos statistiques :") . "</b><br>";
             $monArchi .= "" . _("Vous vous êtes connecté :") . " " . $arrayInfosConnexions['nbConnexions'] . " fois<br>";
             $monArchi .= "&nbsp;&nbsp;&nbsp;" . _("Date de votre dernière connexion :") . " " . $this->date->toFrench($arrayInfosConnexions['derniereConnexion']) . "<br>";
             $monArchi .= "<p>\n\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;" . _("Nombre d'images modifiées :") . " " . $arrayInfosModifs['nbModifImage'] . "<br />\n\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;" . _("Nombre d'images ajoutées :") . " " . $arrayInfosModifs['nbAjoutImage'] . "<br />\n\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;" . _("Nombre d'évènements modifiés :") . " " . $arrayInfosModifs['nbModifEvenement'] . "<br />\n\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;" . _("Nombre d'évènements ajoutés :") . " " . $arrayInfosModifs['nbAjoutEvenement'] . "</p>";
             // ******************************************************************************************************************************************
             // liste des evenements ajoutés ou modifiés par l'utilisateur
             // ******************************************************************************************************************************************
             $paginationEvenements = new paginationObject();
             // calcul du nombre d'evenements ajoutes ou modifies pour la pagination
             $req = "\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse, he1.dateCreationEvenement as dateCreationEvenement\n\n\t\t\t\t\t\tFROM evenements he2,  evenements he1\n\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee1 ON ee1.idEvenementAssocie = he1.idEvenement\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee1.idEvenement\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\n\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\tAND he1.idUtilisateur = '" . $auth->getIdUtilisateur() . "'\n\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement,  ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\t";
             $res = $this->connexionBdd->requete($req);
             //$fetchNbEvenements = mysql_fetch_assoc($res);
             $nbEnregistrementTotaux = mysql_num_rows($res);
             $nbEnregistrementsParPage = 5;
             $arrayPaginationEvenements = $paginationEvenements->pagination(array('nomParamPageCourante' => 'archiMonArchiEvenementPage', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
             $req = "\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse as idAdresse, he1.dateCreationEvenement as dateCreationEvenement,  ha1.numero,  ha1.idRue,  ha1.idSousQuartier,  ha1.idQuartier,  ha1.idVille, ha1.idIndicatif,\n\n\t\t\t\t\t\tha1.idAdresse as idAdresse,  ha1.numero,  ha1.idQuartier,  ha1.idVille, ind.nom,\n\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\t\tha1.numero as numeroAdresse,\n\t\t\t\t\t\tha1.idRue,\n\t\t\t\t\t\tr.prefixe as prefixeRue,\n\t\t\t\t\t\tIF (ha1.idSousQuartier != 0,  ha1.idSousQuartier,  r.idSousQuartier) AS idSousQuartier,\n\t\t\t\t\t\tIF (ha1.idQuartier != 0,  ha1.idQuartier,  sq.idQuartier) AS idQuartier,\n\t\t\t\t\t\tIF (ha1.idVille != 0,  ha1.idVille,  q.idVille) AS idVille,\n\t\t\t\t\t\tIF (ha1.idPays != 0,  ha1.idPays,  v.idPays) AS idPays,\n\n\t\t\t\t\t\tha1.numero as numero,\n\t\t\t\t\t\tha1.idHistoriqueAdresse,\n\t\t\t\t\t\tha1.idIndicatif as idIndicatif\n\n\n\t\t\t\t\t\tFROM evenements he2,  evenements he1\n\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee1 ON ee1.idEvenementAssocie = he1.idEvenement\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee1.idEvenement\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\n\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tLEFT 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 )\n\n\n\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\tAND he1.idUtilisateur = '" . $auth->getIdUtilisateur() . "'\n\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement,  ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\tORDER BY he1.dateCreationEvenement DESC\n\n\t\t\t\t\t\t\t\t";
             $req = $paginationEvenements->addLimitToQuery($req);
             $res = $this->connexionBdd->requete($req);
             $monArchi .= "<b>" . _("Liste de vos derniers évènements créés :") . "</b><br>";
             $monArchi .= $arrayPaginationEvenements['html'];
             $tableauEvenements = new tableau();
             if (mysql_num_rows($res) == 0) {
                 $monArchi .= "<br>" . _("Vous n'avez pas encore ajouté d'évènement.") . "<br>";
             }
             while ($fetch = mysql_fetch_assoc($res)) {
                 $tableauEvenements->addValue($date->toFrench($fetch['dateCreationEvenement']));
                 $tableauEvenements->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'])) . "'>" . stripslashes($adresse->getIntituleAdresse($fetch)) . "</a>");
             }
             $monArchi .= $tableauEvenements->createHtmlTableFromArray(2, "font-size:12px;");
             // ******************************************************************************************************************************************
             // liste des adresses ajoutés par l'utilisateur
             // ******************************************************************************************************************************************
             $paginationAdresses = new paginationObject();
             $nbEnregistrementsParPage = 5;
             $req = "\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse\n\t\t\t\t\t\tFROM historiqueAdresse ha2,  historiqueAdresse ha1\n\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\t\t\t\t\t\tWHERE ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\tAND ha1.idUtilisateur = '" . $auth->getIdUtilisateur() . "'\n\t\t\t\t\t\t\t\tGROUP BY ha1.idAdresse ,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\tORDER BY ha1.date DESC\n\t\t\t\t\t\t\t\t";
             $res = $this->connexionBdd->requete($req);
             $nbEnregistrementTotaux = mysql_num_rows($res);
             $arrayPaginationAdresses = $paginationAdresses->pagination(array('nomParamPageCourante' => 'archiMonArchiAdressesPage', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
             $req = "\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse as idAdresse, ha1.date as date,  ha1.numero,  ha1.idRue,  ha1.idSousQuartier,  ha1.idQuartier,  ha1.idVille, ha1.idIndicatif,\n\n\t\t\t\t\t\tha1.idAdresse as idAdresse,  ha1.numero,  ha1.idQuartier,  ha1.idVille, ind.nom,\n\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\t\tha1.numero as numeroAdresse,\n\t\t\t\t\t\tha1.idRue,\n\t\t\t\t\t\tr.prefixe as prefixeRue,\n\t\t\t\t\t\tIF (ha1.idSousQuartier != 0,  ha1.idSousQuartier,  r.idSousQuartier) AS idSousQuartier,\n\t\t\t\t\t\tIF (ha1.idQuartier != 0,  ha1.idQuartier,  sq.idQuartier) AS idQuartier,\n\t\t\t\t\t\tIF (ha1.idVille != 0,  ha1.idVille,  q.idVille) AS idVille,\n\t\t\t\t\t\tIF (ha1.idPays != 0,  ha1.idPays,  v.idPays) AS idPays,\n\n\t\t\t\t\t\tha1.numero as numero,\n\t\t\t\t\t\tha1.idHistoriqueAdresse,\n\t\t\t\t\t\tha1.idIndicatif as idIndicatif\n\n\n\t\t\t\t\t\tFROM historiqueAdresse ha2,  historiqueAdresse ha1\n\n\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tWHERE ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\tAND ha1.idUtilisateur = '" . $auth->getIdUtilisateur() . "'\n\t\t\t\t\t\t\t\tGROUP BY ha1.idAdresse ,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\tORDER BY ha1.date DESC\n\t\t\t\t\t\t\t\t";
             $req = $paginationAdresses->addLimitToQuery($req);
             $res = $this->connexionBdd->requete($req);
             $monArchi .= "<br><b>" . _("Liste de vos adresses :") . " </b><br>";
             $monArchi .= $arrayPaginationAdresses['html'];
             $tableauAdresse = new tableau();
             if (mysql_num_rows($res) == 0) {
                 $monArchi .= "<br>" . _("Vous n'avez pas encore ajouté d'adresse.") . "<br>";
             }
             while ($fetch = mysql_fetch_assoc($res)) {
                 $tableauAdresse->addValue($date->toFrench($fetch['date']));
                 $tableauAdresse->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'])) . "'>" . stripslashes($adresse->getIntituleAdresse($fetch)) . "</a>");
             }
             $monArchi .= $tableauAdresse->createHtmlTableFromArray(2, "font-size:12px;");
             // ******************************************************************************************************************************************
             // liste des adresses ou l'utilisateur a ajouté un commentaire
             // ******************************************************************************************************************************************
             $paginationCommentaires = new paginationObject();
             $nbEnregistrementsParPage = 5;
             $req = "\n\n\t\t\t\t\t\tSELECT c.idCommentaire\n\t\t\t\t\t\tFROM commentaires c\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = c.idEvenementGroupeAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\tWHERE c.idUtilisateur = '" . $auth->getIdUtilisateur() . "' OR c.email='" . $utilisateur->getMailUtilisateur($auth->getIdUtilisateur()) . "'\n\t\t\t\t\t\t\t\tAND CommentaireValide=1\n\t\t\t\t\t\t\t\tGROUP BY ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\tORDER BY c.date DESC\n\t\t\t\t\t\t\t\t";
             $res = $this->connexionBdd->requete($req);
             $nbEnregistrementTotaux = mysql_num_rows($res);
             $arrayPaginationCommentaires = $paginationCommentaires->pagination(array('nomParamPageCourante' => 'archiMonArchiAdressesPage', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
             $req = "\n\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse as idAdresse, c.date as dateCommentaire, ha1.date as date,  ha1.numero,  ha1.idRue,  ha1.idSousQuartier,  ha1.idQuartier,  ha1.idVille, ha1.idIndicatif,\n\n\t\t\t\t\t\tha1.idAdresse as idAdresse,  ha1.numero,  ha1.idQuartier,  ha1.idVille, ind.nom,\n\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\t\tha1.numero as numeroAdresse,\n\t\t\t\t\t\tha1.idRue,\n\t\t\t\t\t\tr.prefixe as prefixeRue,\n\t\t\t\t\t\tIF (ha1.idSousQuartier != 0,  ha1.idSousQuartier,  r.idSousQuartier) AS idSousQuartier,\n\t\t\t\t\t\tIF (ha1.idQuartier != 0,  ha1.idQuartier,  sq.idQuartier) AS idQuartier,\n\t\t\t\t\t\tIF (ha1.idVille != 0,  ha1.idVille,  q.idVille) AS idVille,\n\t\t\t\t\t\tIF (ha1.idPays != 0,  ha1.idPays,  v.idPays) AS idPays,\n\n\t\t\t\t\t\tha1.numero as numero,\n\t\t\t\t\t\tha1.idHistoriqueAdresse,\n\t\t\t\t\t\tha1.idIndicatif as idIndicatif\n\n\t\t\t\t\t\tFROM commentaires c\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = c.idEvenementGroupeAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\n\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tLEFT 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 )\n\n\t\t\t\t\t\tWHERE c.idUtilisateur = '" . $auth->getIdUtilisateur() . "' OR c.email='" . $utilisateur->getMailUtilisateur($auth->getIdUtilisateur()) . "'\n\t\t\t\t\t\tAND CommentaireValide=1\n\t\t\t\t\t\tGROUP BY ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\tORDER BY c.date DESC\n\t\t\t\t\t\t\t\t";
             $req = $paginationCommentaires->addLimitToQuery($req);
             $res = $this->connexionBdd->requete($req);
             $monArchi .= "<br><b>" . _("Liste de vos derniers commentaires :") . " </b><br>";
             $monArchi .= $arrayPaginationCommentaires['html'];
             $tableauCommentaires = new tableau();
             if (mysql_num_rows($res) == 0) {
                 $monArchi .= "<br>" . _("Vous n'avez pas encore ajouté de commentaire.") . "<br>";
             }
             while ($fetch = mysql_fetch_assoc($res)) {
                 $tableauCommentaires->addValue($date->toFrench($fetch['dateCommentaire']));
                 $tableauCommentaires->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'])) . "'>" . stripslashes($adresse->getIntituleAdresse($fetch)) . "</a>");
             }
             $monArchi .= $tableauCommentaires->createHtmlTableFromArray(2, "font-size:12px;");
             $monArchi .= "<a href=" . $this->creerUrl('', 'mesInterets', array()) . ">Afficher mes interets </a>";
             $t->assign_vars(array('htmlMonArchi' => $monArchi));
             $t->assign_vars(array('calqueHelp' => $calque->getHtmlDivContextualHelp()));
             break;
             // **********************************************************************************************************************************
             // ACCUEIL
             // **********************************************************************************************************************************
         // **********************************************************************************************************************************
         // ACCUEIL
         // **********************************************************************************************************************************
         default:
             $params = array();
             $s = new objetSession();
             if (isset($this->variablesGet['archiIdVilleGeneral']) && $this->variablesGet['archiIdVilleGeneral'] != 0 && $this->variablesGet['archiIdVilleGeneral'] != '') {
                 $params['idVille'] = $this->variablesGet['archiIdVilleGeneral'];
                 $s->addToSession('archiIdVilleGeneral', $params['idVille']);
             } elseif ($s->isInSession('archiIdVilleGeneral') && $s->getFromSession('archiIdVilleGeneral')) {
                 $params['idVille'] = $s->getFromSession('archiIdVilleGeneral');
                 $s->addToSession('archiIdVilleGeneral', $params['idVille']);
             }
             if (isset($this->variablesGet['archiNomVilleGeneral']) && $this->variablesGet['archiNomVilleGeneral'] != '') {
                 $a = new archiAdresse();
                 $params['idVille'] = $a->getIdVilleFromNomVille($this->variablesGet['archiNomVilleGeneral']);
                 $_GET['archiIdVilleGeneral'] = $params['idVille'];
                 // on place la ville general dans la session ,  ca simplifiera pas mal de choses
                 $s->addToSession('archiIdVilleGeneral', $params['idVille']);
             }
             $news = $this->getLatestNewsInfo(1);
             //Simple templates
             $t->set_filenames(array('news' => 'accueil/news.tpl'));
             $t->set_filenames(array('derniereModfis' => 'accueil/lastmodifs.tpl'));
             $t->set_filenames(array('commentaire' => 'accueil/commentaire.tpl'));
             $t->set_filenames(array('favoris' => 'accueil/favoris.tpl'));
             $t->set_filenames(array('lastVisit' => 'accueil/lastVisit.tpl'));
             $news['titreCategory'] = 'Actualité de l\'association';
             $news['urlNewsList'] = $this->creerUrl('', 'toutesLesActualites', array());
             $t->assign_block_vars('newsAccueil', $news);
             //Gestion pour les commentaires
             $latestComments = $this->getLatestComments(2);
             $t->assign_vars(array('commentaireSectionTitle' => _("COMMENTAIRES RÉCENTS"), 'urlListCommentaire' => $this->creerUrl('', 'tousLesCommentaires')));
             foreach ($latestComments as $com) {
                 $e = new archiEvenement();
                 $commentaire = array('date' => $com['date'], 'nom' => $com['nom'], 'prenom' => $com['prenom'], 'adresse' => $com['adresse'], 'urlAdresse' => $com['urlAdresse'], 'urlPersonne' => $com['urlPersonne'], 'commentaire' => $com['commentaire']);
                 $t->assign_block_vars('commentaire', $commentaire);
             }
             $lastModifs = $this->getLatestModification(8);
             foreach ($lastModifs as $modif) {
                 if (isset($modif['idEvenement']) && $modif['idEvenement']) {
                     $idAdresse = $modif['idAdresse'];
                     $e = new archiEvenement();
                     $adresseArray = $e->getArrayAdresse($modif['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
                     // Adresse
                     $adresse = '';
                     $adresse = $e->getAddressText($adresseArray);
                     $infoImage = array();
                     // Image
                     $a = new archiAdresse();
                     $reqImageEvtRelated = "\t\t\t\t\n\t\t\t\t\t\t\tSELECT hi.idHistoriqueImage,hi.dateUpload,1 as priorite\n\t\t\t\t\t\t\tFROM historiqueImage hi\n\t\t\t\t\t\t\tLEFT JOIN _evenementImage ei on ei.idImage = hi.idImage\n\t\t\t\t\t\t\tWHERE ei.idEvenement = " . $modif['idEvenement'] . "\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tUNION\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tSELECT hi.idHistoriqueImage,hi.dateUpload,2 as priorite\n\t\t\t\t\t\t\tFROM `evenements` evt\n\t\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = evt.idEvenement\n\t\t\t\t\t\t\tLEFT JOIN evenements evt2 ON evt2.idEvenement = ee.idEvenement\n\t\t\t\t\t\t\tLEFT JOIN historiqueImage hi on hi.idImage = evt2.idImagePrincipale\n\t\t\t\t\t\t\tLEFT JOIN _evenementImage ei ON ei.idImage = hi.idImage\n\t\t\t\t\t\t\tWHERE ee.idEvenement IS NOT NULL\n\t\t\t\t\t\t\tAND evt.idEvenement IS NOT NULL\n\t\t\t\t\t\t\tAND evt.idEvenement != 0\n\t\t\t\t\t\t\tAND ei.idEvenement =" . $modif['idEvenement'] . "\n\t\t\t\t\t\t\tAND ee.idEvenement =" . $modif['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tORDER BY priorite DESC\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t";
                     $resImageEvtRelated = $this->connexionBdd->requete($reqImageEvtRelated);
                     $arrayImage = mysql_fetch_assoc($resImageEvtRelated);
                     if (isset($arrayImage) && $arrayImage != '') {
                         $infoImage = $arrayImage;
                     } else {
                         $reqImagePrincipale = "\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSELECT hi.idHistoriqueImage,hi.dateUpload\n\t\t\t\t\t\t\tFROM historiqueImage hi\n\t\t\t\t\t\t\tLEFT JOIN evenements evt on evt.idImagePrincipale = hi.idImage\n\t\t\t\t\t\t\tWHERE evt.idEvenement =" . $modif['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t";
                         $resImagePrincipale = $this->connexionBdd->requete($reqImagePrincipale);
                         if (mysql_num_rows($reqImagePrincipale) >= 1) {
                             $infoImage = mysql_fetch_assoc($resImagePrincipale);
                         } else {
                             $reqOtherImage = "SELECT hi.idHistoriqueImage,hi.dateUpload\n\t\t\t\t\t\t\tFROM historiqueImage hi\n\t\t\t\t\t\t\tLEFT JOIN _evenementImage ei ON ei.idImage = hi.idImage\n\t\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = ei.idEvenement\n\t\t\t\t\t\t\tWHERE ee.idEvenement IS NOT NULL\n\t\t\t\t\t\t\tAND ee.idEvenement =" . $modif['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t";
                             $resOtherImage = $this->connexionBdd->requete($reqOtherImage);
                             if (mysql_num_rows($resOtherImage) >= 1) {
                                 $infoImage = mysql_fetch_assoc($resOtherImage);
                             }
                         }
                     }
                     $urlImage = "";
                     $urlEvenement = "";
                     // Url Evenement
                     $idEvenementGroupeAdresses = $e->getIdGroupeEvenement($modif['idEvenement']);
                     if ($modif['type'] == 'adresse') {
                         $urlEvenement = $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses));
                         // $urlImage = "resizeImage.php?id=".$infoImage['idHistoriqueImage']."&height=200&width=200";
                         if (isset($infoImage['dateUpload']) && isset($infoImage['idHistoriqueImage']) && $infoImage['idHistoriqueImage'] != '' && $infoImage['dateUpload'] != '') {
                             $urlImage = "images/grand/" . $infoImage['dateUpload'] . "/" . $infoImage['idHistoriqueImage'] . ".jpg";
                         } else {
                             $urlImage = "images/placeholder.jpg";
                         }
                     } else {
                         $urlEvenement = $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $modif['idPersonne']));
                         $urlImage = ArchiPersonne::getImage($modif['idPersonne'], 'resized');
                     }
                     // Description
                     $so = new StringObject();
                     $bbcode = new bbCodeObject();
                     $description = $bbcode->stripBBCode($modif['description']);
                     $description = $so->truncateStringToWord($description, 130, ' ', '...');
                     $t->assign_block_vars('lastModif', array('miniatureLabelLeft' => $modif['typeEvenement'], 'miniatureLabelRight' => $modif['dateCreationEvenement'], 'adresse' => ucfirst($adresse), 'ville' => ucfirst($adresseArray[0]['nomVille']), 'urlMiniature' => $urlImage, 'urlEvenement' => $urlEvenement, 'description' => $description, 'titre' => $modif['titre']));
                 } else {
                 }
             }
             //Gestion des dernieres visites
             $t->assign_vars(array('lastVisitTitle' => _("Dernières visites")));
             $lastVisitArray = $_SESSION['lastVisited'];
             if (empty($lastVisitArray)) {
                 $visite = array('content' => _("Vous n'avez visité aucune adresse pour le moment"));
                 $t->assign_block_vars('lastVisitMessage', $visite);
             } else {
                 foreach ($lastVisitArray as $lastVisit) {
                     $titre = "";
                     if ($lastVisit['idAdresse'] != '' && $lastVisit['idEvenementGroupeAdresse'] != '') {
                         $idAdresse = $lastVisit['idAdresse'];
                         $e = new archiEvenement();
                         $adresseArray = $e->getArrayAdresse($lastVisit['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
                         //Adresse
                         $adresse = '';
                         $adresse = $e->getAddressText($adresseArray);
                         //Image
                         $requeteImage = "\n\t\t\t\t\t\t\t\t\tSELECT hi.idHistoriqueImage ,hi.dateUpload, e.idEvenement\n\t\t\t\t\t\t\t\t\tFROM historiqueImage hi\n\t\t\t\t\t\t\t\t\tLEFT JOIN evenements e on e.idImagePrincipale = hi.idImage\n\t\t\t\t\t\t\t\t\tWHERE e.idEvenement = " . $lastVisit['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\t\t\tAND e.idImagePrincipale !=0 \n\t\t\t\t\t\t\t\t\t";
                         $resultImage = $this->connexionBdd->requete($requeteImage);
                         $array_image = mysql_fetch_assoc($resultImage);
                         $a = new archiAdresse();
                         if ($array_image['idHistoriqueImage'] == 0 || !isset($array_image['idHistoriqueImage']) || $array_image['idHistoriqueImage'] == '') {
                             $infoImage = $a->getUrlImageFromAdresse($idAdresse, 'moyen');
                             $image = new archiImage();
                             $resImage = $image->getImagesEvenementsFromAdresse($idAdresse, $lastVisit);
                             $infoImage = mysql_fetch_assoc($resImage);
                         } else {
                             $infoImage = $array_image;
                         }
                         if (isset($infoImage['dateUpload']) && isset($infoImage['idHistoriqueImage']) && $infoImage['idHistoriqueImage'] != '' && $infoImage['dateUpload'] != '') {
                             $urlImage = "images/grand/" . $infoImage['dateUpload'] . "/" . $infoImage['idHistoriqueImage'] . ".jpg";
                         } else {
                             $urlImage = "images/placeholder.jpg";
                         }
                         //Url Evenement
                         $idEvenementGroupeAdresses = $lastVisit['idEvenementGroupeAdresse'];
                         $urlEvenement = $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses));
                         // Description
                         $requeteDescription = "\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tSELECT evt.description\n\t\t\t\t\t\t\t\t\tFROM evenements evt\n\t\t\t\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = evt.idEvenement\n\t\t\t\t\t\t\t\t\tLEFT JOIN positionsEvenements pe ON pe.idEvenementGroupeAdresse = ee.idEvenement\n\t\t\t\t\t\t\t\t\tWHERE ee.idEvenement =" . $lastVisit['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\t\t\tORDER BY pe.position\n\t\t\t\t\t\t\t\t\t\t\t";
                         $resDescription = $this->connexionBdd->requete($requeteDescription);
                         $arrayDescription = mysql_fetch_assoc($resDescription);
                         $so = new StringObject();
                         $description = $so->sansBalises($arrayDescription['description']);
                         $description = stripslashes($description);
                         $description = $so->truncateStringToWord($description, 80, ' ', '...');
                         if (isset($lastVisit) && !empty($lastVisit) && isset($lastVisit['idEvenementGroupeAdresse']) && !empty($lastVisit['idEvenementGroupeAdresse']) && isset($lastVisit['idAdresse']) && !empty($lastVisit['idAdresse'])) {
                             //Titre
                             $resTitre = $e->getIdEvenementTitre($lastVisit);
                             $requeteTitre = "\n\t\t\t\t\t\t\t\t\t\tSELECT evt.titre\n\t\t\t\t\t\t\t\t\t\tFROM evenements evt\n\t\t\t\t\t\t\t\t\t\tWHERE evt.idEvenement = " . $resTitre . "\n\t\t\t\t\t\t\t\t\t\t\t\t";
                             $resTitre = $this->connexionBdd->requete($requeteTitre);
                             $titreArray = mysql_fetch_array($resTitre);
                             if ($titreArray['titre'] != '') {
                                 //$titre = $adresse;
                                 $titre = $titreArray['titre'];
                             } else {
                             }
                         }
                         $visite = array('adresse' => $adresse, 'urlMiniature' => $urlImage, 'urlEvenement' => $urlEvenement, 'description' => $description, 'titre' => $titre);
                         $t->assign_block_vars('lastVisit', $visite);
                     }
                 }
             }
             $t->assign_vars(array('lastModifTitle' => _("Dernières modifications"), 'urlCustomNewsFeed' => $this->creerUrl('', 'mesInterets', array())));
             //Associate template to the general template
             $t->assign_var_from_handle('news', 'news');
             $t->assign_var_from_handle('dernieresModifs', 'derniereModfis');
             $t->assign_var_from_handle('commentaires', 'commentaire');
             $t->assign_var_from_handle('lastVisits', 'lastVisit');
             break;
     }
     ob_start();
     $t->pparse('accueil');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 private function getUserCommentaires($userId)
 {
     $paginationCommentaires = new paginationObject();
     $utilisateur = new archiUtilisateur();
     $date = new dateObject();
     $adresse = new archiAdresse();
     $nbEnregistrementsParPage = 5;
     $req = "\n    \t\n    \t\t\t\n    \t\t\tSELECT * FROM (\n\t    \t\t\tSELECT c.idCommentaire as idCommentaire,\n\t    \t\t\t\t\tha1.idAdresse as idAdresse,\n\t    \t\t\t\t\tha1.idHistoriqueAdresse as idHistoriqueAdresse1,\n\t    \t\t\t\t\tha2.idHistoriqueAdresse as idHistoriqueAdresse2,\n\t    \t\t\t\t\tc.date as dateCom\t    \t\t\tFROM commentaires c\n\t    \t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = c.idEvenementGroupeAdresse\n\t    \t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t    \t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\t    \t\t\tWHERE c.idUtilisateur = '" . $userId . "' OR c.email='" . $utilisateur->getMailUtilisateur($userId) . "'\n\t    \t\t\tAND CommentaireValide=1\n\t    \t\t\tGROUP BY ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t    \t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t    \t\t\tORDER BY c.date DESC\n\n    \t\t\t) as tmp1\n    \t\t\t\t\tUNION all\n\n\t    \t\tSELECT * FROM (\n\t    \t\t\tSELECT c.idCommentairesEvenement as idCommentaire,\n\t    \t\t\t\t\tha1.idAdresse as idAdresse,\n\t    \t\t\t\t\tha1.idHistoriqueAdresse as idHistoriqueAdresse1,\n\t    \t\t\t\t\tha2.idHistoriqueAdresse as idHistoriqueAdresse2,\n\t    \t\t\t\t\tc.date as dateCom\n\t    \t\t\t\t\n   \t\t\t\t\tFROM commentairesEvenement c\n\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = c.idEvenement\n\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t    \t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t    \t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\t    \t\t\tWHERE c.idUtilisateur = '" . $userId . "' OR c.email='" . $utilisateur->getMailUtilisateur($userId) . "'\n\t    \t\t\tAND CommentaireValide=1\n\t    \t\t\tGROUP BY ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t    \t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t    \t\t\tORDER BY c.date DESC\n\t\t\t\t) as tmp2\n    \t\t\t\tGROUP BY idAdresse,  idHistoriqueAdresse1\n\t    \t\t\tHAVING idHistoriqueAdresse1 = max(idHistoriqueAdresse2)\n\t    \t\t\tORDER BY dateCom DESC\n    \t\t\t\t\t\t\t";
     $res = $this->connexionBdd->requete($req);
     $nbEnregistrementTotaux = mysql_num_rows($res);
     $arrayPaginationCommentaires = $paginationCommentaires->pagination(array('nomParamPageCourante' => 'archiMonArchiAdressesPage', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
     $req = "\n\t\t    \t\t\tSELECT * FROM (\n\t\t    \t\t\t\n\t\t    \t\t\tSELECT \n\t\t    \t\t\t\n\t\t    \t\t\tdistinct ha1.idAdresse as idAdresse, \n\t\t    \t\t\tha1.date as date,  \n\t\t    \t\t\tha1.numero as numero, \n\t\t    \t\t\tha1.idRue as idRue,  \n\t\t    \t\t\tha1.idSousQuartier as idSousQuartier, \n\t\t    \t\t\tha1.idVille as idVille , \n\t\t    \t\t\tha1.idIndicatif as idIndicatif,\n\t\t    \t\t\tha1.idQuartier as idQuartier, \n\t\t\t\t\t\tha1.idPays AS idPays,\n\t\t\t\t\t\tha1.idHistoriqueAdresse as idHistoriqueAdresse1,\n\t\t\t\t\t\tha2.idHistoriqueAdresse as idHistoriqueAdresse2,\n    \t\t\t\t\tha1.numero as numeroAdresse,\n    \t\t\t\t\tind.nom as nomIndicatif,\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\t\tr.prefixe as prefixeRue,\n    \t\t\t\t\tc.date as dateCommentaire, \n    \t\t\t\t\tc.idEvenementGroupeAdresse as idEvenementGA\n    \t\n\t\t\t\t\t\tFROM commentaires c\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = c.idEvenementGroupeAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n    \t\n\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n    \t\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tLEFT 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 )\n    \t\n\t\t\t\t\t\tWHERE c.idUtilisateur = '" . $userId . "' OR c.email='" . $utilisateur->getMailUtilisateur($userId) . "'\n\t\t\t\t\t\tAND CommentaireValide=1) as tmp1\n\n\t\t\t\t\t\tUNION ALL\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\tSELECT *\n\t\t\t\t\t\tFROM (\n\t    \t\t\t\tSELECT \n\t\t    \t\t\t\n\t\t    \t\t\tdistinct ha1.idAdresse as idAdresse, \n\t\t    \t\t\tha1.date as date,  \n\t\t    \t\t\tha1.numero as numero, \n\t\t    \t\t\tha1.idRue as idRue,  \n\t\t    \t\t\tha1.idSousQuartier as idSousQuartier, \n\t\t    \t\t\tha1.idVille as idVille , \n\t\t    \t\t\tha1.idIndicatif as idIndicatif,\n\t\t    \t\t\tha1.idQuartier as idQuartier, \n\t\t\t\t\t\tha1.idPays AS idPays,\n\t\t\t\t\t\tha1.idHistoriqueAdresse as idHistoriqueAdresse1,\n\t\t\t\t\t\tha2.idHistoriqueAdresse as idHistoriqueAdresse2,\n\t\t\t\t\t\tha1.numero as numeroAdresse,\n    \t\t\t\t\tind.nom as nomIndicatif,\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\t\tr.prefixe as prefixeRue,\n    \t\t\t\t\tc.date as dateCommentaire, \n\t\t\t\t\t\tee.idEvenement as idEvenementGA\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tFROM commentairesEvenement c\n\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = c.idEvenement\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tLEFT 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 )\n\t\t\t\t\t\tWHERE c.idUtilisateur = '" . $userId . "' OR c.email='" . $utilisateur->getMailUtilisateur($userId) . "'\n\t\t\t\t\t\tAND CommentaireValide=1\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tAS tmp2\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\tGROUP BY idAdresse,  idHistoriqueAdresse1, idEvenementGA\n\t\t\t\t\t\tHAVING idHistoriqueAdresse1 = max(idHistoriqueAdresse2)\n\t\t\t\t\t\tORDER BY dateCommentaire DESC\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t";
     $req = $paginationCommentaires->addLimitToQuery($req);
     $res = $this->connexionBdd->requete($req);
     $monArchi .= "<br><b>" . _("Liste de vos derniers commentaires :") . " </b><br>";
     $monArchi .= $arrayPaginationCommentaires['html'];
     $tableauCommentaires = new tableau();
     if (mysql_num_rows($res) == 0) {
         $monArchi .= "<br>" . _("Vous n'avez pas encore ajouté de commentaire.") . "<br>";
     }
     while ($fetch = mysql_fetch_assoc($res)) {
         $tableauCommentaires->addValue($date->toFrench($fetch['dateCommentaire']));
         $tableauCommentaires->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'])) . "'>" . stripslashes($adresse->getIntituleAdresse($fetch)) . "</a>");
     }
     $monArchi .= $tableauCommentaires->createHtmlTableFromArray(2, "font-size:12px;");
     return $monArchi;
 }
 /**
  * Get the form for comment
  *
  *
  * @param unknown $idEvenement
  * @param unknown $fields
  * @param string $ty : type of comment
  * @return string
  */
 public function getFormComment($idEvenement, $fields, $ty = '')
 {
     $t = new Template('modules/archi/templates/');
     $labelButton = "Ajouter un commentaire";
     $type = $ty == '' ? 0 : $ty;
     $classButton = 'addCommentButtonWrapper';
     $auth = new ArchiAuthentification();
     if ($auth->estConnecte()) {
         $t->set_filenames(array('formComment' => 'comment/comment.tpl'));
         $url = "";
         $userId = $auth->getIdUtilisateur();
         $utilisateur = new archiUtilisateur();
         $utilisateur->setUserId($userId);
         $nom = $utilisateur->getNom();
         $prenom = $utilisateur->getPrenom();
         $email = $utilisateur->getEmail();
         $urlProfilePic = $utilisateur->getImageAvatar(array('idUtilisateur' => $userId));
         $profileAlt = $prenom . " " . $nom;
         if ($ty == '') {
             $array_type = array();
             $url = $this->creerUrl('enregistreCommentaire', '', array());
             $labelButton .= " sur l'adresse";
             $classButton .= " addCommentAdresseButtonWrapper";
         } else {
             $array_type = array('type' => array('id' => 'type', 'type' => 'hidden', 'value' => $type));
             $url = $this->creerUrl('enregistreCommentaireEvenement', '', array());
         }
         $inputs = array('nom' => array('id' => 'nom', 'type' => 'hidden', 'value' => $nom), 'prenom' => array('id' => 'prenom', 'type' => 'hidden', 'value' => $prenom), 'email' => array('id' => 'email', 'type' => 'hidden', 'value' => $email), 'idEvenementGroupeAdresse' => array('id' => 'idEvenementGroupeAdresse', 'type' => 'hidden', 'value' => $idEvenement));
         $inputs = array_merge($inputs, $array_type);
         foreach ($inputs as $input) {
             $t->assign_block_vars('input', $input);
         }
         $t->assign_vars(array('urlRedirect' => $url, 'name' => 'formAjoutCommentaire', 'urlProfilePic' => $urlProfilePic, 'profileAlt' => $profileAlt, 'labelButton' => $labelButton, 'classButton' => $classButton, 'idEvenement' => $idEvenement));
     } else {
         $t->set_filenames(array('formComment' => 'comment/notconnected.tpl'));
         $urlConnexion = $this->creerUrl('', 'authentification');
         $urlInscription = $this->creerUrl('', 'inscription');
         if ($ty == '') {
             $labelButton .= " sur l'adresse";
             $classButton .= " addCommentAdresseButtonWrapper";
         }
         $t->assign_vars(array('urlInscription' => $urlInscription, 'urlConnexion' => $urlConnexion, 'labelButton' => $labelButton, 'classButton' => $classButton, 'idEvenement' => $idEvenement));
     }
     //Setting CSS class for opening the form
     if (isset($this->variablesGet['commentFormActive']) && $this->variablesGet['commentFormActive']) {
         if ($this->variablesGet['commentFormActive'] == $idEvenement) {
             $t->assign_var('classWrappingDiv', 'active');
         }
     }
     ob_start();
     $t->pparse('formComment');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * Ajouter un événement à la BDD
  * 
  * @param string $type             Type (adresse ou personne)
  * @param array  $arrayNewAdresses Contenu lié
  * 
  * @return void
  * */
 function addEvent($type = "adresse", $arrayNewAdresses = array())
 {
     // ******************************************************
     // ensuite on ajoute l'evenement
     // ******************************************************
     $evenement = new archiEvenement();
     $idEvenementGroupeAdresses = 0;
     $idSousEvenement = 0;
     if ($type == "personne") {
         $linkTable = "_personneEvenement";
         $field = "idPersonne";
     } else {
         $linkTable = "_adresseEvenement";
         $field = "idAdresse";
     }
     $table = array('table' => $linkTable, 'field' => $field);
     //debug($arrayNewAdresses);
     //$arrayRetourEvenementNouveauDossier=$evenement->ajouterEvenementNouveauDossier();
     foreach ($arrayNewAdresses as $newAddress) {
         if (isset($newAddress['newAdresse']) && !empty($newAddress['newAdresse']) || $newAddress['newAdresse'] == 1) {
             //debug("full ajout");
             $arrayRetourEvenementNouveauDossier = $evenement->ajouterEvenementNouveauDossier();
         } else {
             //debug("ajout simple id : ".$newAddress['idAdresse']);
             $arrayRetourEvenementNouveauDossier = $evenement->ajouterEvenementNouveauDossier($newAddress['idAdresse']);
         }
     }
     //debug($arrayRetourEvenementNouveauDossier);
     // s'il n'y a pas eu d'erreurs ,  on peut faire l'ajout des liaisons entre evenement et adresses
     if (count($arrayRetourEvenementNouveauDossier['errors']) == 0 && count($arrayNewAdresses) > 0) {
         $idEvenementGroupeAdresses = $arrayRetourEvenementNouveauDossier['idEvenementGroupeAdresse'];
         $idSousEvenement = $arrayRetourEvenementNouveauDossier['idSousEvenement'];
         // liaison entre les adresses et l'evenement groupe d'adresses
         $resSupp = $this->connexionBdd->requete("delete from {$linkTable} where idEvenement = '" . $idEvenementGroupeAdresses . "'");
         // on rend la liste des identifiants unique
         $arrayNewIdAdresses = array();
         foreach ($arrayNewAdresses as $indice => $value) {
             $arrayNewIdAdresses[] = $value['idAdresse'];
         }
         $arrayNewIdAdresses = array_unique($arrayNewIdAdresses);
         foreach ($arrayNewIdAdresses as $indice => $idAdresse) {
             $reqLiaisons = "INSERT INTO {$linkTable} ({$field}, idEvenement)\n                                VALUES ('" . $idAdresse . "', '" . $idEvenementGroupeAdresses . "')\n                ";
             //debug($reqLiaisons);
             $resLiaisons = $this->connexionBdd->requete($reqLiaisons);
         }
         // on relie l'evenement pere (groupe d'adresse ) à l'evenement fils
         if (isset($newAddress['newAdresse']) && !empty($newAddress['newAdresse']) || $newAddress['newAdresse'] == 1) {
             $sqlAssociationNettoie = "delete from _evenementEvenement where idEvenement = '" . $arrayRetourEvenementNouveauDossier['idEvenementGroupeAdresse'] . "'";
             //debug($sqlAssociationNettoie);
             $resAssociationNettoie = $this->connexionBdd->requete($sqlAssociationNettoie);
         }
         $sqlAssociation = "insert into _evenementEvenement (idEvenement,idEvenementAssocie) values ('" . $arrayRetourEvenementNouveauDossier['idEvenementGroupeAdresse'] . "','" . $arrayRetourEvenementNouveauDossier['idSousEvenement'] . "')";
         //debug($sqlAssociation);
         $resAssociation = $this->connexionBdd->requete($sqlAssociation);
         if ($type == "personne") {
         } else {
             // *************************************************************************************************************************************************************
             // envoi d'un mail aux administrateur pour la moderation
             $utilisateur = new archiUtilisateur();
             $message = "L'utilisateur suivant a créé un nouveau dossier : ";
             $message .= $utilisateur->getMailUtilisateur($this->session->getFromSession('utilisateurConnecte' . $this->idSite)) . "<br>";
             $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $arrayNewIdAdresses[0], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses)) . "'>lien vers l'article</a><br>";
             $message .= "Adresses liées au nouveau dossier :<br>";
             $i = 0;
             $adressePourSujetMail = "";
             foreach ($arrayNewAdresses as $indice => $value) {
                 if ($i == 0) {
                     $adressePourSujetMail = $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse');
                 }
                 if ($value['newAdresse'] == true) {
                     // cette adresse a été créée avec le dossier
                     $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses, 'archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . " (nouvelle adresse)</a><br>";
                 } else {
                     /* cette adresse a été créée précédemment
                      * et est utilisée sur ce dossier
                      * */
                     $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses, 'archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . " (cette adresse existait déjà " . "avant la création du dossier)" . "</a><br>";
                 }
             }
             $mail = new mailObject();
             $mail->sendMailToAdministrators($mail->getSiteMail(), "archi-strasbourg.org : " . "un utilisateur a créé un nouveau dossier - " . $adressePourSujetMail, $message, " and alerteMail='1' ", true);
             $u = new archiUtilisateur();
             $u->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 3, 'criteres' => " and alerteMail='1' "));
             /* envoi mail aussi au moderateur si ajout
              * sur adresse de ville que celui ci modere
              * */
             $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($this->variablesPost['ville'], array("sqlWhere" => " AND alerteMail='1' "));
             if (count($arrayListeModerateurs) > 0) {
                 foreach ($arrayListeModerateurs as $indice => $idModerateur) {
                     if ($this->session->getFromSession("utilisateurConnecte" . $this->idSite) != $idModerateur) {
                         $mailModerateur = $u->getMailUtilisateur($idModerateur);
                         if ($u->isMailEnvoiImmediat($idModerateur)) {
                             $mail->sendMail($mail->getSiteMail(), $mailModerateur, "archi-strasbourg.org : " . "un utilisateur a créé un nouveau dossier - " . $adressePourSujetMail, $message, true);
                         } else {
                             // envoi regroupé
                             $u->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $idModerateur, 'idTypeMailRegroupement' => 3));
                         }
                     }
                 }
             }
         }
         //echo $retourEvenement["html"];
         if ($type == "personne") {
             header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idAdresse), false, false));
         } else {
             header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses, 'archiIdAdresse' => $value['idAdresse']), false, false));
         }
     }
 }
 /**
  * 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;
 }
 /** 
  * Renvoi l'idProfil de l'utilisateur connecté
  * 
  * @return int ID
  * */
 public function getIdProfil()
 {
     $idUtilisateurConnecte = 0;
     if ($this->session->isInSession('utilisateurConnecte' . $this->idSite)) {
         $idUtilisateurConnecte = $this->session->getFromSession('utilisateurConnecte' . $this->idSite);
     }
     $u = new archiUtilisateur();
     return intval($u->getIdProfilFromUtilisateur($idUtilisateurConnecte));
 }
 /**
  * Fonction permettant a l'administrateur de visualiser l'historique de l'image
  *
  * @param int $idImage ID de l'image
  *
  * @return string HTML
  * */
 public function afficheHistoriqueImage($idImage = 0)
 {
     $u = new archiUtilisateur();
     $html = "";
     $req = "SELECT idHistoriqueImage, dateUpload, idImage, idUtilisateur, description, dateCliche, isDateClicheEnviron, idSource FROM historiqueImage WHERE idImage='" . $idImage . "'";
     $res = $this->connexionBdd->requete($req);
     $t = new tableau();
     $d = new dateObject();
     $bb = new bbCodeObject();
     $s = new archiSource();
     $authentification = new archiAuthentification();
     $droitsObject = new droitsObject();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $isRegenerationPossible = false;
     if ($droitsObject->isAuthorized('image_regenerer', $idProfilUtilisateur)) {
         $isRegenerationPossible = true;
     }
     while ($fetch = mysql_fetch_assoc($res)) {
         //$html.="<img src='".$this->getUrlImage("moyen").$fetch['dateUpload']."/".$fetch['idHistoriqueImage'].".jpg"."'><br>";
         $t->addValue("<img src='" . $this->getUrlImage("moyen") . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg" . "'>", "valign=top");
         $arrayInfosUtilisateur = $u->getArrayInfosFromUtilisateur($fetch['idUtilisateur'], array('listeChamps' => 'nom, prenom'));
         $libelleUtilisateur = $arrayInfosUtilisateur['nom'] . " " . $arrayInfosUtilisateur['prenom'];
         $dateCliche = " - ";
         if ($fetch['dateCliche'] != '0000-00-00') {
             $environ = "";
             if ($fetch['isDateClicheEnviron'] == '1') {
                 $environ = "Environ ";
             }
             $dateCliche = $environ . $d->toFrenchAffichage($fetch['dateCliche']);
         }
         $libelleSource = $s->getSourceLibelle($fetch['idSource']);
         if ($libelleSource != '') {
             $libelleSource = "<tr><td><b>source : </b>" . $libelleSource . "</td></tr>";
         }
         $description = "";
         if ($fetch['description'] != '') {
             $description = "<tr><td><b>description :</b><br>" . $bb->convertToDisplay(array('text' => $fetch['description'])) . "</td></tr>";
         }
         $detailHistoriqueImage = "<table><tr><td>de <a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $fetch['idUtilisateur'])) . "'>" . $libelleUtilisateur . "</a> (le " . $d->toFrenchAffichage($fetch['dateUpload']) . ")</td></tr><tr><td><b>date cliché : </b>" . $dateCliche . "</td></tr>" . $description . "" . $libelleSource . "</table>";
         $t->addValue($detailHistoriqueImage);
         if ($isRegenerationPossible) {
             $reqRegenerationAvailable = "SELECT idHistoriqueImage ,  idImage ,  cheminImageUploadee FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetch['idHistoriqueImage'] . "' AND idImage='" . $idImage . "'";
             $resRegenerationAvailable = $this->connexionBdd->requete($reqRegenerationAvailable);
             if (mysql_num_rows($resRegenerationAvailable) > 0) {
                 $fetchRegenerationAvailable = mysql_fetch_assoc($resRegenerationAvailable);
                 if (file_exists($this->getCheminPhysique() . "/images/uploadMultiple/" . $fetchRegenerationAvailable['cheminImageUploadee'])) {
                     $t->addValue("<input type='button' name='regenere' value='régéréner les photos à partir de la source' onclick=\"location.href='" . $this->creerUrl('regenereImageFromUploadDir', 'imageDetail', array('archiIdHistoriqueImage' => $fetch['idHistoriqueImage'], 'archiIdImage' => $idImage)) . "';\">");
                 } else {
                     $t->addValue("Enregistrement trouvé,  mais fichier source de régénération inexistant.");
                 }
             } else {
                 $t->addValue("Pas de régénération possible");
             }
         }
     }
     // En principe cette variable represente un idEvenement,  a changer pour l'id evenementGroupeAdresse
     if (isset($this->variablesGet['archiRetourIdValue']) && $this->variablesGet['archiRetourIdValue'] != '') {
         $adresse = new archiAdresse();
         $evenement = new archiEvenement();
         $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesGet['archiRetourIdValue']);
         $html .= $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
     }
     $html .= "<h2>Historique de l'image {$idImage}</h2>";
     if ($isRegenerationPossible) {
         $html .= $t->createHtmlTableFromArray(3, '', '', '');
     } else {
         $html .= $t->createHtmlTableFromArray(2, '', '', '');
     }
     return $html;
 }
 /**
  * Affiche la liste des rue pour l'administration
  * 
  * @return string HTML
  * */
 public function getAdminListeSousQuartiers()
 {
     $html = "";
     $a = new archiAuthentification();
     $u = new archiUtilisateur();
     $sqlWhere = "";
     // si l'utilisateur est un moderateur on le limite a la gestion des rues des villes qu'il modere
     if ($a->getIdProfil() == 3) {
         $arrayVillesFromModerateur = $u->getArrayVillesModereesPar($a->getIdUtilisateur());
         if (count($arrayVillesFromModerateur) > 0) {
             $sqlWhere = " AND sq.idQuartier in (SELECT idQuartier FROM quartier WHERE idVille in (" . implode(",", $arrayVillesFromModerateur) . ")) ";
         } else {
             $sqlWhere = " AND sq.idQuartier='0' ";
         }
     }
     // recherche
     $objetDeLaRecherche = "";
     $sqlRecherche = "";
     if (isset($this->variablesPost['validationFormulaireAdministration']) && $this->variablesPost['validationFormulaireAdministration'] == 'rechercheAdministration' && $this->variablesPost['rechercheFormulaireAdministration'] != '') {
         $objetDeLaRecherche = stripslashes($this->variablesPost['rechercheFormulaireAdministration']);
         $sqlRecherche = " AND LOWER(CONCAT_WS(' ',sq.nom,q.nom,v.nom)) LIKE \"%" . pia_strtolower($objetDeLaRecherche) . "%\" ";
     }
     // suppression
     // on verifie les dependances
     if (isset($this->variablesPost['validationFormulaireAdministration']) && $this->variablesPost['validationFormulaireAdministration'] == 'suppression') {
         // gestion de la suppression
         if (isset($this->variablesPost['selection']) && count($this->variablesPost['selection']) > 0) {
             //nom de champ identifiant
             $champIdentifiant = "idSousQuartier";
             $dependances[0] = array('table' => 'rue', 'champLie' => 'idSousQuartier', 'message' => "Attention il existe des dépendances au niveau de la table des rues");
             $dependances[1] = array('table' => 'historiqueAdresse', 'champLie' => 'idSousQuartier', 'message' => "Attention il existe des dépendances au niveau de la table historiqueAdresse");
             $erreurObj = new objetErreur();
             if (count($dependances) > 0) {
                 foreach ($dependances as $indice => $dependance) {
                     $reqVerifDependance = "SELECT * FROM " . $dependance['table'] . " WHERE " . $dependance['champLie'] . " in (" . implode(",", $this->variablesPost['selection']) . ")";
                     $resVerifDependance = $this->connexionBdd->requete($reqVerifDependance);
                     if (mysql_num_rows($resVerifDependance) > 0) {
                         $erreurObj->ajouter($dependance['message']);
                     }
                 }
                 if ($erreurObj->getNbErreurs() > 0) {
                     $erreurObj->ajouter("La suppression n'a pu être effectuée, veuillez contacter l'administrateur de la base de données");
                 }
                 $html .= $erreurObj->afficher();
             }
             if ($erreurObj->getNbErreurs() == 0) {
                 $reqDelete = "delete from sousQuartier where " . $champIdentifiant . " in (" . implode(",", $this->variablesPost['selection']) . ")";
                 $resDelete = $this->connexionBdd->requete($reqDelete);
                 echo "suppression effectuée<br>";
             }
         }
     }
     $reqCount = "SELECT sq.nom as nomSousQuartier, q.nom as nomQuartier,v.nom as nomVille\n            FROM sousQuartier sq\n            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n            LEFT JOIN ville v ON v.idVille = q.idVille\n            WHERE 1=1\n            {$sqlWhere}\n            {$sqlRecherche}\n            ";
     $resCount = $this->connexionBdd->requete($reqCount);
     $nbLignesTotales = mysql_num_rows($resCount);
     // pagination
     $nbEnregistrementsParPage = 20;
     $pagination = new paginationObject();
     $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'pageCourantePagination', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbLignesTotales, 'typeLiens' => 'formulaire', 'idFormulaire' => 'formListe', 'champPageCourante' => 'pageCourantePagination', 'nomChampActionFormulaireOnSubmit' => 'validationFormulaireAdministration', 'nomActionFormulaireOnSubmit' => 'rechercheAdministration'));
     $req = "\n        \n            SELECT sq.idSousQuartier as idSousQuartier,sq.nom as nomSousQuartier, q.nom as nomQuartier,v.nom as nomVille\n            FROM sousQuartier sq\n            LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n            LEFT JOIN ville v ON v.idVille = q.idVille\n            WHERE 1=1 {$sqlWhere} {$sqlRecherche}\n            LIMIT " . $arrayPagination['limitSqlDebut'] . "," . $nbEnregistrementsParPage;
     $res = $this->connexionBdd->requete($req);
     $tableau = new tableau();
     $tableau->addValue("Sélection");
     $tableau->addValue("idSousQuartier");
     $tableau->addValue("nom du sous quartier");
     $tableau->addValue("localisation");
     while ($fetch = mysql_fetch_assoc($res)) {
         $tableau->addValue("<input type='checkbox' name='selection[]' value='" . $fetch['idSousQuartier'] . "'>");
         $tableau->addValue("<a href='" . $this->creerUrl('', 'adminAdresseDetail', array('tableName' => 'sousQuartier', 'idModification' => $fetch['idSousQuartier'])) . "'>" . $fetch['idSousQuartier'] . "</a>");
         $tableau->addValue(stripslashes($fetch['nomSousQuartier']));
         $localisation = array();
         if ($fetch['nomQuartier'] != '' && $fetch['nomQuartier'] != 'autre') {
             $localisation[] = $fetch['nomQuartier'];
         }
         if ($fetch['nomVille'] != '' && $fetch['nomVille'] != 'autre') {
             $localisation[] = $fetch['nomVille'];
         }
         $tableau->addValue(stripslashes(implode(" - ", $localisation)));
     }
     $html .= "<form name='formListe' id='formListe' enctype='multipart/form-data' method='POST'>";
     $html .= "Recherche : <input type='text' name='rechercheFormulaireAdministration' id='rechercheFormulaireAdministration' value='" . $objetDeLaRecherche . "'>";
     $html .= "<input type='submit' onclick=\"document.getElementById('validationFormulaireAdministration').value='rechercheAdministration';\"><br>";
     $html .= $arrayPagination['html'] . '<br>';
     $html .= "<input type='hidden' name='pageCourantePagination' id='pageCourantePagination' value=''>";
     $html .= "<input type='hidden' name='validationFormulaireAdministration' id='validationFormulaireAdministration' value=''>";
     $html .= $tableau->createHtmlTableFromArray(4);
     $html .= "<input type='submit' value='Supprimer la selection' onclick=\"document.getElementById('validationFormulaireAdministration').value='suppression';\" name='supprimer'>";
     $html .= "<input type='button' name='ajouter' value='ajouter' onclick=\"location.href='" . $this->creerUrl('', 'ajoutNouvelleAdresse', array('typeNew' => 'newSousQuartier')) . "';\">";
     $html .= "</form>";
     return $html;
 }