Пример #1
0
 case 'deconnexion':
     $auth = new archiAuthentification();
     $auth->deconnexion();
     break;
 case 'validInscription':
     $inscription = new archiAuthentification();
     $inscription->inscription();
     break;
 case 'handleFormulaireContact':
     $formulaire = new formGenerator();
     $formulaire->gestionRetour('envoiMailAdmin', $configFormContact);
     break;
 case 'enregistreCommentaire':
     $a = new archiAdresse();
     $a->enregistreCommentaire();
     if (!$authentification->estConnecte()) {
         echo "<SCRIPT>";
         echo "alert('" . _("Merci pour votre commentaire.") . "\\n" . _("Vous allez recevoir un mail contenant un lien " . "permettant de valider le commentaire.") . "\\n" . "A bientôt !')";
         echo "</SCRIPT>";
     }
     break;
 case 'enregistreCommentaireEvenement':
     $a = new archiEvenement();
     $a->enregistreCommentaireEvenement();
     /*if (!$authentification->estConnecte()) {
      		echo "<SCRIPT>";
      		echo "alert('"._("Merci pour votre commentaire.")."\\n".
      				_(
      						"Vous allez recevoir un mail contenant un lien ".
      						"permettant de valider le commentaire."
      				).
 public function enregistreCommentaire()
 {
     $auth = new archiAuthentification();
     $fieldsCommentaires = $this->getCommentairesFields();
     $formulaire = new formGenerator();
     if ($auth->estConnecte()) {
         unset($fieldsCommentaires['captcha']);
     }
     $error = $formulaire->getArrayFromPost($fieldsCommentaires);
     if (count($error) == 0) {
         $idUtilisateur = 0;
         if ($auth->estConnecte()) {
             $idUtilisateur = $auth->getIdUtilisateur();
             // suite au SPAM mise en place d'un champ CommentaireValide 0/1 (by fabien 13/01/2012)
             $CommentaireValide = 1;
             $user = new archiUtilisateur();
             $userInfos = $user->getArrayInfosFromUtilisateur($idUtilisateur);
         } else {
             $CommentaireValide = 0;
         }
         // enregistrement du nouveau commentaire
         //$req = "insert into commentaires (nom,prenom,email,commentaire,idEvenementGroupeAdresse,date,idUtilisateur) values (\"".addslashes(strip_tags($this->variablesPost['nom']))."\",\"".addslashes(strip_tags($this->variablesPost['prenom']))."\",\"".addslashes(strip_tags($this->variablesPost['email']))."\",\"".addslashes(strip_tags($this->variablesPost['commentaire']))."\",'".$this->variablesPost['idEvenementGroupeAdresse']."',now(),'".$idUtilisateur."')";
         $nom = $auth->estConnecte() ? $userInfos["nom"] : $this->variablesPost['nom'];
         $prenom = $auth->estConnecte() ? $userInfos["prenom"] : $this->variablesPost['prenom'];
         $email = $auth->estConnecte() ? $user->getMailUtilisateur($idUtilisateur) : $this->variablesPost['email'];
         $uniqid = uniqid(null, true);
         $req = "INSERT INTO commentaires (nom, prenom, email, commentaire, idEvenementGroupeAdresse, date, idUtilisateur, CommentaireValide, uniqid) VALUES ('" . mysql_real_escape_string(strip_tags($nom)) . "', '" . mysql_real_escape_string(strip_tags($prenom)) . "', '" . mysql_real_escape_string(strip_tags($email)) . "', '" . mysql_real_escape_string(strip_tags($this->variablesPost['commentaire'])) . "', '" . mysql_real_escape_string($this->variablesPost['idEvenementGroupeAdresse']) . "', now(), '" . mysql_real_escape_string($idUtilisateur) . "'," . mysql_real_escape_string($CommentaireValide) . ", '" . mysql_real_escape_string($uniqid) . "')";
         $res = $this->connexionBdd->requete($req);
         $idCommentaire = mysql_insert_id();
         // retour a l'affichage de l'adresse
         $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesPost['idEvenementGroupeAdresse']);
         // ************************************************************************************************************************************************
         // envoi d'un mail a tous les participants pour le groupe d'adresse
         // ************************************************************************************************************************************************
         $mail = new mailObject();
         $utilisateur = new archiUtilisateur();
         $arrayUtilisateurs = $utilisateur->getParticipantsCommentaires($this->variablesPost['idEvenementGroupeAdresse']);
         $arrayCreatorAdresse = $utilisateur->getCreatorsFromAdresseFrom($this->variablesPost['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
         $arrayUtilisateurs = array_merge($arrayUtilisateurs, $arrayCreatorAdresse);
         $arrayUtilisateurs = array_unique($arrayUtilisateurs);
         $intituleAdresse = $this->getIntituleAdresseFrom($idAdresse, 'idAdresse');
         foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) {
             if ($idUtilisateurAdresse != $auth->getIdUtilisateur()) {
                 $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse);
                 if ($infosUtilisateur['alerteCommentaires'] == '1' && $infosUtilisateur['compteActif'] == '1' && $infosUtilisateur['idProfil'] != '4') {
                     $message = "Un utilisateur a ajouté un commentaire sur une adresse ou vous avez participé.";
                     $message .= "Pour vous rendre sur l'adresse : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'])) . '#commentaireAdresse' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>";
                     $message .= $this->getMessageDesabonnerAlerteMail();
                     $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Ajout d\'un commentaire sur une adresse sur laquelle vous avez participé.', $message, true);
                 }
             }
         }
         // ************************************************************************************************************************************************
         // envoi d'un mail aux administrateur pour la moderation
         $message = "Merci d'avoir laissé un commentaire sur Archi-Strasbourg.<br>";
         $message .= "Afin qu'il soit publié, merci de le valider en cliquant sur ";
         $message .= "<a href='" . $this->getUrlRacine() . "script/validateEmail.php?uniqid=" . urlencode($uniqid) . "'>ce lien</a>.<br>";
         $message .= "<br/>Cordialement,</br>";
         $mail = new mailObject();
         $envoyeur['envoyeur'] = $mail->getSiteMail();
         $envoyeur['replyTo'] = strip_tags($this->variablesPost['email']);
         $u = new archiUtilisateur();
         if (!$CommentaireValide) {
             $mail->sendMail($envoyeur['envoyeur'], $this->variablesPost['email'], 'Votre commentaire sur Archi-Strasbourg', $message, true);
         } else {
             $message = "Un utilisateur a ajouté un commentaire sur archiV2 : <br>";
             $message .= "nom ou pseudo : " . strip_tags($this->variablesPost['nom']) . "<br>";
             $message .= "prenom : " . strip_tags($this->variablesPost['prenom']) . "<br>";
             $message .= "email : " . strip_tags($this->variablesPost['email']) . "<br>";
             $message .= "commentaire : " . stripslashes(strip_tags($this->variablesPost['commentaire'])) . "<br>";
             $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'], 'archiIdAdresse' => $idAdresse)) . '#commentaireAdresse' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>";
             $mail->sendMailToAdministrators($envoyeur, 'Un utilisateur a ajouté un commentaire', $message, " AND alerteCommentaires='1' ", true, true);
             // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere
             $arrayVilles = array();
             $arrayVilles[] = $this->getIdVilleFrom($idAdresse, 'idAdresse');
             $arrayVilles = array_unique($arrayVilles);
             $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteCommentaires='1' "));
             if (count($arrayListeModerateurs) > 0) {
                 foreach ($arrayListeModerateurs as $indice => $idModerateur) {
                     if ($auth->getIdUtilisateur() != $idModerateur) {
                         $mailModerateur = $u->getMailUtilisateur($idModerateur);
                         $mail->sendMail($mail->getSiteMail(), $mailModerateur, 'Un utilisateur a ajouté un commentaire', $message, true);
                     }
                 }
             }
         }
         // remise a zero des variables en post sinon on va reafficher les infos
         $_POST['commentaire'] = "";
         $_POST['email'] = "";
         $_POST['nom'] = "";
         $_POST['prenom'] = "";
         $this->variablesGet['archiIdEvenementGroupeAdresse'] = $this->variablesPost['idEvenementGroupeAdresse'];
         $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresse']);
         $this->messages->addConfirmation("Commentaire enregistré !");
         $this->messages->display();
         header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresse']), false, false) . '#commentaireAdresse' . $idCommentaire);
     } else {
         $this->messages->addError("Il y a une erreur dans le formulaire.");
         $this->messages->display();
         echo $this->getListeCommentaires($this->variablesPost['idEvenementGroupeAdresse']);
         echo $this->getFormulaireCommentaires($this->variablesPost['idEvenementGroupeAdresse'], $fieldsCommentaires);
     }
 }
Пример #3
0
}
$arrayIdVilleGeneral = array();
if ($session->isInSession('archiIdVilleGeneral') && $session->getFromSession('archiIdVilleGeneral') != '' && $session->getFromSession('archiIdVilleGeneral') != '1') {
    $arrayIdVilleGeneral['archiIdVilleGeneral'] = $session->getFromSession('archiIdVilleGeneral');
}
$listPages = archiPage::getListMenu(LANG);
$htmlListPages = "";
foreach ($listPages as $page) {
    $htmlListPages .= "<li><a href='index.php?archiAffichage=page&idPage=" . $page["id"] . "'>" . $page["title"] . "</a></li>";
}
// liens
$t->assign_vars(array('listeUtilisateurs' => $config->creerUrl('', 'utilisateurListe'), 'administration' => $config->creerUrl('', 'administration'), 'seDeconnecter' => $config->creerUrl('deconnexion', 'authentification'), 'recherche' => $config->creerUrl('', 'recherche'), 'edito' => $config->creerUrl('', 'edito'), 'quiSommesNous' => $config->creerUrl('', 'quiSommesNous'), 'faq' => $config->creerUrl('', 'faq'), 'inscription' => $config->creerUrl('', 'inscription'), 'listeDossiers' => $config->creerUrl('', 'listeDossiers', $arrayIdVilleGeneral), 'ajoutNouveauDossier' => $config->creerUrl('', 'ajoutNouveauDossier'), "ajoutNouvellePersonne" => $config->creerUrl("", "ajoutNouvelPersonne"), 'contact' => $config->creerUrl('', 'contact'), 'urlMotDePasseOublie' => $config->creerUrl('', 'formulaireMotDePasseOublie'), 'publiciteMedias' => $config->creerUrl('', 'publiciteArticlesPresse'), 'nosSources' => $config->creerUrl('', 'nosSources'), 'faireUnDon' => $config->creerUrl('', 'faireUnDon'), 'ajaxFunctions' => $ajax->getAjaxFunctions(), 'calqueFunctions' => "<script  >" . $calque->getJSFunctionContextualHelp() . " " . $i->getJsSetOpacityFunction(array('noBalisesJs' => true)) . "</script>", 'titrePage' => stripslashes($titre), 'descriptionPage' => $description, 'motsCle' => $motsCle, 'urlCheminSite' => $recherche->getHtmlArborescence(), 'titreSite' => $titreSite, 'parcours' => $config->creerUrl('', 'parcours'), 'jsHeader' => $headerJS, "lang" => LANG, "lang_short" => substr(LANG, 0, 2), "listPages" => $htmlListPages, "urlOpendata" => $config->creerUrl('', 'lienOpendata')));
// headerJS = variables contenant le javascript recupéré des fonctions du site que l'on collecte et que l'on place dans la balise header
$labelConnexion = _("Connexion");
$imgConnexion = "images/logo_connexion.png";
if ($authentification->estConnecte() !== true) {
    // utilisateur pas connecté
    $t->assign_block_vars('utilisateurNonConnecte', array());
    if ($authentification->estConnecte()) {
        $t->assign_vars(array('etatConnexion' => _("Vous êtes connecté!")));
    } else {
        $t->assign_vars(array('etatConnexion' => _("Vous n'êtes pas connecté")));
    }
    $t->assign_vars(array('formulaireConnexion' => $authentification->afficheFormulaireAuthentification('compact'), 'formulaireRecherche' => $recherche->afficheFormulaire(array(), 0, array('noDisplayRechercheAvancee' => false, 'noDisplayCheckBoxResultatsCarte' => false)), 'inscriptionDeconnexion' => _("Inscrivez-vous !"), 'urlInscriptDeconnexion' => $config->creerUrl('', 'inscription'), 'urlAccueil' => $config->creerUrl('', 'afficheAccueil'), 'txtAccueil' => 'Accueil', 'classAuthLinkWrapper' => 'notConnectedAuthLink'));
    $t->assign_block_vars('linkConnected', array('authLinkOneClass' => ' authLinkOneClass forgetPasswordLabel', 'authLinkUrl' => $config->creerUrl('', 'formulaireMotDePasseOublie'), 'authLinkLabel' => 'Mot de passe oublié ?'));
    $t->assign_block_vars('linkConnected', array('authLinkOneClass' => 'authLinkTwoClass subscribeLabel', 'authLinkUrl' => $config->creerUrl('', 'inscription'), 'authLinkLabel' => 'Inscrivez-vous !'));
} else {
    if ($authentification->estAdmin()) {
        $t->assign_block_vars('isAdmin', array());
    }
    // utilisateur connecté
    /**
     * Display html details of a single event
     *
     * @param unknown $idEvenement : id of the event to display
     * @return string : html of the detail event
     */
    public function getEventInfos($idEvenement, $params = array())
    {
        $authentification = new archiAuthentification();
        $evenements = array();
        /*
         * Data processing
         */
        $requete = 'SELECT

				hE.idEvenement,
				hE.titre,
				hE.idSource,
				hE.idTypeStructure,
				hE.idTypeEvenement,
				hE.description,
				hE.dateDebut,
				hE.dateFin,
				hE.dateDebut,
				hE.dateFin,
				tE.nom AS nomTypeEvenement,
				tS.nom AS nomTypeStructure,
				s.nom AS nomSource,
				u.nom AS nomUtilisateur,
				u.prenom as prenomUtilisateur,
				tE.groupe,
				hE.ISMH ,
				hE.MH,
				date_format(hE.dateCreationEvenement,"' . _("%e/%m/%Y à %kh%i") . '") as dateCreationEvenement,
				hE.isDateDebutEnviron as isDateDebutEnviron,
				u.idUtilisateur as idUtilisateur,
				hE.numeroArchive as numeroArchive,
				ae.idAdresse,
				ha.idVille,
				ee.idEvenement as idEvenementGroupeAdresse

				FROM evenements hE
				LEFT JOIN source s      ON s.idSource = hE.idSource
				LEFT JOIN typeStructure tS  ON tS.idTypeStructure = hE.idTypeStructure
				LEFT JOIN typeEvenement tE  ON tE.idTypeEvenement = hE.idTypeEvenement
				LEFT JOIN utilisateur u     ON u.idUtilisateur = hE.idUtilisateur

				LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie =' . $idEvenement . '
				LEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement
				LEFT JOIN historiqueAdresse ha on ha.idAdresse= ae.idAdresse

				WHERE hE.idEvenement=' . $idEvenement . '
				ORDER BY hE.idEvenement DESC
				LIMIT 1';
        if ($params['type'] == 'historique') {
            $requete = 'SELECT

				hE.idEvenement,
				hE.titre,
				hE.idSource,
				hE.idTypeStructure,
				hE.idTypeEvenement,
				hE.description,
				hE.dateDebut,
				hE.dateFin,
				hE.dateDebut,
				hE.dateFin,
				tE.nom AS nomTypeEvenement,
				tS.nom AS nomTypeStructure,
				s.nom AS nomSource,
				s.description as descriptionSource,
				u.nom AS nomUtilisateur,
				u.prenom as prenomUtilisateur,
				tE.groupe,
				hE.ISMH ,
				hE.MH,
				date_format(hE.dateCreationEvenement,"' . _("%e/%m/%Y à %kh%i") . '") as dateCreationEvenement,
				hE.isDateDebutEnviron as isDateDebutEnviron,
				u.idUtilisateur as idUtilisateur,
				hE.numeroArchive as numeroArchive,
				ae.idAdresse,
				ha.idVille,
				ee.idEvenement as idEvenementGroupeAdresse

				FROM historiqueEvenement hE
				LEFT JOIN source s      ON s.idSource = hE.idSource
				LEFT JOIN typeStructure tS  ON tS.idTypeStructure = hE.idTypeStructure
				LEFT JOIN typeEvenement tE  ON tE.idTypeEvenement = hE.idTypeEvenement
				LEFT JOIN utilisateur u     ON u.idUtilisateur = hE.idUtilisateur

				LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = hE.idEvenement
				LEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement
				LEFT JOIN historiqueAdresse ha on ha.idAdresse= ae.idAdresse

				WHERE hE.idHistoriqueEvenement=' . $idEvenement . '
				ORDER BY hE.idHistoriqueEvenement DESC';
        }
        $result = $this->connexionBdd->requete($requete);
        $fetch = mysql_fetch_assoc($result);
        $idEvenementGroupeAdresse = $fetch['idEvenementGroupeAdresse'];
        //History processing
        $requeteHistory = "SELECT idHistoriqueEvenement from historiqueEvenement where idEvenement = " . $idEvenement;
        $resultHistory = $this->connexionBdd->requete($requeteHistory);
        if (mysql_num_rows($resultHistory) > 1) {
            $txtEnvoi = "modifié";
        } else {
            $txtEnvoi = "envoyé";
        }
        $lienHistoriqueEvenementCourant = $this->creerUrl('', 'consultationHistoriqueEvenement', array('archiIdEvenement' => $idEvenement));
        $labelHistoriqueEvenement = '(Consulter l\'historique)';
        //Image processing
        $images = new archiImage();
        $arrayImagesVuesSurByDate = array();
        $imagesHTML = $images->afficherFromEvenement($idEvenement, array('withoutImagesVuesSurPrisesDepuis' => true, 'imagesVuesSurLinkedByDate' => $arrayImagesVuesSurByDate, 'idGroupeAdresseEvenementAffiche' => $idEvenementGroupeAdresse));
        if ($params['type'] == 'historique') {
            $req = "\n\t\t\t\t\t\t\t\tSELECT e.dateDebut, ae1.idAdresse\n\t\t\t\t\t\t\t\tFROM _adresseEvenement ae1,_adresseEvenement ae2\n\t\t\t\t\t\t\t\tLEFT JOIN historiqueEvenement e on e.idEvenement= ae2.idEvenement\n\t\t\t\t\t\t\t\tWHERE ae1.idAdresse= ae2.idAdresse\n\t\t\t\t\t\t\t\tAND e.idHistoriqueEvenement =" . $idEvenement . "\n\t\t\t\t\t\t\t\t\t\tORDER BY e.idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t";
        } else {
            $req = "\n\t\t\t\t\t\t\t\tSELECT e.dateDebut, ae1.idAdresse\n\t\t\t\t\t\t\t\tFROM _adresseEvenement ae1,_adresseEvenement ae2\n\t\t\t\t\t\t\t\tLEFT JOIN evenements e on e.idEvenement= ae2.idEvenement\n\t\t\t\t\t\t\t\tWHERE ae1.idAdresse= ae2.idAdresse\n\t\t\t\t\t\t\t\tAND ae1.idEvenement =" . $idEvenement . "\n\t\t\t\t\t\t\t\t\t\tORDER BY e.idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t";
        }
        $res = $this->connexionBdd->requete($req);
        $date2 = mysql_fetch_object($res);
        $idAdresse = $fetch['idAdresse'];
        $linkedEventsHTML = archiPersonne::displayEvenementsLies($idPerson, $dateDebut, $date2->dateDebut);
        //Personne processing
        if ($params['type'] == 'historique') {
            $rep = $this->connexionBdd->requete('
						SELECT  p.idPersonne, m.nom as metier, p.nom, p.prenom
						FROM _evenementPersonne _eP
						LEFT JOIN personne p ON p.idPersonne = _eP.idPersonne
						LEFT JOIN metier m ON m.idMetier = p.idMetier
						LEFT JOIN historiqueEvenement he on he.idEvenement = _eP.idEvenement
						WHERE he.idHistoriqueEvenement=' . $idEvenement . '
						ORDER BY p.nom DESC');
        } else {
            $rep = $this->connexionBdd->requete('
						SELECT  p.idPersonne, m.nom as metier, p.nom, p.prenom
						FROM _evenementPersonne _eP
						LEFT JOIN personne p ON p.idPersonne = _eP.idPersonne
						LEFT JOIN metier m ON m.idMetier = p.idMetier
						WHERE _eP.idEvenement=' . $idEvenement . '
						ORDER BY p.nom DESC');
        }
        $metier = "";
        $arrayPersonne = array();
        while ($res = mysql_fetch_object($rep)) {
            $personne = array();
            if (isset($res->metier) && $res->metier != '') {
                $metier = $res->metier . ' : ';
            }
            $arrayPersonne[] = array('evenement.pers', array('urlDetail' => $this->creerUrl('', 'personne', array('idPersonne' => $res->idPersonne)), 'urlEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $res->idPersonne)), 'nom' => ucfirst(stripslashes($res->nom)), 'prenom' => ucfirst(stripslashes($res->prenom)), 'metier' => ucfirst(stripslashes($metier)), 'idPerson' => $res->idPersonne, 'idEvent' => $idEvenement));
        }
        /*
         *  COURANTS ARCHI
         */
        $rep = $this->connexionBdd->requete('
						SELECT  cA.idCourantArchitectural, cA.nom
						FROM _evenementCourantArchitectural _eA
						LEFT JOIN courantArchitectural cA  ON cA.idCourantArchitectural  = _eA.idCourantArchitectural
						WHERE _eA.idEvenement=' . $idEvenement . '
						ORDER BY cA.nom ASC');
        $arrayCourantArchi = array();
        if (mysql_num_rows($rep) > 0) {
            $arrayCourantArchi[] = array('evenement.isCourantArchi', array());
            while ($res = mysql_fetch_object($rep)) {
                $arrayCourantArchi[] = array('evenement.isCourantArchi.archi', array('url' => $this->creerUrl('', 'evenementListe', array('selection' => 'courant', 'id' => $res->idCourantArchitectural)), 'nom' => $res->nom));
            }
        }
        //Commentaires
        $formulaireCommentaire = $this->getFormComment($idEvenement, $this->getCommentairesFields('evenement'), 'evenement');
        $listeCommentaires = $this->getListCommentairesEvenements($idEvenement);
        //Adresses liees processing
        $adressesLieesHTML = $this->getAdressesLieesAEvenement(array('modeRetour' => 'affichageSurDetailEvenement', 'idEvenement' => $idEvenementGroupeAdresse));
        if ($adressesLieesHTML != '') {
            $adressesLieesHTML = "<b>" . _("Liste des adresses liées :") . "</b> <br>" . $adressesLieesHTML;
        }
        //Date processing
        $dateTxt = $this->getDateAsString($fetch);
        if (!empty($fetch['description']) && $fetch['description'] != '') {
            //Description processing : BBCode parsing
            $bbCode = new bbCodeObject();
            $description = $bbCode->convertToDisplay(array('text' => $fetch['description'], 'idEvenement' => $idEvenement));
            $description = empty($description) ? "" : "<div itemprop='description' class='desc'>" . $description . "</div>";
        }
        //User
        $idUtilisateur = $fetch['idUtilisateur'];
        $utilisateur = "<a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $idUtilisateur, 'archiIdEvenementGroupeAdresseOrigine' => $idEvenementGroupeAdresse)) . "'>" . $fetch['prenomUtilisateur'] . " " . $fetch['nomUtilisateur'] . "</a>";
        //Event type
        $urlTypeEvenement = $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $fetch['idTypeEvenement']));
        $nomTypeEvenement = $fetch['nomTypeEvenement'];
        $lienTypeEvenement = "<a href={$urlTypeEvenement}>{$nomTypeEvenement}</a>";
        //Structure type
        $urlTypeStructure = $this->creerUrl('', 'listeStructure', array('idTypeStructure' => $fetch['idTypeStructure']));
        $nomTypeStructure = $fetch['nomTypeStructure'];
        $typeStructure = "<a href=\"{$urlTypeStructure}\">{$nomTypeStructure}</a> ";
        //Source
        $source = "";
        if (isset($fetch['nomSource']) && $fetch['nomSource'] != '') {
            $source = "Source : <a href='" . $this->creerUrl('', 'listeAdressesFromSource', array('source' => $fetch['idSource'], 'submit' => 'Rechercher')) . "' onmouseover=\"document.getElementById('calqueDescriptionSource').style.top=(getScrollHeight()+150)+'px';\n\t\t\t\t\t\t\tdocument.getElementById('calqueDescriptionSource').style.display='block';\n\t\t\t\t\t\t\tdocument.getElementById('iframe').src='" . $this->creerUrl('', 'descriptionSource', array('archiIdSource' => $fetch['idSource'], 'noHeaderNoFooter' => 1)) . "';\"\n\t\t\t\t\t\t\t\t\t>" . stripslashes($fetch['nomSource']) . "\n\t\t\t\t\t</a><br>";
        }
        //Info used for menu display
        $cityId = $fetch['idVille'];
        $isModerateur = true;
        $isAdmin = true;
        $u = new archiUtilisateur();
        $userId = $authentification->getIdUtilisateur();
        $urlProfilPic = $u->getImageAvatar(array('idUtilisateur' => $idUtilisateur));
        $isModerateur = $u->isModerateurFromVille($userId, $cityId, 'idVille');
        $isAdmin = $u->getIdProfil($userId) == '4';
        $urlMenuAction = array('ajouterImage' => $this->creerUrl('', 'ajoutImageEvenement', array('archiIdEvenement' => $idEvenement)), 'modifierImage' => $this->creerUrl('', 'modifierImageEvenement', array('archiIdEvenement' => $idEvenement)), 'modifierEvenement' => $this->creerUrl('', 'modifierEvenement', array('archiIdEvenement' => $idEvenement, 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGroupeAdresse'], 'archiIdAdresse' => $fetch['idAdresse'])), 'supprimerEvenement' => $this->creerUrl('supprimerEvenement', '', array('archiIdEvenement' => $idEvenement)), 'urlImporterImage' => "#", 'onClickImporterImage' => "document.getElementById('formulaireEvenement').action='" . $this->creerUrl('deplacerImagesSelectionnees', 'evenement', array('idEvenement' => $idEvenement)) . "&deplacerVersIdEvenement=" . $res->idEvenement . "';document.getElementById('actionFormulaireEvenement').value='deplacerImages';if(confirm('Voulez-vous vraiment déplacer ces images ?')){document.getElementById('formulaireEvenement').submit();}", 'onClickSupprimerImage' => "document.getElementById('formulaireEvenement').action='" . $this->creerUrl('supprimerImagesSelectionnees', 'evenement', array('idEvenement' => $idEvenement)) . "';document.getElementById('actionFormulaireEvenement').value='supprimerImages';if(confirm('Voulez-vous vraiment supprimer ces images ?')){document.getElementById('formulaireEvenement').submit();}", 'lierAdresse' => $this->creerUrl('', 'afficheFormulaireEvenementAdresseLiee', array('idEvenement' => $idEvenement)), 'versAdresse' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $idEvenement)), 'plusCreer' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $idEvenement)));
        $numeroArchive = "";
        if ($fetch['numeroArchive'] != '') {
            // modif fabien du 15/04/2011 suite mail directrice Archives de Strasbourg Mme Perry Laurence
            $numeroArchive = "Cote Archives de Strasbourg : " . $fetch['numeroArchive'] . "";
        }
        // si on est en mode de deplacement d'image
        // ou de selection de titre
        // on rajoute le formulaire sur la page
        if ($authentification->estConnecte() && (isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1' || isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1')) {
            $arrayFormEvenement = array('formEvenement', array());
        }
        /*
         * Template filling
         */
        //Unset some stuff for historic
        if ($params['type'] == 'historique') {
            unset($listeCommentaires);
            unset($formulaireCommentaire);
            unset($lienHistoriqueEvenementCourant);
            unset($labelHistoriqueEvenement);
        }
        $evenementData = array('titre' => stripslashes($fetch['titre']), 'infoTitre' => $utilisateur . " a " . $txtEnvoi . " un événement", 'txtEnvoi' => $txtEnvoi . " le", 'utilisateur' => $fetch['prenomUtilisateur'] . ' ' . $fetch['nomUtilisateur'], 'urlProfilPic' => $urlProfilPic, 'dateEnvoi' => $fetch['dateCreationEvenement'], 'lienHistoriqueEvenementCourant' => $lienHistoriqueEvenementCourant, 'labelLienHistorique' => $labelHistoriqueEvenement, 'dates' => $dateTxt, 'source' => $source, 'labelStructure' => "Structure  : ", 'typeStructure' => $typeStructure, 'labelTypeEvenement' => 'Type d\'Événement : ', 'urlTypeEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $fetch['idTypeEvenement'])), 'lienTypeEvenement' => $lienTypeEvenement, 'typeEvenement' => $fetch['nomTypeEvenement'], 'numeroArchive' => $numeroArchive, 'description' => $description, 'imagesLiees' => $imagesHTML, 'evenementsParents' => '', 'listeAdressesLiees' => $adressesLieesHTML, 'evenementsLiesPersonne' => $linkedEventsHTML, 'idEvenement' => $idEvenement, 'listeCommentaireEvenement' => $listeCommentaires, 'formulaireCommentaireEvenement' => $formulaireCommentaire);
        //}//End while($fetch = mysql_fetch_assoc($result))
        $evenements[] = $evenementData;
        /*
         * Useless now, but might be need futher if
         *	this function is reused and should not display menu action
         */
        $afficherMenu = $authentification->estConnecte();
        $allowSuppressImage = false;
        //Set to false now, image suppression isn't implemented
        if ($params['type'] == 'historique') {
            $afficherMenu = false;
        }
        $menuArray = array();
        if ($afficherMenu) {
            $menuArray[] = array('evenement.menuAction', array());
            $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Ajouter', 'urlAction' => $urlMenuAction['ajouterImage'], 'actionTarget' => 'Image'));
            $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Modifier', 'urlAction' => $urlMenuAction['modifierImage'], 'actionTarget' => 'Image'));
            $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => $urlMenuAction['modifierEvenement'], 'actionTarget' => 'Événement'));
        }
        if ($isModerateur || $isAdmin) {
            $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Supprimer', 'urlAction' => '#', 'actionTarget' => 'Événement'));
            $menuArray[] = array('evenement.menuAction.rowName.confirmMessage', array('message' => 'Voulez vous vraiment supprimer cet événement ?', 'url' => $urlMenuAction['supprimerEvenement']));
            if ($isAdmin && $allowSuppressImage) {
                $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => '#', 'actionTarget' => 'Image'));
                $menuArray[] = array('evenement.menuAction.rowName.secondAction.confirmMessage', array('message' => 'Voulez vous vraiment supprimer cette image ?', 'url' => $urlMenuAction['onClickSupprimerImage']));
            }
            if ($isAdmin) {
                $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Lier', 'urlAction' => $urlMenuAction['lierAdresse'], 'actionTarget' => 'Adresses'));
                $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Déplacer', 'urlAction' => $urlMenuAction['versAdresse'], 'actionTarget' => 'Vers adresse'));
                $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => $urlMenuAction['plusCreer'], 'actionTarget' => '+Créer'));
            }
        }
        return array('evenementData' => $evenementData, 'menuArray' => $menuArray, 'arrayPersonne' => $arrayPersonne, 'arrayFormEvent' => $arrayFormEvenement, 'arrayCourantArchi' => $arrayCourantArchi);
    }
 /**
  * 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;
 }
 /**
  * Affichage du formulaire d'ajout d'un nouveau dossier (groupe d'adresse + evenement construction)
  * 
  * @param array  $parametres Paramètres
  * @param string $type       Type (adresse ou personne)
  * 
  * @return void
  * */
 public function afficheFormulaireNouveauDossier($parametres = array(), $type = "adresse")
 {
     $html = "";
     // initialisation de l'objet googlemap pour la recuperation des coordonnees
     $paramsGoogleMap = array('googleMapKey' => $this->googleMapKey);
     $googleMap = new googleMap($paramsGoogleMap);
     $html .= $googleMap->getJsFunctions();
     $html .= $googleMap->getJSInitGeoCoder();
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('nouveauDossier' => 'nouveauDossier.tpl'));
     if ($type == "personne") {
         $formAction = "ajoutNouvelPersonne";
         $t->assign_block_vars("ajoutPersonne", array());
         $resJobs = $this->connexionBdd->requete("SELECT * FROM `metier`");
         $jobList = "";
         while ($job = mysql_fetch_assoc($resJobs)) {
             if (!empty($job["nom"])) {
                 $jobList .= "<option value='" . $job["idMetier"] . "'";
                 if (isset($_POST["metier"]) && $job["idMetier"] == $_POST["metier"]) {
                     $jobList .= " selected='selected' ";
                 }
                 $jobList .= ">" . $job["nom"] . "</option>";
             }
         }
         $t->assign_vars(array('titrePage' => _("Ajout d'une nouvelle personne (physique ou morale)"), "jobList" => $jobList, "typeBoutonValidation" => "submit"));
         if (!empty($_POST) && !isset($_POST["archiLogin"])) {
             $t->assign_vars(array("firstname" => $_POST["prenom"], "name" => $_POST["nom"], "birth" => $_POST["dateNaissance"], "death" => $_POST["dateDeces"], "desc" => $_POST["descriptionPerson"]));
         }
     } else {
         $formAction = "ajoutNouveauDossier";
         if (!isset($arrayJsCoordonneesFromGoogleMap['jsFunctionCall'])) {
             $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'] = 0;
         }
         // assignation du titre de la page
         $t->assign_vars(array('titrePage' => _("Ajout d'une nouvelle adresse"), 'typeBoutonValidation' => "submit"));
         // ********
         // on affiche la partie ajout d'une adresse
         $t->assign_block_vars('isNotAjoutSousEvenement', array());
         // ********
     }
     // ********
     // on affiche la partie "ajout d'un evenement"
     $t->assign_block_vars('afficheAjoutEvenement', array());
     // *******
     // ******
     // si la personne n'est pas admin elle verra une version simplifiée du formulaire
     $authentification = new archiAuthentification();
     $u = new archiUtilisateur();
     if ($authentification->estConnecte() && ($authentification->estAdmin() || $u->canAddWithoutStreet(array('idUtilisateur' => $authentification->getIdUtilisateur())))) {
         $t->assign_block_vars('afficheAjoutEvenement.isAdmin', array());
         $t->assign_vars(array("displayQuartiers" => 'table-row'));
         $t->assign_vars(array("displaySousQuartiers" => 'table-row'));
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotAdmin', array());
         $t->assign_vars(array("displayQuartiers" => 'none'));
         $t->assign_vars(array("displaySousQuartiers" => 'none'));
     }
     // ******
     $typeStructure = 0;
     if (isset($this->variablesPost['typeStructure']) && $this->variablesPost['typeStructure'] != '') {
         $typeStructure = $this->variablesPost['typeStructure'];
     }
     $groupeTypeEvenement = 2;
     // par defaut on selectionne les evenement de type 'travaux'
     if (isset($this->variablesPost['typeGroupeEvenement']) && $this->variablesPost['typeGroupeEvenement'] != '') {
         $groupeTypeEvenement = $this->variablesPost['typeGroupeEvenement'];
     }
     $typeEvenement = 0;
     if (isset($this->variablesPost['typeEvenement']) && $this->variablesPost['typeEvenement'] != '') {
         $typeEvenement = $this->variablesPost['typeEvenement'];
     }
     if (!(isset($this->variablesPost['typeEvenement']) && $this->variablesPost['typeEvenement'] != '') && isset($this->variablesGet['archiOptionAjoutDossier']) && $this->variablesGet["archiOptionAjoutDossier"] == "nouvelleDemolition") {
         $groupeTypeEvenement = 2;
         // travaux
         $typeEvenement = 6;
     }
     if (!(isset($this->variablesPost['typeEvenement']) && $this->variablesPost['typeEvenement'] != '') && isset($this->variablesGet['archiOptionAjoutDossier']) && $this->variablesGet["archiOptionAjoutDossier"] == "nouvelEvenementCulturel") {
         $groupeTypeEvenement = 1;
         // travaux
         $typeEvenement = 0;
     }
     $ISMH = false;
     if (isset($this->variablesPost['ISMH'])) {
         $ISMH = true;
     }
     $MH = false;
     if (isset($this->variablesPost['MH'])) {
         $MH = true;
     }
     $isDateDebutEnviron = false;
     if (isset($this->variablesPost['isDateDebutEnviron'])) {
         $isDateDebutEnviron = true;
     }
     $personnes = array();
     if (isset($this->variablesPost['personnes']) && count($this->variablesPost['personnes']) > 0) {
         $personnes = $this->variablesPost['personnes'];
     }
     $ville = 0;
     if (isset($this->variablesPost['ville']) && $this->variablesPost['ville'] != '0' && $this->variablesPost['ville'] != '') {
         $ville = $this->variablesPost['ville'];
     }
     // ***********************************************************************************
     // recuperation des valeurs des champs textes du formulaire validé,  les autres champs sont mis en place individuellement
     $listeChamps = array('titre', 'source', 'sourcetxt', 'dateDebut', 'dateFin', 'nbEtages', 'description', 'ville', 'villetxt');
     foreach ($listeChamps as $indice => $fieldName) {
         if (isset($this->variablesPost[$fieldName]) && $this->variablesPost[$fieldName] != '') {
             $t->assign_vars(array($fieldName => $this->variablesPost[$fieldName]));
         }
     }
     // gestion du favori de la ville ou si on a une ville generale courante
     if ($ville == '0' && !isset($this->variablesGet['archiIdVilleGeneral'])) {
         $reqVilleTxt = "select nom from ville where idVille = '" . $this->session->getFromSession('idVilleFavoris') . "'";
         $resVilleTxt = $this->connexionBdd->requete($reqVilleTxt);
         $fetchVilleTxt = mysql_fetch_assoc($resVilleTxt);
         $t->assign_vars(array('ville' => $this->session->getFromSession('idVilleFavoris'), 'villetxt' => $fetchVilleTxt['nom']));
         $ville = $this->session->getFromSession('idVilleFavoris');
     } elseif (isset($this->variablesGet['archiIdVilleGeneral'])) {
         $reqVilleTxt = "select nom from ville where idVille = '" . $this->variablesGet['archiIdVilleGeneral'] . "'";
         $resVilleTxt = $this->connexionBdd->requete($reqVilleTxt);
         $fetchVilleTxt = mysql_fetch_assoc($resVilleTxt);
         $t->assign_vars(array('ville' => $this->variablesGet['archiIdVilleGeneral'], 'villetxt' => $fetchVilleTxt['nom']));
         $ville = $this->variablesGet['archiIdVilleGeneral'];
     }
     // ***********************************************************************************
     // si un idVille existe sur le formulaire ,  on affiche les quartiers correspondants
     if ($ville != 0) {
         $resQuartiers = $this->connexionBdd->requete("select idQuartier,  nom from quartier where idVille = '" . $ville . "' order by nom");
         while ($fetchQuartiers = mysql_fetch_assoc($resQuartiers)) {
             $selected = "";
             if (isset($this->variablesPost['quartiers']) && $this->variablesPost['quartiers'] != '0' && $fetchQuartiers['idQuartier'] == $this->variablesPost['quartiers']) {
                 $selected = " selected";
             }
             if ($fetchQuartiers['nom'] != 'autre') {
                 if ($type == "personne") {
                 } else {
                     $t->assign_block_vars("isNotAjoutSousEvenement.quartiers", array('id' => $fetchQuartiers['idQuartier'], 'nom' => $fetchQuartiers['nom'], 'selected' => $selected));
                 }
             }
         }
     }
     // ***********************************************************************************
     // si on a des personnes selectionnees ,  on les ajoute
     $d = new droitsObject();
     $u = new archiUtilisateur();
     if ($d->isAuthorized('personne_sur_evenement_ajouter', $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur()))) {
         $t->assign_vars(array("affichePersonnesBlock" => "table-row"));
     } else {
         $t->assign_vars(array("affichePersonnesBlock" => "none"));
     }
     if ($d->isAuthorized('affiche_selection_source', $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.isDisplaySource', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotDisplaySource', array());
     }
     if (count($personnes) > 0) {
         $listePersonnes = implode("', '", $personnes);
         $reqPersonnes = "select idPersonne,  nom,  prenom from personne where idPersonne in ('" . $listePersonnes . "')";
         $resPersonnes = $this->connexionBdd->requete($reqPersonnes);
         while ($fetchPersonnes = mysql_fetch_assoc($resPersonnes)) {
             $t->assign_block_vars('personnes', array('id' => $fetchPersonnes['idPersonne'], 'nom' => $fetchPersonnes['nom'] . ' ' . $fetchPersonnes['prenom'], 'selected' => " selected"));
         }
     }
     // ***********************************************************************************
     // si un idQuartier existe sur le formulaire on affiche les sous quartier correspondants
     if (isset($this->variablesPost['quartiers']) && $this->variablesPost['quartiers'] != '') {
         $resSousQuartiers = $this->connexionBdd->requete("select idSousQuartier,  nom from sousQuartier where idQuartier = '" . $this->variablesPost['quartiers'] . "' order by nom");
         while ($fetchSousQuartiers = mysql_fetch_assoc($resSousQuartiers)) {
             $selected = "";
             if (isset($this->variablesPost['sousQuartiers']) && $this->variablesPost['sousQuartiers'] != '0' && $fetchSousQuartiers['idSousQuartier'] == $this->variablesPost['sousQuartiers']) {
                 $selected = " selected";
             }
             if ($fetchSousQuartiers['nom'] != 'autre') {
                 if ($type == "personne") {
                 } else {
                     $t->assign_block_vars("isNotAjoutSousEvenement.sousQuartiers", array('id' => $fetchSousQuartiers['idSousQuartier'], 'nom' => $fetchSousQuartiers['nom'], 'selected' => $selected));
                 }
             }
         }
     }
     $numLigne = 0;
     if (isset($this->variablesPost['idUnique'])) {
         foreach ($this->variablesPost['idUnique'] as $indice => $valueIdUnique) {
             if (isset($this->variablesGet['supprAdresse']) && $this->variablesGet['supprAdresse'] == $valueIdUnique) {
                 //
             } else {
                 $arrayAdresse[$numLigne]['idAdresse'] = 0;
                 $arrayAdresse[$numLigne]['txt'] = $this->variablesPost['ruetxt'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['id'] = $this->variablesPost['rue'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['numero'] = $this->variablesPost['numero'][$valueIdUnique];
                 $arrayAdresse[$numLigne]['indicatif'] = $this->variablesPost['indicatif'][$valueIdUnique];
                 $numLigne++;
             }
         }
         if (isset($this->variablesPost['ajouterAdresse'])) {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $numLigne++;
         }
         if (count($this->variablesPost['idUnique']) == 1 && isset($this->variablesPost['enleverAdresse'])) {
             $arrayAdresse[$numLigne]['idAdresse'] = 0;
             $arrayAdresse[$numLigne]['txt'] = "";
             $arrayAdresse[$numLigne]['id'] = "";
             $arrayAdresse[$numLigne]['numero'] = "";
             $arrayAdresse[$numLigne]['indicatif'] = "";
             $numLigne++;
         }
     } else {
         $arrayAdresse[$numLigne]['idAdresse'] = 0;
         $arrayAdresse[$numLigne]['txt'] = "";
         $arrayAdresse[$numLigne]['id'] = "";
         $arrayAdresse[$numLigne]['numero'] = "";
         $arrayAdresse[$numLigne]['indicatif'] = "";
         $numLigne++;
     }
     $configArrayRetrieveCoordonneesGoogleMap = array();
     for ($i = 0; $i < $numLigne; $i++) {
         // affichage des indicatifs pour chaque adresse
         if ($type == "personne") {
         } else {
             $t->assign_block_vars("isNotAjoutSousEvenement.adresses", array('idUnique' => $i, 'onClickBoutonChoixRue' => "document.getElementById('paramChampAppelantRue').value= 'rue" . $i . "';document.getElementById('iFrameRue').src='" . $this->creerUrl('', 'afficheChoixRue', array('noHeaderNoFooter' => 1)) . "&archiIdVille='+document.getElementById('ville').value+'&archiIdQuartier='+document.getElementById('quartiers').value+'&archiIdSousQuartier='+document.getElementById('sousQuartiers').value;document.getElementById('calqueRue').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueRue').style.display='block';", "nomRue" => $arrayAdresse[$i]["txt"], "rue" => $arrayAdresse[$i]["id"], "numero" => $arrayAdresse[$i]["numero"], "onClickBoutonSupprAdresse" => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'ajoutNouveauDossier', array('supprAdresse' => $i)) . "'"));
         }
         // gestion des indicatifs de chaque adresse
         $reqIndicatif = "select idIndicatif,  nom from indicatif";
         $resIndicatif = $this->connexionBdd->requete($reqIndicatif);
         while ($fetchIndicatif = mysql_fetch_assoc($resIndicatif)) {
             $selected = "";
             if (isset($this->variablesPost['indicatif' . $i]) && $this->variablesPost['indicatif' . $i] != '' && $this->variablesPost['indicatif' . $i] == $fetchIndicatif['idIndicatif']) {
                 $selected = " selected";
             }
             if ($type == "personne") {
             } else {
                 $t->assign_block_vars("isNotAjoutSousEvenement.adresses.indicatifs", array("id" => $fetchIndicatif['idIndicatif'], "nom" => $fetchIndicatif['nom'], "selected" => $selected));
             }
         }
         $configArrayRetrieveCoordonneesGoogleMap[$i] = array('nomChampLatitudeRetour' => 'latitude_' . $i, 'nomChampLongitudeRetour' => 'longitude_' . $i, 'getAdresseFromElementById' => true, 'jsAdresseValue' => "document.getElementById('numero" . $i . "').value+' '+document.getElementById('rue" . $i . "txt').value+' '+document.getElementById('villetxt').value", 'jsToExecuteIfNoAddressFound' => "document.getElementById('latitude_" . $i . "').value='';document.getElementById('longitude_" . $i . "').value='';");
     }
     $jsToExecute = "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('ajoutNouveauDossier', '') . "';testAdresseValideAndSubmit('formAjoutDossier');";
     $arrayJsCoordonneesFromGoogleMap = $googleMap->getJSMultipleRetriveCoordonnees(array('jsToExecuteIfOK' => $jsToExecute), $configArrayRetrieveCoordonneesGoogleMap);
     $html .= $arrayJsCoordonneesFromGoogleMap['jsFunctionToExecute'];
     // **************************************************************************************
     // ***********************************************************************************
     // liste des courants architecturaux
     $resCourants = $this->connexionBdd->requete("select idCourantArchitectural, nom from courantArchitectural order by nom");
     $tableauHtml = new tableau();
     while ($fetchCourants = mysql_fetch_assoc($resCourants)) {
         $checked = "";
         if (isset($this->variablesPost["courantArchitectural"]) && in_array($fetchCourants["idCourantArchitectural"], $this->variablesPost["courantArchitectural"])) {
             $checked = " checked";
         }
         $tableauHtml->addValue("<input type='checkbox' name='courantArchitectural[]' value='" . $fetchCourants["idCourantArchitectural"] . "' " . $checked . ">&nbsp;" . $fetchCourants['nom']);
     }
     $t->assign_vars(array('listeCourantsArchitecturaux' => $tableauHtml->createHtmlTableFromArray(3, 'white-space:nowrap;border:1px solid #000000;', 'listeCourantsArchitecturaux')));
     if ($type == "adresse") {
         $t->assign_block_vars("afficheAjoutEvenement.isAddress", array());
         // ***********************************************************************************
         // les des types de structures
         $resTypeStructure = $this->connexionBdd->requete("SELECT idTypeStructure,  nom FROM typeStructure order by nom");
         while ($fetchTypeStructure = mysql_fetch_assoc($resTypeStructure)) {
             $selected = "";
             if ($typeStructure != '' && $typeStructure == $fetchTypeStructure["idTypeStructure"] || $typeStructure == "" && $fetchTypeStructure["idTypeStructure"] == $this->getIdTypeStructureImmeuble()) {
                 $selected = " selected";
             }
             if ($fetchTypeStructure["idTypeStructure"] > 0) {
                 $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesStructure', array('id' => $fetchTypeStructure["idTypeStructure"], 'nom' => $fetchTypeStructure["nom"], 'selected' => $selected));
             }
         }
     }
     // ***********************************************************************************
     // le type de groupe d'evenement
     // 1 - culturel
     // 2 - travaux
     if ($groupeTypeEvenement == '2') {
         $t->assign_vars(array('checkedTypeEvenement2' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:none;", 'styleChampsSupplementaireTravaux' => "display:block;"));
     } elseif ($groupeTypeEvenement == '1') {
         $t->assign_vars(array('checkedTypeEvenement1' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:table-row;", 'styleChampsSupplementaireTravaux' => "display:none;"));
     }
     $t->assign_vars(array('onClickTypeEvenement1' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '1')) . "', 'typeEvenement');document.getElementById('afficheChampsSupplementairesCulturel').style.display='block';document.getElementById('afficheChampsSupplementairesTravaux').style.display='none';"));
     $t->assign_vars(array('onClickTypeEvenement2' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '2')) . "', 'typeEvenement');document.getElementById('afficheChampsSupplementairesTravaux').style.display='block';document.getElementById('afficheChampsSupplementairesCulturel').style.display='none';"));
     if ($type == "adresse") {
         // ***********************************************************************************
         // les type d'evenements
         // par defaut on selectionne le typeEvenement=2 (travaux)
         $resTypeEvenement = $this->connexionBdd->requete("SELECT idTypeEvenement, nom FROM typeEvenement where groupe = '" . $groupeTypeEvenement . "'");
         while ($fetchTypeEvenement = mysql_fetch_assoc($resTypeEvenement)) {
             $selected = "";
             if ($typeEvenement != "" && $typeEvenement == $fetchTypeEvenement["idTypeEvenement"]) {
                 $selected = "selected";
             }
             $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesEvenement', array('id' => $fetchTypeEvenement['idTypeEvenement'], 'nom' => $fetchTypeEvenement['nom'], 'selected' => $selected));
         }
     }
     // ***********************************************************************************
     // ISMH   (inscrit au s des monuments historiques)
     // MH (monument historique)
     if ($ISMH) {
         $t->assign_vars(array('ISMHchecked' => ' checked'));
     }
     if ($MH) {
         $t->assign_vars(array('MHchecked' => ' checked'));
     }
     // ***********************************************************************************
     // ***********************************************************************************
     // autre cas pour l'affichage du champ numeroArchive ,  il faut que l'utilisateur soit autorisé à l'afficher => table utilisateur
     $utilisateur = new archiUtilisateur();
     if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeNumeroArchive', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeNumeroArchive', array());
     }
     // ***********************************************************************************
     // idem champ dateFin
     if ($utilisateur->canChangeDateFinField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeDateFin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeDateFin', array());
     }
     $recherche = new archiRecherche();
     $source = new archiSource();
     $onClickBoutonValider = $type == "adresse" ? "affichePopupAttente();" . $arrayJsCoordonneesFromGoogleMap['jsFunctionCall'] : "";
     $typeBoutonValidation = $type == "adresse" ? "button" : "submit";
     $t->assign_vars(array('formAction' => $this->creerUrl($formAction), 'popupCalendrier' => $this->getPopupCalendrier(), 'popupVilles' => $this->getPopupChoixVille('nouveauDossier'), 'popupRues' => $this->getPopupChoixRue('nouveauDossier'), 'popupSources' => $recherche->getPopupChoixSource('nouveauDossier'), 'popupPersonnes' => $recherche->getPopupChoixPersonne('nouveauDossier'), 'onClickBoutonAjouterAdresse' => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'ajoutNouveauDossier') . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('formAjoutDossier').action='" . $this->creerUrl('', 'ajoutNouveauDossier') . "'", 'onClickBoutonValider' => $onClickBoutonValider, 'typeBoutonValidation' => $typeBoutonValidation, 'onClickBoutonChoixVille' => "document.getElementById('paramChampAppelantVille').value='ville';document.getElementById('calqueVille').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueVille').style.display='block';", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1)) . "&archiIdQuartier='+document.getElementById('quartiers').value, 'listeSousQuartier')", 'onClickBoutonChoisirSource' => "document.getElementById('paramChampsAppelantSource').value='source';document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';", 'onClickChoixPersonne' => "document.getElementById('paramChampsAppelantPersonne').value='personnes';document.getElementById('calquePersonne').style.top=(getScrollHeight()+150)+'px';document.getElementById('calquePersonne').style.display='block';", 'onClickDateDebut' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'onClickDateFin' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('paramChampAppelantDate').value='dateFin';document.getElementById('calqueDate').style.display='block';", 'popupAttente' => $this->getPopupAttente()));
     //document.getElementById('formAjoutDossier').action='".$this->creerUrl('ajoutNouveauDossier', '')."';testAdresseValideAndSubmit('formAjoutDossier');
     // ******************************************************************************************************************************
     // on recupere les messages d'aide contextuelle et on les affiche :
     $helpMessages = $this->getHelpMessages("helpEvenement");
     foreach ($helpMessages as $fieldName => $helpMessage) {
         $t->assign_vars(array($fieldName => $helpMessage));
     }
     // ******************************************************************************************************************************
     ob_start();
     $t->pparse('nouveauDossier');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 private function getUserFormMail($idUtilisateur)
 {
     $infosArray = $this->getArrayInfosFromUtilisateur($idUtilisateur);
     $mail = new mailObject();
     if ($infosArray['displayProfilContactForm'] == '1' && $infosArray['mail'] != '' && $mail->isMail($infosArray['mail'])) {
         $authentification = new archiAuthentification();
         $mailUtilisateurConnecte = "";
         if ($authentification->estConnecte()) {
             $idUtilisateurConnecte = $authentification->getIdUtilisateur();
             $mailUtilisateurConnecte = $this->getMailUtilisateur($idUtilisateurConnecte);
             if (!$mail->isMail($mailUtilisateurConnecte)) {
                 $mailUtilisateurConnecte = "";
             }
         }
         $f = new formGenerator();
         $bb = new bbCodeObject();
         $configBoutonsBBCode = array('formName' => 'messagePrive', 'fieldName' => 'message', 'noUrlInterneButton' => true);
         $help = $this->getHelpMessages('helpEvenement');
         foreach ($help as $index => $value) {
             $configBoutonsBBCode[$index] = $value;
         }
         $configBoutonsBBCode["msgQuote"] = "Selectionnez une partie de votre texte pour le mettre entre quotes";
         $configBoutonsBBCode["msgUrlExterne"] = "Tapez une url commencant par http:// ,  et selectionnez la pour en faire un lien";
         $arrayBBCode = $bb->getBoutonsMiseEnFormeTextArea($configBoutonsBBCode);
         if ($authentification->estConnecte()) {
             $configFieldsContact = array('idUtilisateurDestinataire' => array('type' => 'hidden', 'value' => '', 'forceValueTo' => $idUtilisateur, 'htmlCode' => '', 'default' => '', 'error' => '', 'required' => true), 'mailEnvoyeur' => array('type' => 'email', 'value' => '', 'forceValueTo' => $mailUtilisateurConnecte, 'htmlCode' => '', 'default' => '', 'libelle' => 'Votre mail', 'error' => '', 'required' => true), 'message' => array('type' => 'bigText', 'value' => '', 'htmlCode' => "style='width:400px;height:100px;'", 'default' => '', 'libelle' => 'Votre message', 'error' => '', 'required' => true, 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML']));
         } else {
             $configFieldsContact = array('idUtilisateurDestinataire' => array('type' => 'hidden', 'value' => '', 'forceValueTo' => $idUtilisateur, 'htmlCode' => '', 'default' => '', 'error' => '', 'required' => true), 'mailEnvoyeur' => array('type' => 'email', 'value' => '', 'forceValueTo' => $mailUtilisateurConnecte, 'htmlCode' => '', 'default' => '', 'libelle' => 'Votre mail', 'error' => '', 'required' => true), 'message' => array('type' => 'bigText', 'value' => '', 'htmlCode' => "style='width:400px;height:100px;'", 'default' => '', 'libelle' => 'Votre message', 'error' => '', 'required' => true, 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML']), 'captcha' => array('type' => 'captcha', 'value' => '', 'htmlCode' => "", 'default' => '', 'libelle' => 'Vérification', 'error' => '', 'required' => true));
         }
         if (isset($this->variablesPost['message'])) {
             $errors = $f->getArrayFromPost($configFieldsContact);
             $complementMsgVisiteAdresse = "";
             if (isset($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']) && $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'] != '') {
                 // recuperation de l'intitule de l'adresse
                 $adresse = new archiAdresse();
                 $idAdresseMessage = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']);
                 $intituleAdresse = $adresse->getIntituleAdresseFrom($this->variablesGet['archiIdEvenementGroupeAdresseOrigine'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true, 'noQuartier' => true, 'noSousQuartier' => true, 'noVille' => true));
                 $complementMsgVisiteAdresse = " à visité l'adresse <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresseMessage, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'])) . "'>" . $intituleAdresse . "</a> et";
             }
             if (count($errors) == 0) {
                 // envoi du mail
                 $contenu = "Bonjour, <br><br>";
                 $contenu .= "Un utilisateur d'archi-strasbourg (<a href=\"mailto:" . $this->variablesPost['mailEnvoyeur'] . "\">" . $this->variablesPost['mailEnvoyeur'] . "</a>){$complementMsgVisiteAdresse} vous envoie un message privé :<br><br>";
                 $contenu .= stripslashes($bb->convertToDisplay(array('text' => $this->variablesPost['message'])));
                 $contenu .= "";
                 $contenu .= "";
                 if ($mail->sendMail($this->siteMail, $infosArray['mail'], "Un utilisateur d'archi-strasbourg vous envoie un message", $contenu, $writeMailToLogs = false, $this->variablesPost['mailEnvoyeur'])) {
                     echo "<span style='color:red;'>Mail envoyé.</span>";
                 }
             }
         }
         $arrayUrlViensDeAdresse = array();
         if (isset($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']) && $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'] != '') {
             $arrayUrlViensDeAdresse = array('archiIdEvenementGroupeAdresseOrigine' => $this->variablesGet['archiIdEvenementGroupeAdresseOrigine']);
         }
         $configForm = array('formAction' => $this->creerUrl('', 'detailProfilPublique', array_merge($arrayUrlViensDeAdresse, array('archiIdUtilisateur' => $idUtilisateur))), 'fields' => $configFieldsContact, 'formName' => 'messagePrive', 'codeHtmlInFormAfterFields' => "Prévisualisation :" . $arrayBBCode['divAndJsAfterForm']);
         $html .= "<br><br><h2>Lui envoyer un message personnel :</h2>";
         $html .= $f->afficherFromArray($configForm);
     }
     return $html;
 }
 /**
  * Affiche la liste des sources
  * 
  * @param array  $criteres      Critères
  * @param string $modeAffichage Mode d'affichage
  * 
  * @return string HTML
  * */
 public function afficherListe($criteres = array(), $modeAffichage = '')
 {
     $html = '';
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('listeSource' => 'listeSources.tpl'));
     if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') {
         $modeAffichage = $this->variablesGet['modeAffichage'];
     }
     $u = new archiUtilisateur();
     $a = new archiAuthentification();
     if ($a->estConnecte()) {
         if ($u->isAuthorized('ajout_source', $a->getIdUtilisateur())) {
             $t->assign_block_vars('isAuthorizedAjoutSource', array());
         }
     }
     // critere recherche par mot cle
     $sqlMotCle = "";
     $arrayMotCle = array();
     $urlMotCle = "";
     $isAffichageResultatRechercheMotCle = false;
     if (isset($this->variablesGet['motCle']) && $this->variablesGet['motCle'] != '') {
         $sqlMotCle = " AND LOWER(CONCAT(s.nom)) LIKE \"%" . $this->variablesGet['motCle'] . "%\" ";
         $arrayMotCle = array('motCle' => $this->variablesGet['motCle']);
         $urlMotCle = "&motCle=" . $this->variablesGet['motCle'];
         $t->assign_vars(array('motCleRechercheSource' => $this->variablesGet['motCle']));
         $isAffichageResultatRechercheMotCle = true;
     }
     switch ($modeAffichage) {
         case 'nouveauDossier':
         case 'modifEvenement':
         case 'modifImage':
         case 'ajoutModifParcoursAdmin':
             $t->assign_vars(array('urlAjout' => $this->creerUrl('', 'afficherAjouterSource', array('noHeaderNoFooter' => 1, 'modeAffichage' => $modeAffichage))));
             $t->assign_vars(array('formAction' => $this->creerUrl('', 'sourceListe', array('noHeaderNoFooter' => 1, 'modeAffichage' => $modeAffichage))));
             // si c'est un affichage apres un ajout ,  on renvoi le nouvel element
             if (isset($criteres['newIdSourceAdded']) && $criteres['newIdSourceAdded'] != '0') {
                 $t->assign_vars(array('codeJavascriptReturnNewElementAjoute' => "\n                    parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value).value='" . $criteres['newIdSourceAdded'] . "';\n                    parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value+'txt').value='" . str_replace("'", "\\'", stripslashes($this->getSourceLibelle($criteres['newIdSourceAdded']))) . "';\n                    parent.document.getElementById('calqueSource').style.display='none';\n                    "));
             }
             break;
         default:
             $t->assign_vars(array('urlAjout' => $this->creerUrl('', 'ajouterSource')));
             $t->assign_vars(array('formAction' => $this->creerUrl('', 'sourceListe')));
             break;
     }
     // analyse des criteres
     $sqlTypeSource = "";
     $arrayUrlTypeSource = array();
     if (isset($criteres['archiTypeSource'])) {
         $sqlTypeSource = " AND ts.idTypeSource = '" . $criteres['archiTypeSource'] . "' ";
         $arrayUrlTypeSource = array('archiTypeSource' => $criteres['archiTypeSource']);
     }
     // récupération du nombre de résultats par lettres
     $tabLettres = array();
     $sqlLettreCourante = '';
     if ($isAffichageResultatRechercheMotCle) {
         // en mode d'affichage de resultat de recherche ,  on affiche pas la liste alphabetique
         // donc on ne groupe pas par lettre dans la requete
         $sqlComptageResultat = "SELECT LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"),  1, 1)) AS lettre FROM source s \n                LEFT JOIN typeSource ts USING (idTypeSource)\n                WHERE 1 " . $sqlTypeSource . " " . $sqlMotCle . " ";
     } else {
         $sqlComptageResultat = "SELECT LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"),  1, 1)) AS lettre FROM source s \n                LEFT JOIN typeSource ts USING (idTypeSource)\n                WHERE 1 " . $sqlTypeSource . " " . $sqlMotCle . " GROUP BY LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"),  1, 1))";
         $rep = $this->connexionBdd->requete($sqlComptageResultat);
         while ($res = mysql_fetch_object($rep)) {
             $tabLettres[] = $res->lettre;
         }
         // si aucune lettre n'est précisée,  on indique la première lettre ayant des résultats
         // si le tableau de lettres est défini
         // et que la première lettre n'existe pas ou que la première lettre n'existe pas dans le tableau
         if (count($tabLettres) > 0 and (!isset($criteres['alphaSource']) or !in_array($criteres['alphaSource'], $tabLettres))) {
             $criteres['alphaSource'] = $tabLettres[0];
         }
         if (isset($criteres['alphaSource'])) {
             $sqlLettreCourante = " AND LOWER(SUBSTRING(REPLACE(s.nom, \"\\\"\", \"\"), 1, 1)) = '" . $criteres['alphaSource'] . "' ";
         }
     }
     $nbEnregistrementsParPage = '3';
     if (isset($criteres['nbEnregistrements'])) {
         $nbEnregistrementsParPage = $criteres['nbEnregistrements'];
     }
     $debutEnregistrement = '0';
     if (isset($criteres['archiPageSource'])) {
         $debutEnregistrement = ($criteres['archiPageSource'] - 1) * $nbEnregistrementsParPage;
     }
     // affichage de la liste alphabetique
     $lettre = '';
     if (isset($tabLettre[0])) {
         $lettre = $tabLettre[0];
     }
     // on affiche les lettres si on est pas en recherche
     $t->assign_vars(array('listeAlphabetique' => $this->afficherListeAlphabetique('sourceListe', $lettre, $tabLettres, array('paramsUrl' => $urlMotCle))));
     // 'sourceListe' correspond au cas d'affichage de index.php
     // recuperation des types de sources
     $reqTypesSources = "select idTypeSource,  nom from typeSource";
     $resTypesSources = $this->connexionBdd->requete($reqTypesSources);
     $selected = '';
     while ($fetchTypesSources = mysql_fetch_array($resTypesSources)) {
         $selected = '';
         if (isset($criteres['archiTypeSource']) && $criteres['archiTypeSource'] == $fetchTypesSources['idTypeSource']) {
             $selected = 'selected';
         }
         $t->assign_block_vars('typeSources', array('id' => $fetchTypesSources['idTypeSource'], 'nom' => $fetchTypesSources['nom'], 'selected' => $selected));
     }
     // recuperation du nombre de personne de la lettre courante ,  pour les numeros de pages
     $reqSources = "\n            SELECT s.idSource as idSource,  s.nom as nom,  s.idTypeSource as idTypeSource, ts.nom as nomTypeSource,  s.description as description\n            FROM source s\n            LEFT JOIN typeSource ts ON ts.idTypeSource = s.idTypeSource\n            WHERE 1=1\n            " . $sqlLettreCourante . "\n            " . $sqlTypeSource . "\n            {$sqlMotCle}\n            ORDER BY nom\n        ";
     $resSources = $this->connexionBdd->requete($reqSources);
     $nbEnregistrements = mysql_num_rows($resSources);
     // recuperation du nombre de pages a afficher
     if ($nbEnregistrements > $nbEnregistrementsParPage) {
         if ($nbEnregistrements % $nbEnregistrementsParPage != 0) {
             // on prend la partie entiere de la division + 1
             $nbPages = intval($nbEnregistrements / $nbEnregistrementsParPage) + 1;
         } else {
             $nbPages = $nbEnregistrements / $nbEnregistrementsParPage;
         }
         for ($i = 1; $i <= $nbPages; $i++) {
             switch ($modeAffichage) {
                 case "nouveauDossier":
                     $t->assign_block_vars('pages', array('page' => $i, 'url' => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i, 'archiAffichage' => 'sourceListe'))), 'onclick' => ""));
                     //afficheRechercheSourcePopup
                     break;
                 case 'modifEvenement':
                 case 'modifImage':
                 case 'ajoutModifParcoursAdmin':
                 default:
                     $t->assign_block_vars('pages', array('page' => $i, 'url' => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i, 'archiAffichage' => 'sourceListe'))), 'onclick' => ""));
                     if ($i == 1 && $nbPages > 1) {
                         $t->assign_vars(array("pageSuivante" => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i + 1, 'archiAffichage' => 'sourceListe')))));
                     }
                     if ($i > 1 && $i <= $nbPages) {
                         $t->assign_vars(array("pagePrecedente" => $this->creerUrl('', '', array_merge($arrayUrlTypeSource, $this->variablesGet, array('archiPageSource' => $i - 1, 'archiAffichage' => 'sourceListe')))));
                     }
                     break;
             }
         }
     } else {
         $nbPages = 1;
         $t->assign_block_vars('nopage', array());
     }
     if ($nbEnregistrements > 0) {
         mysql_data_seek($resSources, $debutEnregistrement);
         $fetchSource = mysql_fetch_assoc($resSources);
         $i = 0;
         while ($i < $nbEnregistrementsParPage && isset($fetchSource['nom'])) {
             switch ($modeAffichage) {
                 case 'popup':
                     $t->assign_block_vars('sources', array('nom' => $fetchSource['nom'], 'typeSource' => $fetchSource['nomTypeSource'], 'url' => '#', 'onclick' => "parent.document.getElementById('idSource').value='" . $fetchSource['idSource'] . "';parent.document.getElementById('nomSource').value='" . addslashes($fetchSource['nom']) . " " . $fetchSource['nomTypeSource'] . "';parent.document.getElementById('calqueSource').style.display='none';"));
                     break;
                 case 'ajoutEvenement':
                 case 'nouveauDossier':
                 case 'modifEvenement':
                 case 'modifImage':
                 case 'ajoutModifParcoursAdmin':
                     $t->assign_block_vars('sources', array('nom' => stripslashes($fetchSource['nom']), 'typeSource' => "(" . stripslashes($fetchSource['nomTypeSource']) . ")", 'url' => '#', 'onclick' => "parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value).value='" . $fetchSource['idSource'] . "';parent.document.getElementById(parent.document.getElementById('paramChampsAppelantSource').value+'txt').value='" . str_replace(array("\"", "'"), array("&quot;", "\\'"), stripslashes($fetchSource['nom'])) . " (" . $fetchSource['nomTypeSource'] . ")';parent.document.getElementById('calqueSource').style.display='none';"));
                     break;
                 default:
                     $t->assign_block_vars('sources', array('nom' => $fetchSource['nom'], 'url' => $this->creerUrl('', 'source', array('idSource' => $fetchSource['idSource'])), 'typeSource' => $fetchSource['nomTypeSource']));
                     break;
             }
             $i++;
             $fetchSource = mysql_fetch_assoc($resSources);
         }
     } else {
         $t->assign_block_vars('noSource', array());
     }
     ob_start();
     $t->pparse('listeSource');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * Displaying user interests
  *
  * @return string
  */
 public function displayMyInterest()
 {
     $auth = new archiAuthentification();
     if ($auth->estConnecte()) {
         $html = "";
         $formulaire = new formGenerator();
         $utils = new archiUtils();
         $ajax = new ajaxObject();
         $html .= $ajax->getAjaxFunctions();
         $t = new Template($this->getCheminPhysique() . $this->cheminTemplates . "interest/");
         $t->set_filenames(array('myinterests' => 'myinterests.tpl'));
         $a = new archiAdresse();
         //Generate address form
         $formParam = array('afficheNombreResultat' => 1, 'modeAffichage_rue' => 1, 'modeAffichage_sousQuartier' => 1, 'modeAffichage_quartier' => 1, 'modeAffichage_ville' => 1, 'modeAffichage_pays=' > 1);
         $formAddressAddInterest = $a->afficheChoixAdresse(array('afficheNombreResultat' => 1, 'affichageInteret' => 1));
         $paramsFields = array();
         $paramsFields[] = array('table' => 'pays', 'value' => 'idPays', 'title' => 'nom');
         $paramsFields[] = array('table' => 'ville', 'value' => 'idVille', 'title' => 'nom');
         $paramsFields[] = array('table' => 'quartier', 'value' => 'idQuartier', 'title' => 'nom');
         $paramsFields[] = array('table' => 'sousQuartier', 'value' => 'idSousQuartier', 'title' => 'nom');
         $paramsFields[] = array('table' => 'rue', 'value' => 'idRue', 'title' => 'nom');
         $formActionUrl = $this->creerUrl('', 'saveInterest', array());
         foreach ($paramsFields as $params) {
             $options[] = $this->getAllField($params);
         }
         $paramsRequest[] = array('table' => '_interetRue', 'field' => 'idRue', 'associateTable' => 'rue');
         $paramsRequest[] = array('table' => '_interetSousQuartier', 'field' => 'idSousQuartier', 'associateTable' => 'sousQuartier');
         $paramsRequest[] = array('table' => '_interetQuartier', 'field' => 'idQuartier', 'associateTable' => 'quartier');
         $paramsRequest[] = array('table' => '_interetVille', 'field' => 'idVille', 'associateTable' => 'ville');
         $paramsRequest[] = array('table' => '_interetPays', 'field' => 'idPays', 'associateTable' => 'pays');
         $userInterest = $this->getAllInterest($paramsRequest);
         /*
          * Array of EVERY interest  by categories : street country address etc..
          */
         foreach ($userInterest as $interestByCat) {
             if (!isset($interestByCat[0]['vide'])) {
                 $t->assign_block_vars('interestList', array('title' => 'Liste des ' . $interestByCat[0]['titre'] . ' dans les centres d\'intérêt', 'CSSclass' => 'interestList'));
                 /*
                  * Interest of each category
                  */
                 foreach ($interestByCat as $interest) {
                     /*
                      * Process fields for delete link
                      */
                     $table = $interest['table'];
                     $fieldId = $interest['field'];
                     $userId = $interest['idUtilisateur'];
                     $interestId = $interest[$fieldId];
                     $paramsDelete = array($table, $fieldId, $userId, $interestId);
                     $deleteUrl = $this->creerUrl('', 'deleteInterest', array('params' => $paramsDelete));
                     switch ($interest['associateTable']) {
                         case 'personne':
                             $t->assign_block_vars('interestList.interests', array('name' => $interest['nom'] . " " . $interest['prenom'], 'deleteUrl' => $deleteUrl));
                             break;
                         default:
                             $t->assign_block_vars('interestList.interests', array('name' => $interest['nom'], 'deleteUrl' => $deleteUrl));
                     }
                 }
             } else {
                 $t->assign_block_vars('interestList', array('vide' => 'Aucun résultat', 'title' => 'Liste des ' . $interestByCat[0]['titre'] . ' dans les centres d\'intérêt', 'CSSclass' => 'interestList'));
             }
         }
         $t->assign_vars(array('formAddInterest' => $formAddressAddInterest, 'formActionUrl' => $formActionUrl, 'nameForm' => 'saveInterest'));
         ob_start();
         $t->pparse('myinterests');
         $html .= ob_get_contents();
         ob_end_clean();
         return $html;
     } else {
         $this->messages->addError("Veuillez vous connecter pour personnaliser votre flux");
         $this->messages->display();
         $auth = new ArchiAuthentification();
         return $auth->afficheFormulaireAuthentification();
     }
 }
 /**
  * Envoi d'un mail a tous les administrateurs
  * 
  * @param string  $envoyeur                 Emetteur
  * @param string  $sujet                    Sujet
  * @param string  $message                  Message
  * @param $string $criteres                 Criteres
  * @param bool    $writeMailToLogs          ?
  * @param bool    $isEnvoiRegroupeDesactive ?
  * @param string  $logfile                  Fichier de logs
  * 
  * @return void
  * */
 public function sendMailToAdministrators($envoyeur = 'archi-strasbourg', $sujet = '', $message = '', $criteres = '', $writeMailToLogs = false, $isEnvoiRegroupeDesactive = false, $logfile = 'mail.log')
 {
     $replyTo = "";
     if (is_array($envoyeur)) {
         $replyTo = $envoyeur["replyTo"];
         $envoyeur = $envoyeur["envoyeur"];
     }
     // recherche les administrateurs
     $authentification = new archiAuthentification();
     $idUtilisateur = '0';
     if ($authentification->estConnecte()) {
         $idUtilisateur = $authentification->getIdUtilisateur();
     }
     // n'envoi pas le mail si l'utilisateur courant est lui meme admin
     $sqlNoSendToAdmin = "";
     if ($authentification->estAdmin()) {
         $sqlNoSendToAdmin = "and idUtilisateur!='" . $idUtilisateur . "'";
     }
     /* Envoi aux admins dont le compte est actif
      * et la periode d'envoi est "immediate"
      * */
     if ($isEnvoiRegroupeDesactive) {
         $sql = "SELECT mail from utilisateur where idProfil='4'" . " and compteActif='1' " . $criteres . " " . $sqlNoSendToAdmin;
     } else {
         $sql = "SELECT mail from utilisateur where idProfil='4' " . "and compteActif='1' and (idPeriodeEnvoiMailsRegroupes='1' " . "OR idPeriodeEnvoiMailsRegroupes='0') " . $criteres . " " . $sqlNoSendToAdmin;
     }
     $res = $this->connexionBdd->requete($sql);
     while ($fetch = mysql_fetch_assoc($res)) {
         $headers = 'From: "' . $envoyeur . '"<' . $envoyeur . '>' . "\r\nReply-To: " . $replyTo . "\r\nContent-Type: text/html; charset=\"utf-8\"\r\n";
         if (isset($this->isSiteLocal) && $this->isSiteLocal == true) {
             echo "Envoi d'un mail aux administrateurs<br>";
             echo $headers;
             echo "<br>to : " . $fetch['mail'] . "<br>";
             echo "subject : {$sujet}<br>";
             echo "{$message}<br>";
             echo "finMail<br>";
             if ($writeMailToLogs) {
                 $this->saveMailToLogs(array("envoyeur" => $envoyeur, "destinataire" => $fetch['mail'], "sujet" => $sujet, "message" => $message, "debug" => true, 'logfile' => $logfile));
             }
         } else {
             pia_mail($fetch['mail'], $sujet, $message, $headers, null);
             if ($writeMailToLogs) {
                 $this->saveMailToLogs(array("envoyeur" => $envoyeur, "destinataire" => $fetch['mail'], "sujet" => $sujet, "message" => $message, "debug" => false, 'logfile' => $logfile));
             }
         }
     }
 }
 public function afficherFromEvenement($idEvenement = 0, $params = array())
 {
     /*
      **    IMAGES LIÉES
      */
     //$t=new Template('modules/archi/templates/');
     //$t->set_filenames(array('listeImages'=>'listeImagesAssocies.tpl'));
     $zonesHTML = "";
     $string = new stringObject();
     $adresse = new archiAdresse();
     $evenement = new archiEvenement();
     $bbCode = new bbCodeObject();
     $authentification = new archiAuthentification();
     // dans le cas de plusieur groupe d'adresse sur la meme page avec la meme photo affichee sur chacun,  on recupere le groupe d'adresse pour pouvoir identifier separement l'affichage des divs de la zone
     $paramIdGroupeAdresseEvenementAffiche = "";
     $divParamIdGroupeAdresseAffiche = "";
     if (isset($params['idGroupeAdresseEvenementAffiche']) && $params['idGroupeAdresseEvenementAffiche'] != '' && $params['idGroupeAdresseEvenementAffiche'] != '0') {
         $paramIdGroupeAdresseEvenementAffiche = $params['idGroupeAdresseEvenementAffiche'];
         $divParamIdGroupeAdresseAffiche = "_" . $params['idGroupeAdresseEvenementAffiche'];
     }
     $idAdresseCourante = 0;
     if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '') {
         $idAdresseCourante = $this->variablesGet['archiIdAdresse'];
     }
     // si le parametre est defini on n'affiche pas sur la liste des photos de l'evenement en cours d'affichage,  les photos qui sont affichées en tant que vue sur et prise depuis l'adresse courante
     $listeImagesDejaAffichees = array();
     // adresses a lesquelles appartient l'evenement courant
     $listeIdAdresses = array();
     $reqAdresses = "\n                SELECT distinct ha1.idAdresse as idAdresse\n                FROM historiqueAdresse ha2,  historiqueAdresse ha1\n\n                LEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = '" . $idEvenement . "'\n                LEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\n                WHERE ha2.idAdresse = ha1.idAdresse\n                AND ha1.idAdresse = ae.idAdresse\n                GROUP BY ha1.idAdresse,  ha1.idHistoriqueAdresse\n                HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n            ";
     $resAdresses = $this->connexionBdd->requete($reqAdresses);
     while ($fetchAdresses = mysql_fetch_assoc($resAdresses)) {
         $listeIdAdresses[] = $fetchAdresses['idAdresse'];
     }
     if (isset($params['withoutImagesVuesSurPrisesDepuis']) && $params['withoutImagesVuesSurPrisesDepuis'] == true) {
         if (!empty($listeIdAdresses)) {
             // on recupere la liste des images qui sont deja affichee dans les encarts vueSur et prisDepuis
             $reqImagesDejaAffichees = "\n                        SELECT distinct ai.idImage\n                        FROM _adresseImage ai\n                        LEFT JOIN _evenementImage ei ON ei.idImage = ai.idImage\n                        WHERE\n                            idAdresse IN (" . implode(',  ', $listeIdAdresses) . ")\n                        AND ai.vueSur = '1'\n                        OR ai.prisDepuis = '1'\n                ";
             $resImagesDejaAffichees = $this->connexionBdd->requete($reqImagesDejaAffichees);
             while ($fetchImagesDejaAffichees = mysql_fetch_assoc($resImagesDejaAffichees)) {
                 $listeImagesDejaAffichees[] = $fetchImagesDejaAffichees['idImage'];
             }
         }
     }
     $sqlVueSurPrisDepuisWhereParam = "";
     if (count($listeImagesDejaAffichees) > 0) {
         $sqlVueSurPrisDepuisWhereParam = "AND ei.idImage NOT IN (" . implode(",  ", $listeImagesDejaAffichees) . ")";
     }
     // recuperation des images
     $reqImages = "\n        SELECT hi1.idImage,  hi1.idHistoriqueImage,  hi1.nom,  hi1.description,  hi1.dateUpload,  hi1.dateCliche\n        FROM _evenementImage ei\n        LEFT JOIN historiqueImage hi1 ON hi1.idImage = ei.idImage\n        LEFT JOIN historiqueImage hi2 ON hi2.idImage = hi1.idImage\n        WHERE ei.idEvenement = '" . $idEvenement . "'\n        {$sqlVueSurPrisDepuisWhereParam}\n        GROUP BY hi1.idImage ,  hi1.idHistoriqueImage\n        HAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n        ORDER BY ei.position, hi1.idHistoriqueImage\n        ";
     $resImages = $this->connexionBdd->requete($reqImages);
     $listeImages = array();
     while ($fetchImages = mysql_fetch_assoc($resImages)) {
         $listeImages[$fetchImages['idImage']] = array('idImage' => $fetchImages['idImage'], 'idHistoriqueImage' => $fetchImages['idHistoriqueImage'], 'nom' => $fetchImages['nom'], 'description' => $fetchImages['description'], 'dateUpload' => $fetchImages['dateUpload'], 'dateCliche' => $fetchImages['dateCliche']);
     }
     // recuperation d'une adresse pour chacune des images pour l'affichage de l'adresse dans l'url de la photo
     $tab = new tableau();
     foreach ($listeImages as $idImage => $valuesImage) {
         $reqAdresse = "    SELECT ha1.numero as numero,\n                                    r.nom as nomRue,\n                                    sq.nom as nomSousQuartier,\n                                    q.nom as nomQuartier,\n                                    v.nom as nomVille,\n                                    p.nom as nomPays,\n                                    ha1.numero as numeroAdresse,\n                                    ha1.idRue,\n                                    r.prefixe as prefixeRue,\n                                    IF (ha1.idSousQuartier != 0,  ha1.idSousQuartier,  r.idSousQuartier) AS idSousQuartier,\n                                    IF (ha1.idQuartier != 0,  ha1.idQuartier,  sq.idQuartier) AS idQuartier,\n                                    IF (ha1.idVille != 0,  ha1.idVille,  q.idVille) AS idVille,\n                                    IF (ha1.idPays != 0,  ha1.idPays,  v.idPays) AS idPays\n\n\n                            FROM historiqueAdresse ha2,  historiqueAdresse ha1\n\n                            LEFT JOIN _evenementImage ei ON ei.idImage = '" . $idImage . "'\n                            LEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = ei.idEvenement\n                            LEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\n\n\n                            LEFT JOIN rue r ON r.idRue = ha1.idRue\n                            LEFT JOIN sousQuartier sq ON sq.idSousQuartier = if (ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n                            LEFT JOIN quartier q ON q.idQuartier = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n                            LEFT JOIN ville v ON v.idVille = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille!='0' , ha1.idVille , q.idVille )\n                            LEFT JOIN pays p ON p.idPays = if (ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille='0' and ha1.idPays!='0' , ha1.idPays , v.idPays )\n\n\n                            WHERE ha2.idAdresse = ha1.idAdresse\n\n                            AND ha1.idAdresse = ae.idAdresse\n                            GROUP BY ha1.idAdresse,  ha1.idHistoriqueAdresse\n                            HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n                            LIMIT 1\n            ";
         $resAdresse = $this->connexionBdd->requete($reqAdresse);
         $fetchAdresse = mysql_fetch_assoc($resAdresse);
         $intituleAdresse = trim($adresse->getIntituleAdresse($fetchAdresse));
         $intituleAdresseAlt = trim(strip_tags(str_replace("'", " ", $intituleAdresse)));
         $title = trim($string->sansBalises(strip_tags(stripslashes($valuesImage['description']))) . ' ' . $intituleAdresseAlt);
         $alt = trim($string->sansBalises(strip_tags(stripslashes($valuesImage['description']))) . ' ' . $intituleAdresseAlt);
         $imageHTML = "";
         if ($authentification->estConnecte() && isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1') {
             $hrefImage = "";
             $onClickImage = "if (document.getElementById('checkboxSelectionImages_" . $valuesImage['idHistoriqueImage'] . "').checked){document.getElementById('checkboxSelectionImages_" . $valuesImage['idHistoriqueImage'] . "').checked=false;document.getElementById('image" . $valuesImage['idHistoriqueImage'] . $divParamIdGroupeAdresseAffiche . "').parentNode.style.border='none';}else{document.getElementById('checkboxSelectionImages_" . $valuesImage['idHistoriqueImage'] . "').checked=true;document.getElementById('image" . $valuesImage['idHistoriqueImage'] . $divParamIdGroupeAdresseAffiche . "').parentNode.style.border ='thin solid #FF8800';}";
             $imageHTML .= "<input type='checkbox' name='checkboxSelectionImages[]' id='checkboxSelectionImages_" . $valuesImage['idHistoriqueImage'] . "' value='" . $idEvenement . "_" . $valuesImage['idHistoriqueImage'] . "' style='display:none;'>";
         } elseif ($authentification->estConnecte() && isset($this->variablesGet['afficheSelectionImagePrincipale']) && $this->variablesGet['afficheSelectionImagePrincipale'] == '1') {
             $hrefImage = "href='" . $this->creerUrl('enregistreSelectionImagePrincipale', 'evenement', array('idEvenement' => $this->variablesGet['idEvenement'], 'idImage' => $idImage)) . "'";
             $onClickImage = "";
             $imageHTML .= "";
         } else {
             if ($idAdresseCourante != 0) {
                 $hrefImage = "href='" . $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImage, 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $idEvenement, 'archiIdAdresse' => $idAdresseCourante)) . "'";
             } else {
                 $hrefImage = "href='" . $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImage, 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $idEvenement)) . "'";
             }
             $onClickImage = "";
         }
         //href="'.$hrefImage.'"
         $formatAffichagePhoto = "moyen";
         $largeurImage = "";
         $sizes = array();
         // pour gerer les format panoramiques ,  on va afficher l'image au format "grand" ,  l'image au format petit est trop flou
         if (file_exists($this->getCheminPhysiqueImage("mini") . $valuesImage['dateUpload'] . "/" . $valuesImage['idHistoriqueImage'] . ".jpg")) {
             $arrayImageSize = getimagesize($this->getCheminPhysiqueImage("mini") . $valuesImage['dateUpload'] . "/" . $valuesImage['idHistoriqueImage'] . ".jpg");
             if ($arrayImageSize[0] / $arrayImageSize[1] > 2.5) {
                 $formatAffichagePhoto = "grand";
             }
             $arrayImageSizeAff = getimagesize($this->getCheminPhysique() . "images/{$formatAffichagePhoto}/" . $valuesImage['dateUpload'] . "/" . $valuesImage['idHistoriqueImage'] . ".jpg");
             $sizes['x'] = $arrayImageSizeAff[0];
             $sizes['y'] = $arrayImageSizeAff[1];
         }
         $imageHTML .= '<a class="imgResultGrp" ' . $hrefImage . '><div class="imgResultHover"><img itemprop="image" onclick="' . $onClickImage . '" id="image' . $valuesImage['idHistoriqueImage'] . $divParamIdGroupeAdresseAffiche . '"  alt="' . htmlspecialchars($alt) . '"  src="' . 'photos--' . $valuesImage['dateUpload'] . '-' . $valuesImage['idHistoriqueImage'] . '-moyen.jpg' . '" class="eventImage" /><p>' . strip_tags($bbCode->convertToDisplay(array('text' => $valuesImage['description']))) . '</p></div></a><div class="imgDesc">' . $bbCode->convertToDisplay(array('text' => $valuesImage['description'])) . '</div><br>';
         //src=\'photos-'.$string->convertStringToUrlRewrite($intituleAdresse).'-'.$valuesImage['dateUpload'].'-'.$valuesImage['idHistoriqueImage'].'-'.$formatAffichagePhoto.'.jpg\'
         $tab->addValue($imageHTML, '', $sizes);
     }
     // recuperation des images VuesSur classée suivant la date ,  si la date correspond,  on l'affiche dans l'evenement
     // pour l'instant on va les afficher a la suite des autres images...
     // par contre on ne les affiche pas quand on est en mode de selection d'image (pour la deplacer d'un evenement à l'autre
     if (isset($params['imagesVuesSurLinkedByDate']) && count($params['imagesVuesSurLinkedByDate']) > 0 && (!isset($this->variablesGet['afficheSelectionImage']) || $this->variablesGet['afficheSelectionImage'] != '1')) {
         $i = 0;
         foreach ($params['imagesVuesSurLinkedByDate'] as $indice => $valuesImage) {
             // ici on se sert de getAutresPhotosVuesSurAdresse uniquement pour renvoyer l'affichage de la photo avec les infos concernant celle ci
             $arrayRetourVueSur = $this->getAutresPhotosVuesSurAdresse($listeIdAdresses, 'moyen', array('getOneIdImageFromEvenement' => true, 'idImage' => $valuesImage['idImage'], 'idEvenement' => $idEvenement, 'idGroupeAdresseEvenementAffiche' => $paramIdGroupeAdresseEvenementAffiche, 'setZoomOnImageZone' => true));
             $tab->addValue($arrayRetourVueSur["htmlVueSur"], "");
             $zonesHTML .= $arrayRetourVueSur['htmlZonesDivMapJs'];
             $i++;
         }
     }
     if ($authentification->estConnecte()) {
         // si on est connecté ,  on laisse un padding top pour que les photos ne se chevauches pas avec le menu des evenements
         //$html = "<div style='display:table;padding-top:50px;'>".$tab->createHtmlTableFromArray(3,  '',  '',  'align="center" valign="top" style="font-size:13px;"')."</div>";
         $html = "<div class='gallery'>" . $tab->createHtmlDivsFromArray(array("styleDivs" => "")) . "</div>";
     } else {
         //$html = "<div style='display:table;'>".$tab->createHtmlTableFromArray(3,  '',  '',  'align="center" valign="top" style="font-size:13px;"')."</div>";
         $html = "<div class='gallery'>" . $tab->createHtmlDivsFromArray(array("styleDivs" => "")) . "</div>";
     }
     return $html . $zonesHTML;
 }
 /**
  * Supprimer une étape d'un parcous
  * 
  * @param array $params Paramètres
  * 
  * @return void
  * */
 public function supprimerEtapeParcours($params = array())
 {
     $auth = new archiAuthentification();
     if ($auth->estConnecte()) {
         if (isset($this->variablesGet['archiIdEtapeSupprimer']) && $this->variablesGet['archiIdEtapeSupprimer'] != '') {
             $req = "DELETE FROM etapesParcoursArt WHERE idEtape='" . $this->variablesGet['archiIdEtapeSupprimer'] . "'";
             $res = $this->connexionBdd->requete($req);
         }
     } else {
         echo "Vous n'êtes pas connecté.";
     }
 }