Example #1
0
/**
 * Charge le template de l'en-tête
 * 
 * PHP Version 5.3.3
 * 
 * @category General
 * @package  ArchiWiki
 * @author   Pierre Rudloff <*****@*****.**>
 * @license  GNU GPL v3 https://www.gnu.org/licenses/gpl.html
 * @link     http://archi-wiki.org/
 * 
 * */
$t = new Template('modules/header/templates/');
$t->set_filenames(array('header' => 'header.tpl'));
$authentification = new archiAuthentification();
$recherche = new archiRecherche();
$config = new ArchiConfig();
$adresse = new archiAdresse();
$evenement = new archiEvenement();
$image = new archiImage();
$ajax = new ajaxObject();
$calque = new calqueObject();
$string = new stringObject();
$utilisateur = new archiUtilisateur();
$session = new objetSession();
$i = new imageObject();
if (!isset($jsHeader)) {
    // variables récupérée de chaque fonction des classes du site permettant de mettre du javascript recupéré , dans le header , plutot qu'en plein milieu de la page ou dans le bas de page s'il faut qu'il soit executé a la fin
    $jsHeader = "";
}
Example #2
0
     echo $a->afficherFormulaireModification(0, '', array($_GET['archiIdImageModification']));
     break;
 case 'modifierPositionsImages':
     $a = new archiImage();
     echo $a->afficheFormulaireModifPosition(array('idEvenement' => $_GET['archiIdEvenement']));
     break;
 case 'modifierImageAdresse':
     $a = new archiImage();
     echo $a->afficherFormulaireModification($_GET['archiIdAdresseModification'], 'adresse');
     break;
 case 'modifierImageEvenement':
     $image = new archiImage();
     echo $image->afficherFormulaireModification($_GET['archiIdEvenement'], 'evenement');
     break;
 case 'modifierImagesUtilisateur':
     $authentifie = new archiAuthentification();
     $image = new archiImage();
     echo $image->afficherFormulaireModification($authentifie->getIdUtilisateur(), 'utilisateur');
     break;
 case 'ajoutNouvelleAdresse':
     /* affichage du formulaire permettant d'ajouter
      * de nouvelle rues, sousquartier, quartier, ville, pays ...
      * */
     $criteres = array();
     if (isset($_GET['typeNew'])) {
         $criteres['typeNew'] = $_GET['typeNew'];
     }
     $adresse = new archiAdresse();
     echo $adresse->afficheFormulaireNouvelleAdresse($criteres);
     break;
 case 'ajouterSousEvenement':
 /**
  * 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;
 }
 public function getGoogleMapIframe($params = array())
 {
     $html = '<link href="css/default.css" rel="stylesheet" type="text/css" />
 ';
     if (isset($this->variablesGet['longitude']) && $this->variablesGet['longitude'] != '' && isset($this->variablesGet['latitude']) && $this->variablesGet['latitude'] != '') {
         $ajax = new ajaxObject();
         $html .= $ajax->getAjaxFunctions();
         $longitude = $this->variablesGet['longitude'];
         $latitude = $this->variablesGet['latitude'];
         $listeCoords = array();
         // si archiIdAdresse est précisé , on remplace les coordonnées par celle de l'adresse ( car celle envoyée sont celle de la premiere du groupe d'adresse)
         $isCoordonneesAdresseCouranteValide = true;
         $isCoordonneesGroupeAdresseOK = false;
         if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
             // s'il existe des coordonnées pour le groupe d'adresse dans la table _adresseEvenement, on prend celles ci
             $reqCoordonneesGroupeAdresse = "SELECT longitudeGroupeAdresse,latitudeGroupeAdresse FROM _adresseEvenement WHERE idAdresse='" . $this->variablesGet['archiIdAdresse'] . "' AND idEvenement='" . $this->variablesGet['archiIdEvenementGroupeAdresse'] . "' AND longitudeGroupeAdresse<>'0' AND latitudeGroupeAdresse<>'0'";
             $resCoordonneesGroupeAdresse = $this->connexionBdd->requete($reqCoordonneesGroupeAdresse);
             if (mysql_num_rows($resCoordonneesGroupeAdresse) > 0) {
                 $fetchCoordonneesGroupeAdresse = mysql_fetch_assoc($resCoordonneesGroupeAdresse);
                 $longitude = $fetchCoordonneesGroupeAdresse['longitudeGroupeAdresse'];
                 $latitude = $fetchCoordonneesGroupeAdresse['latitudeGroupeAdresse'];
                 $isCoordonneesGroupeAdresseOK = true;
             }
         }
         if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && $this->variablesGet['archiIdAdresse'] != '0' && !$isCoordonneesGroupeAdresseOK) {
             $reqCoordonnees = "\n                    SELECT ha1.longitude as longitude, ha1.latitude as latitude\n                    FROM historiqueAdresse ha2, historiqueAdresse ha1\n                    WHERE ha2.idAdresse = ha1.idAdresse\n                    AND ha1.idAdresse = '" . $this->variablesGet['archiIdAdresse'] . "'\n                    GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse\n                    HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n                ";
             $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees);
             if (mysql_num_rows($resCoordonnees) == 1) {
                 $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees);
                 if ($fetchCoordonnees['longitude'] != '' && $fetchCoordonnees['latitude'] != '' && $fetchCoordonnees['longitude'] != '0' && $fetchCoordonnees['latitude'] != '0') {
                     $longitude = $fetchCoordonnees['longitude'];
                     $latitude = $fetchCoordonnees['latitude'];
                 } else {
                     $isCoordonneesAdresseCouranteValide = false;
                 }
             }
         }
         $affichageCoordonneesVille = false;
         if ($longitude < 0 || $latitude < 0 || $longitude == 0 || $latitude == 0 || !$isCoordonneesAdresseCouranteValide) {
             // on detection une longitude ou latitude negative : il doit y avoir eu une erreur de detection des parametres
             // on va centrer la carte sur la ville
             if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && $this->variablesGet['archiIdAdresse'] != '0') {
                 // recuperation de l'idville de l'adresse courante
                 $idVille = $this->getIdVilleFrom($this->variablesGet['archiIdAdresse'], 'idAdresse');
                 // coordonnees de la ville
                 $reqCoordonneesVille = "SELECT longitude,latitude,nom FROM ville WHERE idVille = '" . $idVille . "'";
                 $resCoordonneesVille = $this->connexionBdd->requete($reqCoordonneesVille);
                 $fetchCoordonneesVille = mysql_fetch_assoc($resCoordonneesVille);
                 $longitude = $fetchCoordonneesVille['longitude'];
                 $latitude = $fetchCoordonneesVille['latitude'];
                 $affichageCoordonneesVille = true;
             }
         }
         // rayon en metres
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             // dans le cas de l'affichage de la popup sur le detail de l'adresse on prend un rayon plus grand, donc plus d'adresses affichées
             $rayon = 200;
         } else {
             $rayon = 200;
         }
         $arrayGoogleMapCoord = $this->getArrayGoogleMapConfigCoordonneesFromCenter(array('longitude' => $longitude, 'latitude' => $latitude, 'rayon' => $rayon));
         $listeCoords = $arrayGoogleMapCoord['arrayConfigCoordonnees'];
         // verification des droits
         $isAuthorizedToDrag = false;
         $widthGoogleMapModePopup = 650;
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '' && isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
                 $idAdresseCentree = $this->variablesGet['archiIdAdresse'];
                 $idEvenementGroupeAdresseCentre = $this->variablesGet['archiIdEvenementGroupeAdresse'];
                 $utilisateur = new archiUtilisateur();
                 $authentification = new archiAuthentification();
                 // verification des droits
                 if ($utilisateur->isAuthorized('googlemap_change_coordonnees', $authentification->getIdUtilisateur())) {
                     if ($utilisateur->getIdProfil($authentification->getIdUtilisateur()) == 4 || $utilisateur->getIdProfil($authentification->getIdUtilisateur()) == 3 && $utilisateur->isModerateurFromVille($authentification->getIdUtilisateur(), $idAdresseCentree, 'idAdresse')) {
                         $isAuthorizedToDrag = true;
                         $widthGoogleMapModePopup = 650;
                     }
                 }
             }
         }
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse') {
             // affichage pour la popup sur le detail d'une adresse
             if ($affichageCoordonneesVille) {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => $widthGoogleMapModePopup, 'height' => 500, 'zoom' => 11, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => false, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             } else {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => $widthGoogleMapModePopup, 'height' => 500, 'zoom' => 17, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => false, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             }
         } else {
             if ($affichageCoordonneesVille) {
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 275, 'height' => 275, 'zoom' => 10, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => true, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
             } else {
                 // affichage par defaut , s'affichage en haut de la page detail d'une adresse , a gauche de l'encars
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 275, 'height' => 275, 'zoom' => 16, 'noDisplayZoomSelectionSquare' => true, 'noDisplayZoomSlider' => false, 'zoomType' => 'mini', 'noDisplayEchelle' => true, 'noDisplayMapTypeButtons' => true, 'centerLong' => $longitude, 'centerLat' => $latitude, 'mapType' => 'G_SATELLITE_MAP'));
                 //,'divStyle'=>'margin-top:-17px;'
             }
         }
         $html .= $gm->getJsFunctions();
         //$html.="<script  >".$gm->setFunctionAddPointsCallableFromChild()."</script>";
         $html .= $gm->getMap(array('listeCoordonnees' => $listeCoords, 'urlImageIcon' => $this->getUrlImage() . "pointGM.png", 'pathImageIcon' => $this->getCheminPhysique() . "images/pointGM.png"));
         // on ajoute le markeur central a la main
         $html .= "<script  >\n                var iconHome = new GIcon();\n                iconHome.image = \"" . $this->getUrlImage() . "placeMarker.png\";\n                //iconHome.shadow = \"https://labs.google.com/ridefinder/images/mm_20_shadow.png\";\n                iconHome.iconSize = new GSize(19, 32);\n                iconHome.shadowSize = new GSize(22, 20);\n                iconHome.iconAnchor = new GPoint(5, 26);\n                iconHome.infoWindowAnchor = new GPoint(5, 1);\n\n                //var iconMarkerHome = new GIcon(iconHome);\n                ";
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "markerHome = new GMarker(new GLatLng(" . $latitude . "," . $longitude . "),{icon:iconHome, draggable: true});";
         } else {
             $html .= "markerHome = new GMarker(new GLatLng(" . $latitude . "," . $longitude . "),{icon:iconHome});";
         }
         $html .= "map.addOverlay(markerHome);";
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "markerHome.enableDragging();";
         }
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'popupDetailAdresse' && $isAuthorizedToDrag) {
             $html .= "GEvent.addListener(markerHome,'drag',function(){parent.window.document.getElementById('latitudeUser').value=markerHome.getPoint().lat();parent.window.document.getElementById('longitudeUser').value=markerHome.getPoint().lng();parent.window.document.getElementById('validationCoordonnees').style.display='';});\n                ";
             $html .= "GEvent.addListener(\n                            map,\n                            'dragend',\n                            function(){appelAjaxReturnJs('" . html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noRefresh' => 1, 'noHTMLHeaderFooter' => 1, 'noHeaderNoFooter' => 1, 'latitudeHome' => $latitude, 'longitudeHome' => $longitude))) . "&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}\n                            );";
         } else {
             $html .= "GEvent.addListener(\n                            map,\n                            'dragend',\n                            function(){appelAjaxReturnJs('" . html_entity_decode($this->creerUrl('', 'majGoogleMapNewCenter', array('noHTMLHeaderFooter' => 1, 'noHeaderNoFooter' => 1, 'latitudeHome' => $latitude, 'longitudeHome' => $longitude))) . "&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat(),'divListeAdressesAjax')}\n                            );";
             //$html.="GEvent.addListener(map,'dragend',function(){document.getElementById('iFrameMajCenter').src='".$this->creerUrl('','majGoogleMapNewCenter',array('noHeaderNoFooter'=>1,'latitudeHome'=>$latitude,'longitudeHome'=>$longitude))."&longitudeCenter='+map.getCenter().lng()+'&latitudeCenter='+map.getCenter().lat();});";
         }
         //$html.=$gm->setFunctionAddPointsCallableFromChild(array());
         $html .= "</script>";
         //$html.="<div id='jsMiseAJourCenter' ><iframe id='iFrameMajCenter' src=''></iframe></div>";//style='position:absolute;left:0px;top:0px;'
     }
     return $html;
 }
 } else {
     $sujet = "Nouvelles adresses et adresses modifiées sur archi-wiki.org.";
 }
 $messageHTML = "<!Doctype HTML>\n    <html>\n    <head>\n    <title>" . stripslashes($sujet) . "</title>\n    <meta charset='UTF-8' />\n    </head>\n    <body>";
 if (isset($_GET["modePrevisualisationAdmin"]) && !isset($_GET["testMail"])) {
     $messageHTML .= $messageIntro . $messageFin;
 } else {
     $messageHTML .= $messageIntro . $messageStrasbourg . $messageStrasModif . $messageAutres . $messageAutresModif . $messagePeople . $messageFin;
 }
 $messageHTML .= "</body></html>";
 if (isset($_SERVER["SERVER_NAME"]) && !isset($_GET["modePrevisualisationAdmin"]) || isset($_GET["preview"])) {
     print_r($messageHTML);
     if (isset($_GET["testMail"])) {
         include_once __DIR__ . "/../modules/archi/includes/archiAuthentification.class.php";
         include_once __DIR__ . "/../modules/archi/includes/archiUtilisateur.class.php";
         $auth = new archiAuthentification();
         $idUtilisateur = $auth->getIdUtilisateur();
         $u = new archiUtilisateur();
         $mailUtilisateur = $u->getMailUtilisateur($idUtilisateur);
         $mail->sendMail($mail->getSiteMail(), $mailUtilisateur, $sujet, $messageHTML, false);
     }
 } else {
     $reqUtilisateurs = "SELECT idUtilisateur,mail FROM utilisateur WHERE alerteMail='1' and compteActif='1'";
     $resUtilisateurs = $config->connexionBdd->requete($reqUtilisateurs);
     //         $mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //         $mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     //$mail->sendMail($mail->getSiteMail(),"*****@*****.**",$sujet,$messageHTML,true);
     if (isset($_GET['debug']) && $_GET['debug'] == '1') {
<?php

/**
 * Permet à un utilisateur de passer toutes es images sous licence CC-BY-SA
 * 
 * PHP Version 5.3.3
 * 
 * @category General
 * @package  ArchiWiki
 * @author   Pierre Rudloff <*****@*****.**>
 * @license  GNU GPL v3 https://www.gnu.org/licenses/gpl.html
 * @link     http://archi-wiki.org/
 * 
 * */
$user = new archiUtilisateur();
$auth = new archiAuthentification();
$user = $user->getArrayInfosFromUtilisateur($auth->getIdUtilisateur());
if (isset($_POST["accept"])) {
    if ($config->connexionBdd->requete("UPDATE `historiqueImage` SET `licence` = '1' WHERE idUtilisateur = '" . $auth->getIdUtilisateur() . "' AND licence = '3';")) {
        header("Location: " . $config->creerUrl("", "afficheAccueil", array("modeAffichage" => "monArchi"), false, false));
    }
}
echo "<form method='POST' action='" . $config->creerUrl("", "batchLicence") . "'>";
echo "<q>" . _("Moi, ") . $user["nom"] . " " . $user["prenom"] . " " . _("accepte de publier les images que j'ai contribué\n    au site archi-strasbourg.org sous licence ") . "<a href='https://creativecommons.org/licenses/by-sa/3.0/fr/'>CC-BY-SA</a>.</q>";
echo "<input type='hidden' name='accept' value='" . true . "' />";
echo "<br/><input type='submit' />";
echo "</form>";
 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;
 }
    /**
     * 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);
    }
 /**
  * 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;
 }
 /**
  * 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;
 }
 /**
  * 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));
             }
         }
     }
 }
Example #13
0
if (!isset($_GET['noHTMLHeaderFooter'])) {
    if (!isset($_GET["noHeaderNoFooter"]) && !isset($_POST["noHeaderNoFooter"])) {
        $footerJS = "";
        if (ArchiConfig::getJsFooter() != '') {
            $footerJS = ArchiConfig::getJsFooter();
        }
        include 'modules/footer/index.php';
    } else {
        $footerJS = "";
        if (ArchiConfig::getJsFooter() != '') {
            $footerJS = ArchiConfig::getJsFooter();
        }
        ?>
		<?php 
        echo $footerJS;
        if (!isset($config->isSiteLocal) || $config->isSiteLocal == false) {
            echo "<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-16282574-3\");\npageTracker._trackPageview();\n} catch(err) {}</script>";
        }
        ?>
		</body>
		</html><?php 
    }
}
$fin_compte = microtime(true);
$duree = $fin_compte - $microstart;
$authDebug = new archiAuthentification();
if (!isset($_GET['noHTMLHeaderFooter'])) {
    if ($authDebug->estAdmin()) {
        echo '<br><br>Page g&eacute;n&eacute;r&eacute;e en ' . substr($duree, 0, 5) . ' sec.';
    }
}
 /**
  * Fonction permettant a l'administrateur de visualiser l'historique de l'image
  *
  * @param int $idImage ID de l'image
  *
  * @return string HTML
  * */
 public function afficheHistoriqueImage($idImage = 0)
 {
     $u = new archiUtilisateur();
     $html = "";
     $req = "SELECT idHistoriqueImage, dateUpload, idImage, idUtilisateur, description, dateCliche, isDateClicheEnviron, idSource FROM historiqueImage WHERE idImage='" . $idImage . "'";
     $res = $this->connexionBdd->requete($req);
     $t = new tableau();
     $d = new dateObject();
     $bb = new bbCodeObject();
     $s = new archiSource();
     $authentification = new archiAuthentification();
     $droitsObject = new droitsObject();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $isRegenerationPossible = false;
     if ($droitsObject->isAuthorized('image_regenerer', $idProfilUtilisateur)) {
         $isRegenerationPossible = true;
     }
     while ($fetch = mysql_fetch_assoc($res)) {
         //$html.="<img src='".$this->getUrlImage("moyen").$fetch['dateUpload']."/".$fetch['idHistoriqueImage'].".jpg"."'><br>";
         $t->addValue("<img src='" . $this->getUrlImage("moyen") . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg" . "'>", "valign=top");
         $arrayInfosUtilisateur = $u->getArrayInfosFromUtilisateur($fetch['idUtilisateur'], array('listeChamps' => 'nom, prenom'));
         $libelleUtilisateur = $arrayInfosUtilisateur['nom'] . " " . $arrayInfosUtilisateur['prenom'];
         $dateCliche = " - ";
         if ($fetch['dateCliche'] != '0000-00-00') {
             $environ = "";
             if ($fetch['isDateClicheEnviron'] == '1') {
                 $environ = "Environ ";
             }
             $dateCliche = $environ . $d->toFrenchAffichage($fetch['dateCliche']);
         }
         $libelleSource = $s->getSourceLibelle($fetch['idSource']);
         if ($libelleSource != '') {
             $libelleSource = "<tr><td><b>source : </b>" . $libelleSource . "</td></tr>";
         }
         $description = "";
         if ($fetch['description'] != '') {
             $description = "<tr><td><b>description :</b><br>" . $bb->convertToDisplay(array('text' => $fetch['description'])) . "</td></tr>";
         }
         $detailHistoriqueImage = "<table><tr><td>de <a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $fetch['idUtilisateur'])) . "'>" . $libelleUtilisateur . "</a> (le " . $d->toFrenchAffichage($fetch['dateUpload']) . ")</td></tr><tr><td><b>date cliché : </b>" . $dateCliche . "</td></tr>" . $description . "" . $libelleSource . "</table>";
         $t->addValue($detailHistoriqueImage);
         if ($isRegenerationPossible) {
             $reqRegenerationAvailable = "SELECT idHistoriqueImage ,  idImage ,  cheminImageUploadee FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetch['idHistoriqueImage'] . "' AND idImage='" . $idImage . "'";
             $resRegenerationAvailable = $this->connexionBdd->requete($reqRegenerationAvailable);
             if (mysql_num_rows($resRegenerationAvailable) > 0) {
                 $fetchRegenerationAvailable = mysql_fetch_assoc($resRegenerationAvailable);
                 if (file_exists($this->getCheminPhysique() . "/images/uploadMultiple/" . $fetchRegenerationAvailable['cheminImageUploadee'])) {
                     $t->addValue("<input type='button' name='regenere' value='régéréner les photos à partir de la source' onclick=\"location.href='" . $this->creerUrl('regenereImageFromUploadDir', 'imageDetail', array('archiIdHistoriqueImage' => $fetch['idHistoriqueImage'], 'archiIdImage' => $idImage)) . "';\">");
                 } else {
                     $t->addValue("Enregistrement trouvé,  mais fichier source de régénération inexistant.");
                 }
             } else {
                 $t->addValue("Pas de régénération possible");
             }
         }
     }
     // En principe cette variable represente un idEvenement,  a changer pour l'id evenementGroupeAdresse
     if (isset($this->variablesGet['archiRetourIdValue']) && $this->variablesGet['archiRetourIdValue'] != '') {
         $adresse = new archiAdresse();
         $evenement = new archiEvenement();
         $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesGet['archiRetourIdValue']);
         $html .= $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
     }
     $html .= "<h2>Historique de l'image {$idImage}</h2>";
     if ($isRegenerationPossible) {
         $html .= $t->createHtmlTableFromArray(3, '', '', '');
     } else {
         $html .= $t->createHtmlTableFromArray(2, '', '', '');
     }
     return $html;
 }
 /**
  * Modifier une actualité
  * 
  * @param array $params Paramètres
  * 
  * @return void
  * */
 public function modifierActualite($params = array())
 {
     if (isset($this->variablesPost['idActualite']) && $this->variablesPost['idActualite'] != '') {
         $authentification = new archiAuthentification();
         $idActualite = $this->variablesPost['idActualite'];
         $d = new dateObject();
         $desactive = 0;
         if (isset($this->variablesPost['desactive']) && $this->variablesPost['desactive'] == '1') {
             $desactive = 1;
         }
         $envoi = 0;
         if (isset($this->variablesPost['envoiMailHebdomadaire']) && $this->variablesPost['envoiMailHebdomadaire'] == '1') {
             $envoi = 1;
         }
         $req = "UPDATE actualites SET \n                titre = \"" . mysql_real_escape_string($this->variablesPost['titre']) . "\",\n                sousTitre = \"" . mysql_real_escape_string($this->variablesPost['sousTitre']) . "\",\n                `date` = \"" . $d->toBdd(mysql_real_escape_string($this->variablesPost['date'])) . "\",\n                texte = \"" . mysql_real_escape_string($this->variablesPost['texte']) . "\",\n                urlFichier = \"" . mysql_real_escape_string($this->variablesPost['urlFichier']) . "\",\n                fichierPdf = \"" . mysql_real_escape_string($this->variablesPost['fichierPdf']) . "\",\n                desactive = '" . $desactive . "',\n                texteMailHebdomadaire = \"" . mysql_real_escape_string($this->variablesPost['texteMailHebdomadaire']) . "\",\n                envoiMailHebdomadaire = '" . $envoi . "'\n                WHERE idActualite = '" . $idActualite . "'\n            ";
         $res = $this->connexionBdd->requete($req);
         //photoIllustration = \"".mysql_real_escape_string($this->variablesPost['photoIllustration'])."\",
         $f = new fileObject();
         if (!file_exists($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/")) {
             mkdir($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/");
         }
         // gestion de l'upload
         if (isset($_FILES['photoIllustration']) && !$_FILES['photoIllustration']['error']) {
             if (file_exists($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg")) {
                 unlink($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg");
             }
             $f->handleUploadedFileSimpleMoveTo(array('inputFileName' => 'photoIllustration', 'redimensionneImageConfig' => array(200 => array('destination' => $this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg"))));
             // on met a jour la bdd , meme si dans les prochaines actu cela ne sert a rien de garder le champs , vu le fonctionnement, on le garde pour les anciennes actus
             $reqIllustration = "UPDATE actualites SET photoIllustration='illustration200.jpg' WHERE idActualite='" . $idActualite . "' ";
             $resIllustration = $this->connexionBdd->requete($reqIllustration);
         }
         // on verifie dans le repertoire d'uploadMultiple pour voir s'il y a des images a transferer
         if (file_exists($this->getCheminPhysique() . "images/uploadMultipleActualites/")) {
             $f->convertDirectoryFilesNamesToUTF8(array('repertoire' => $this->getCheminPhysique() . "images/uploadMultipleActualites/"));
             $arrayFiles = $f->getListeFichiersArrayFrom($this->getCheminPhysique() . "images/uploadMultipleActualites/");
             foreach ($arrayFiles as $indice => $fichier) {
                 // on deplace tous les fichiers dans le repertoire de l'actu , ceux qui auront le meme nom seront ecrasés.
                 if ($fichier != '.' && $fichier != '..') {
                     rename($this->getCheminPhysique() . "images/uploadMultipleActualites/" . $fichier, $this->getCheminPhysique() . "images/actualites/" . $idActualite . "/" . $f->removeSpecialCharFromFileName($fichier));
                 }
             }
             $f->convertDirectoryFilesNamesToUTF8(array('repertoire' => $this->getCheminPhysique() . "images/actualites/{$idActualite}/"));
         }
         if ($this->variablesPost['urlFichier'] == '') {
             // evite de creer un fichier pdf pour rien, si urlFichier est renseigné, c'est que c'est une redirection vers une page , pas du texte saisi dans la news
             // creation automatique du fichier pdf
             $pdfObject = new pdfObject();
             $titre = "<div align=center><h2>" . stripslashes($this->variablesPost['titre']) . "</h2></div><br>";
             $sousTitre = "<div align=center><h3>" . stripslashes($this->variablesPost['sousTitre']) . "</h3></div><br>";
             $texte = stripslashes($this->variablesPost['texte']);
             $pdfObject->setContent(stripslashes($titre . $sousTitre . $texte));
             $pdfObject->writeToFile($this->getCheminPhysique() . "images/actualites/{$idActualite}/versionPdf.pdf");
             if (file_exists($this->getCheminPhysique() . "images/actualites/{$idActualite}/versionPdf.pdf")) {
                 $reqUpdatePdf = "UPDATE actualites SET fichierPdf='versionPdf.pdf' WHERE idActualite = '{$idActualite}'";
                 $resUpdatePdf = $this->connexionBdd->requete($reqUpdatePdf);
             }
         }
         if (isset($this->variablesGet['previsualisationMail']) && $this->variablesGet['previsualisationMail'] == '1') {
             $preview = isset($_GET["preview"]) ? "&preview=1" : "";
             $testMail = isset($_GET["testMail"]) ? "&testMail=1" : "";
             echo "<script>location.href='" . $this->getUrlRacine() . "/script/cronMailsNouvellesAdresses.php?modePrevisualisationAdmin=1&idActualite={$idActualite}&idUtilisateur=" . $authentification->getIdUtilisateur() . $preview . $testMail . "';</script>";
             //$this->creerUrl('','', array("modePrevisualisationAdmin"=>1,"idActualite"=>$idActualite,"idUtilisateur"=>$authentification->getIdUtilisateur()))
         }
     }
 }