public function afficherRecapitulatifAdresses($idEvenementGroupeAdresse = 0)
 {
     $html = "";
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('recapitulatifAdresses' => 'recapitulatifAdresses.tpl'));
     $retourAdresse = $this->afficherListe(array('archiIdEvenement' => $idEvenementGroupeAdresse, 'useTemplateFile' => 'listeAdressesDetailEvenement.tpl'), 'listeDesAdressesDuGroupeAdressesSurDetailAdresse');
     $t->assign_vars(array('recapitulatifAdresses' => $retourAdresse['html']));
     $t->assign_vars(array('urlAutresBiensRue' => $retourAdresse['arrayRetourLiensVoirBatiments']['urlAutresBiensRue'], 'urlAutresBiensQuartier' => $retourAdresse['arrayRetourLiensVoirBatiments']['urlAutresBiensQuartier']));
     $idAdresseCourante = 0;
     if (isset($this->variablesGet['archiIdAdresse'])) {
         $idAdresseCourante = $this->variablesGet['archiIdAdresse'];
     }
     // ************************************************************************************************************************
     // affichage carte googlemap dans une iframe
     // && $coordonnees['latitude']>48.3776285 && $coordonnees['latitude']<48.78554409 && $coordonnees['longitude']>7.47482299 && $coordonnees['longitude']<7.993927001
     $coordonnees = $this->getCoordonneesFrom($retourAdresse['arrayIdAdresses'][0], 'idAdresse');
     if (count($coordonnees) == 2 && $coordonnees['longitude'] != '' && $coordonnees['latitude'] != '' && $coordonnees['longitude'] != '0' && $coordonnees['latitude'] != '0' && $coordonnees['longitude'] > 0 && $coordonnees['latitude'] > 0) {
         $evenement = new archiEvenement();
         $calqueGoogleMap = new calqueObject(array('idPopup' => 10));
         $contenuIFramePopup = $evenement->getContenuIFramePopupGoogleMap(array('idAdresseCourante' => $idAdresseCourante, 'calqueObject' => $calqueGoogleMap, 'idEvenementGroupeAdresseCourant' => $idEvenementGroupeAdresse));
         $t->assign_block_vars('isCarteGoogle', array('src' => $this->creerUrl('', 'afficheGoogleMapIframe', array('noHeaderNoFooter' => 1, 'longitude' => $coordonnees['longitude'], 'latitude' => $coordonnees['latitude'], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'archiIdAdresse' => $idAdresseCourante)), 'lienVoirCarteGrand' => "<a href='#' onclick=\"" . $calqueGoogleMap->getJsOpenPopupNoDraggableWithBackgroundOpacity() . "document.getElementById('iFrameDivPopupGM').src='" . $this->creerUrl('', 'afficheGoogleMapIframe', array('longitude' => $coordonnees['longitude'], 'latitude' => $coordonnees['latitude'], 'noHeaderNoFooter' => true, 'archiIdAdresse' => $idAdresseCourante, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'modeAffichage' => 'popupDetailAdresse')) . "';\" style='font-size:11px;'>" . _("voir la carte en + grand") . "</a>", 'popupGoogleMap' => $calqueGoogleMap->getDivNoDraggableWithBackgroundOpacity(array('top' => 20, 'lienSrcIFrame' => '', 'contenu' => $contenuIFramePopup))));
         $t->assign_vars(array('largeurTableauAdresse' => 420, 'hauteurRecapAdresse' => '277'));
     } else {
         $t->assign_vars(array('largeurTableauAdresse' => 700, 'hauteurRecapAdresse' => ''));
     }
     // ************************************************************************************************************************
     ob_start();
     $t->pparse('recapitulatifAdresses');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
Example #2
0
 * @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 = "";
}
if (!isset($jsFooter)) {
    $jsFooter = "";
}
$titreSite = $config->titreSite;
$titre = _("Archi-Wiki. Tous architectes ! Partageons la ville, ses bâtiments, ses lieux.");
$description = $config->descSite;
$motsCle = "";
 /**
  * Gestion d'un sondage
  *
  * @param array $params Paramètres
  *
  * @return string HTML
  * */
 public function gestionSondage($params = array())
 {
     $t = new Template($this->getCheminPhysique() . $this->cheminTemplates);
     if (isset($params['modeAffichage']) && $params['modeAffichage'] == 'resultatAccueil') {
         $t->set_filenames(array('sondage' => 'sondageRESULTAT.tpl'));
     } else {
         $t->set_filenames(array('sondage' => 'sondageTEMPORAIRE.tpl'));
         $c = new calqueObject();
         $t->assign_vars(array('jsScroll' => $c->getJsScrollDivWithPage(array('conditionsToScrollBegin' => "if ((document.getElementById('texteSuite').style.display=='block' && y_<4650) || (document.getElementById('texteSuite').style.display=='none' && y_<100))", 'identifiantDivToScroll' => "divScroll"))));
         // verification : est ce que la personne a deja participé aujourd'hui
         $ip = $_SERVER['REMOTE_ADDR'];
         if (trim($ip) == '') {
             // on assigne une ip temporaire,  soit un nombre aleatoire pour pouvoir comptabiliser le vote quand meme ,  on pourra toujours les supprimer si quelqu'un exagere
             $ip = rand(0, 1000000);
         }
         $reqVerif = "SELECT idResultat FROM sondagesResultats WHERE ip like '{$ip}' AND date=CURDATE()";
         $resVerif = $this->connexionBdd->requete($reqVerif);
         if (isset($params['modeAffichage']) && $params['modeAffichage'] == 'noFormulaire' || mysql_num_rows($resVerif) > 0) {
             $t->assign_block_vars('resultatsSondage', array('resultats' => $this->afficheResumeSondage(array('idSondage' => 1))));
         } else {
             // nouvelle participation
             // recuperation des propositions
             $reqPropositions = "SELECT idProposition, libelleProposition FROM sondagesPropositions WHERE idSondage='1'";
             $resPropositions = $this->connexionBdd->requete($reqPropositions);
             $t->assign_block_vars('afficheFormSondage', array());
             while ($fetchPropositions = mysql_fetch_assoc($resPropositions)) {
                 $t->assign_block_vars('afficheFormSondage.propositions', array('idProposition' => $fetchPropositions['idProposition'], 'libelleProposition' => $fetchPropositions['libelleProposition']));
             }
             $t->assign_vars(array('formAction' => $this->creerUrl('enregistrerEntreeSondage', 'afficheAccueil')));
         }
     }
     if (isset($params['afficheToutLeTexte']) && $params['afficheToutLeTexte'] == true) {
         $displaySuite = "block";
         $styleAccueil = "";
         $lienSuite = "";
     } else {
         $displaySuite = "none";
         $styleAccueil = "border:3px solid #000000;padding:5px;";
         if (isset($params['modeAffichage']) && $params['modeAffichage'] == 'resultatAccueil') {
             $lienSuite = "<a href='" . $this->creerUrl('', 'afficheSondageResultatGrand') . "'>" . _("Lire la suite") . "</a>";
         } else {
             $lienSuite = "<a href='" . $this->creerUrl('', 'afficheSondageGrand') . "'>" . _("Lire la suite") . "</a>";
         }
     }
     if (isset($params['modeAffichage']) && $params['modeAffichage'] == 'resultatAccueil') {
         $t->assign_vars(array('pictoSrc' => '', 'displaySuite' => $displaySuite, 'lienSuite' => $lienSuite, 'styleAccueil' => $styleAccueil, 'urlIconePdf' => $this->urlImages . 'logo_pdf.jpg', 'urlDocumentPdf' => $this->urlImages . 'publicite/avenirFinancementArchiStrasbourg.pdf', 'resultats' => $this->afficheResumeSondage(array('idSondage' => 1)), 'urlArticlePresentation' => $this->creerUrl('', 'afficheSondageGrand')));
     } else {
         $t->assign_vars(array('pictoSrc' => $this->urlImages . 'pictoSondage.jpg', 'displaySuite' => $displaySuite, 'lienSuite' => $lienSuite, 'styleAccueil' => $styleAccueil, 'urlIconePdf' => $this->urlImages . 'logo_pdf.jpg', 'urlDocumentPdf' => $this->urlImages . 'publicite/avenirFinancementArchiStrasbourg.pdf'));
     }
     ob_start();
     $t->pparse('sondage');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 public function afficheFormulaireAdresseLieeEvenement($params = array())
 {
     $html = "";
     $a = new archiAdresse();
     $c = new calqueObject();
     // on place la popup dans le code
     $html .= $c->getDiv(array('width' => 700, 'height' => 400, 'left' => 200, 'top' => 200, 'lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupAjoutAdressesLieesSurEvenement')), 'titrePopup' => "recherche d'adresses"));
     // rendre la popup deplacable
     $html .= "<script  >" . $c->getJsToDragADiv() . "</script>";
     $html .= "\n\t\t\t\t<script  >\n\t\t\t\tfunction retirerGroupeAdresse(idGroupeAdresseValue)\n\t\t\t\t{\n\t\t\t\tdocument.getElementById('listeGroupesAdressesLiees').innerHTML=''; // on vide le div\n\n\t\t\t\tif(idGroupeAdresseValue!=0)\n\t\t\t\t{\n\t\t\t\tselectField = document.getElementById('listeIdGroupesAdressesLiees');\n\t\t\t\tdivField = document.getElementById('listeGroupesAdressesLiees');\n\t\t\t\tfor(i=0 ; i<selectField.options.length; i++ )\n\t\t\t\t{\n\t\t\t\tif(selectField.options[i]!=null)\n\t\t\t\t{\n\t\t\t\tif(selectField.options[i].value==idGroupeAdresseValue)\n\t\t\t\t{\n\t\t\t\tindiceARetirer = i;\n\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\tdivField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\\'retirerGroupeAdresse('+selectField.options[i].value+')\\'>(-)</a><br>';\n\t}\n\t}\n\t}\n\n\t\t\t\tselectField.options[indiceARetirer]=null;\n\t}\n\n\t}\n\n\t\t\t\t</script>";
     if (isset($params['idEvenement'])) {
         $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdEvenement($params['idEvenement']);
         $html .= $a->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
         $html .= $this->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $params['idEvenement']);
         $html .= "<h1>Lier des adresses</h1>";
         $reqAdresses = $a->getIdAdressesFromIdEvenement(array('idEvenement' => $params['idEvenement']));
         $resAdresses = $this->connexionBdd->requete($reqAdresses);
         $fetchAdresses = mysql_fetch_assoc($resAdresses);
         // on prend la premiere adresse
         $codeAppelPopupRechercheAdresseLiee = "document.getElementById('" . $c->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupAjoutAdressesLieesSurEvenement')) . "';";
         // ensuite on place le code pour l'affichage
         $codeAppelPopupRechercheAdresseLiee .= $c->getJSOpenPopup();
         $html .= _("Ajouter des adresses qui seront liées à cet evenement :") . " <a onclick=\"{$codeAppelPopupRechercheAdresseLiee}\" style='cursor:pointer;'>Ajouter</a><br>";
         $html .= "<form action='" . $this->creerUrl('enregistreAdressesLieesAEvenement', 'adresseDetail', array('idEvenement' => $params['idEvenement'], 'archiIdAdresse' => $fetchAdresses['idAdresse'])) . "' name='formAdressesLiees' method='POST' enctype='multipart/form-data'>";
         $html .= "<select name='listeIdGroupesAdressesLiees[]' id='listeIdGroupesAdressesLiees' multiple style='display:none;'>" . $this->getAdressesLieesAEvenement(array('modeRetour' => 'optionsListeSelect', 'idEvenement' => $params['idEvenement'])) . "</select>";
         $html .= "<div id='listeGroupesAdressesLiees'>" . $this->getAdressesLieesAEvenement(array('modeRetour' => 'affichageHTML', 'idEvenement' => $params['idEvenement'])) . "</div>";
         $html .= "<input type='submit' value='" . _("Enregistrer") . "'>";
         $html .= "</form>";
     }
     return $html;
 }
 /**
  * Return HTML of the events related to user
  * @param unknown $userId
  * @param string $strategy
  * @return string
  */
 private function getEvenements($userId, $typeEvenement)
 {
     include_once 'includes/framework/frameworkClasses/finediff.class.php';
     $date = new dateObject();
     $paginationEvenements = new paginationObject();
     $adresse = new archiAdresse();
     $calque = new calqueObject();
     $monArchi = $calque->getHtmlDivContextualHelp();
     // calcul du nombre d'evenements ajoutes ou modifies pour la pagination
     if ($typeEvenement == "crees") {
         $req = "\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse, he1.dateCreationEvenement as dateCreationEvenement,hev.idHistoriqueEvenement \n   \n\t\t\t\t\t\tFROM evenements he2,  evenements he1\n    \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    \t\t\t\n    \t\t\t\t\tLEFT JOIN historiqueEvenement hev on hev.idEvenement = he1.idEvenement \n   \n\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\tAND he1.idUtilisateur = '" . $userId . "'\n\t\t\t\t\t\tGROUP BY he1.idEvenement,  ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) \n\t\t\t\t\t\tORDER BY dateCreationEvenement DESC\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
     } else {
         if ($typeEvenement == 'modifies') {
             $req = "\n\t\t\t\t\t\tSELECT distinct ha1.idAdresse, he1.dateCreationEvenement as dateCreationEvenement,he1.idHistoriqueEvenement,he2.idHistoriqueEvenement\n   \n\t\t\t\t\t\tFROM historiqueEvenement he2,  historiqueEvenement he1\n    \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 = '" . $userId . "'\n\t\t\t\t\t\tGROUP BY he1.idEvenement,  ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) and he1.idHistoriqueEvenement = MIN(he2.idHistoriqueEvenement)\n\t\t\t\t\t\tORDER BY dateCreationEvenement DESC\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
         }
     }
     $res = $this->connexionBdd->requete($req);
     $nbEnregistrementTotaux = mysql_num_rows($res);
     $nbEnregistrementsParPage = 5;
     $arrayPaginationEvenements = $paginationEvenements->pagination(array('nomParamPageCourante' => 'archiMonArchiEvenementPage', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
     if ($typeEvenement == "modifies") {
         $request = "\n    \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    \t\n\t\t\t\t\t\tha1.idAdresse as idAdresse,  ha1.numero,  ha1.idQuartier,  ha1.idVille, ind.nom,\n    \t\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\the1.titre as titre,\n    \t\t\t\t\the1.description as description,\n\t\t\t\t\t\tha1.idSousQuartier AS idSousQuartier,\n\t\t\t\t\t\tha1.idQuartier AS idQuartier,\n\t\t\t\t\t\tha1.idVille AS idVille,\n\t\t\t\t\t\tha1.idPays AS idPays,\n    \t\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    \t\t\t\t\the1.idHistoriqueEvenement,\n    \t\t\t\t\the2.idHistoriqueEvenement\n    \t\n\t\t\t\t\t\tFROM historiqueEvenement he2,  historiqueEvenement 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\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier =  ha1.idSousQuartier \n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier =  ha1.idQuartier \n\t\t\t\t\t\tLEFT JOIN ville v        ON v.idVille = ha1.idVille \n\t\t\t\t\t\tLEFT JOIN pays p        ON p.idPays = ha1.idPays \n    \t\n\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\tAND he1.idUtilisateur = '{$userId}'\n\n\t\t\t\t\t\tGROUP BY he1.idHistoriqueEvenement,ha1.idAdresse,ha1.idHistoriqueAdresse\n\t\t\t\t\t\tHAVING count(he1.idHistoriqueEvenement) >1 and he1.idHistoriqueEvenement = max(he2.idHistoriqueEvenement)\n\t\t\t\t\t\tORDER BY he1.dateCreationEvenement DESC\n    \t    \t\t\t\n\t\t\t\t\t\t\t\t";
     } else {
         if ($typeEvenement == "crees") {
             $request = "\n    \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    \t\n\t\t\t\t\t\tha1.idAdresse as idAdresse,  ha1.numero,  ha1.idQuartier,  ha1.idVille, ind.nom,\n    \t\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\the1.titre as titre,\n    \t\t\t\t\the1.description as description,\n\t\t\t\t\t\tha1.idSousQuartier AS idSousQuartier,\n\t\t\t\t\t\tha1.idQuartier AS idQuartier,\n\t\t\t\t\t\tha1.idVille AS idVille,\n\t\t\t\t\t\tha1.idPays AS idPays,\n    \t\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    \t\t\t\t\the1.idHistoriqueEvenement,\n    \t\t\t\t\the2.idHistoriqueEvenement\n    \t\n\t\t\t\t\t\tFROM historiqueEvenement he2,  historiqueEvenement 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\t\t\t\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\t\t\t\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\t\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier =  ha1.idSousQuartier \n\t\t\t\t\t\tLEFT JOIN quartier q        ON q.idQuartier =  ha1.idQuartier \n\t\t\t\t\t\tLEFT JOIN ville v        ON v.idVille = ha1.idVille \n\t\t\t\t\t\tLEFT JOIN pays p        ON p.idPays = ha1.idPays \n    \t\n\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\tAND he1.idUtilisateur = '{$userId}'\n\t\t\t\t\t\tGROUP BY he1.idEvenement,  ha1.idAdresse,  ha1.idHistoriqueAdresse\n\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) and he1.idHistoriqueEvenement = {$strategy}(he2.idHistoriqueEvenement)\n\t\t\t\t\t\tORDER BY he1.dateCreationEvenement DESC\n    \t\t    \t\t";
         }
     }
     $req = $paginationEvenements->addLimitToQuery($request);
     $res = $this->connexionBdd->requete($req);
     if ($typeEvenement == "modifies") {
         $monArchi .= "<b>" . _("Liste de vos derniers événements modifiés :") . "</b><br>";
     } else {
         if ($typeEvenement == "crees") {
             $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)) {
         $idHistoriqueEvenement = $fetch['idHistoriqueEvenement'];
         $requeteDiff = "\n    \t\tSELECT he1.idTypeEvenement , he1.idTypeStructure, he1.idUtilisateur,he1.idSource,he1.titre, he1.description,he1.dateDebut,he1.isDateDebutEnviron,he1.dateFin,he1.nbEtages,he1.ISMH,he1.MH,he1.numeroArchive,he1.idEvenementRecuperationTitre,he1.idImagePrincipale,he1.parent\n    \t\tFROM historiqueEvenement he1 ,historiqueEvenement he2\n    \t\tWHERE he1.idEvenement = he2.idEvenement\n    \t\tAND he2.idHistoriqueEvenement = {$idHistoriqueEvenement}\n    \t\tORDER BY he1.idHistoriqueEvenement DESC\n    \t\tLIMIT 2\n    \t\t";
         $resDiff = $this->connexionBdd->requete($requeteDiff);
         if (mysql_num_rows($resDiff) == 2) {
             $newEvenement = mysql_fetch_assoc($resDiff);
             $oldEvenement = mysql_fetch_assoc($resDiff);
             $diff = array_diff($newEvenement, $oldEvenement);
             $keysDiff = array_keys($diff);
             $u = new archiUtils();
             //debug(array($requeteDiff,$keysDiff));
             /*foreach ($keysDiff as $key){
             		echo "<div>".$key."</div>";
             		$opcodes = FineDiff::getDiffOpcodes($oldEvenement[$key], $newEvenement[$key] , FineDiff::$wordGranularity);
             		//echo "<pre>".FineDiff::renderDiffToHTMLFromOpcodes($oldEvenement[$key], $opcodes)."</pre>";
             		}*/
             /*
              * $calque->getHtmlDivContextualHelp()."<b>"._("En tant qu'utilisateur vous pouvez :")."</b><ul>
             <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>
             <li> <span onmouseover=\"".$calque->getJsContextHelpOnMouseOver
             */
             /*$modifications="Type de modifications : ";
             		 $modifications .= implode(' , ',$keysDiff);
             		 debug($keysDiff);
             		*/
             $modifications = $this->getIntituleModif($keysDiff);
         } else {
         }
         $tableauEvenements->addValue($date->toFrench($fetch['dateCreationEvenement']));
         if ($typeEvenement == "modifies") {
             $tableauEvenements->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'])) . "' onmouseover=\"" . $calque->getJsContextHelpOnMouseOver($modifications) . "\"  onmouseout=\"" . $calque->getJSContextHelpOnMouseOut() . "\">" . stripslashes($adresse->getIntituleAdresse($fetch)) . "</a>");
         } else {
             if ($typeEvenement == "crees") {
                 $tableauEvenements->addValue("<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'])) . "' >" . stripslashes($adresse->getIntituleAdresse($fetch)) . "</a>");
             }
         }
     }
     $monArchi .= $tableauEvenements->createHtmlTableFromArray(2, "font-size:12px;");
     return $monArchi;
 }
 public function afficherFormulaireModification($id = 0, $type = '', $arrayListeIdImages = array())
 {
     $html = "";
     $utilisateur = new archiUtilisateur();
     $authentification = new archiAuthentification();
     //echo "afficherFormulaireModification : id=".$id." type=".$type;
     $arrayModifUrlParams = array();
     echo "<script>\n\n            function retirerPrisDepuis(idAdresseValue, identifiantUniqueRetour) {\n                document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour).innerHTML='';\n\n                if (idAdresseValue!=0)\n                {\n                    selectField = document.getElementById('prisDepuis'+identifiantUniqueRetour);\n                    divField = document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour);\n                    for(i=0 ; i<selectField.options.length; i++ ) {\n                        if (selectField.options[i]!=null) {\n                            if (selectField.options[i].value==idAdresseValue)\n                            {\n                                indiceARetirer = i;\n                            }\n                            else\n                            {\n                                divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\"retirerPrisDepuis(\\''+selectField.options[i].value+'\\',  '+identifiantUniqueRetour+')\">(-)</a><br>';\n                            }\n                        }\n                    }\n\n                    selectField.options[indiceARetirer]=null;\n                }\n\n            }\n\n\n            function retirerVueSur(idAdresseValue, identifiantUniqueRetour) {\n                document.getElementById('listeVueSurDiv'+identifiantUniqueRetour).innerHTML='';\n\n                if (idAdresseValue!=0)\n                {\n                    selectField = document.getElementById('vueSur'+identifiantUniqueRetour);\n                    divField = document.getElementById('listeVueSurDiv'+identifiantUniqueRetour);\n                    for(i=0 ; i<selectField.options.length; i++ ) {\n                        if (selectField.options[i]!=null) {\n                            if (selectField.options[i].value==idAdresseValue)\n                            {\n                                indiceARetirer = i;\n                            }\n                            else\n                            {\n                                divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\\\"retirerVueSur(\\''+selectField.options[i].value+'\\',  '+identifiantUniqueRetour+')\\\">(-)</a><br>';\n                            }\n                        }\n                    }\n\n                    selectField.options[indiceARetirer]=null;\n                }\n\n            }\n            </script>\n        ";
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('imageFormModif' => 'imageFormulaire.tpl'));
     /******
      ** Source - récupration
      **/
     $sqlSource = 'SELECT idSource,  nom,  idTypeSource FROM source';
     $tabSource = array();
     if ($result = $this->connexionBdd->requete($sqlSource)) {
         while ($rep = mysql_fetch_object($result)) {
             $tabSource[$rep->idSource] = $rep->nom;
         }
     }
     switch ($type) {
         case 'adresse':
             break;
         case 'evenement':
             // recherche des images liées a l'evenement
             $arrayListeIdImages = array();
             if (isset($this->variablesGet['archiIdEvenement']) && $this->variablesGet['archiIdEvenement'] != '0' && $this->variablesGet['archiIdEvenement'] != '') {
                 $evenement = new archiEvenement();
                 $adresse = new archiAdresse();
                 // affichages des recapitulatifs en haut de la page ( adresse + titres des evenements)
                 $idEvenementGroupeAdresse = $evenement->getParent($this->variablesGet['archiIdEvenement']);
                 $idEvenementCourant = $this->variablesGet['archiIdEvenement'];
                 if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
                 }
                 $t->assign_vars(array("recapitulatifHistoriqueEvenements" => $evenement->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $idEvenementCourant)));
                 $t->assign_vars(array("liensModifEvenements" => $evenement->afficherLiensModificationEvenement($idEvenementCourant)));
                 $reqEvenement = "SELECT distinct idImage from _evenementImage WHERE idEvenement ='" . $this->variablesGet['archiIdEvenement'] . "' ORDER BY position";
                 $resEvenement = $this->connexionBdd->requete($reqEvenement);
                 while ($fetchEvenement = mysql_fetch_assoc($resEvenement)) {
                     $arrayListeIdImages[] = $fetchEvenement['idImage'];
                 }
             }
             break;
         default:
             if (count($arrayListeIdImages) == 1) {
                 $evenement = new archiEvenement();
                 $adresse = new archiAdresse();
                 if (isset($this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'] != '') {
                     $idEvenementGroupeAdresse = $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'];
                     $arrayModifUrlParams = array('archiIdEvenementGroupeAdresseAffichageAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']);
                 } else {
                     $idEvenementImageUnique = $this->getArrayIdEvenementFromIdImage($arrayListeIdImages[0]);
                     $idEvenementGroupeAdresse = $evenement->getParent($idEvenementImageUnique);
                 }
                 if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
                 }
             }
             break;
     }
     //echo "afficherFormulaireModification $type";
     // cas ou le ne precise pas de idCourant ni de type de liaison ( la photo n'est ni liee a un evenement ni une adresse)
     // on modifie une liste d'images
     // *****************************************************************************************************************************************************************
     if (count($arrayListeIdImages) > 0) {
         $t->assign_block_vars('isImages', array());
         $listeIdImagesAModifier = implode("',  '", $arrayListeIdImages);
         $requeteImages = "\n                SELECT\n                    hi1.idHistoriqueImage as idHistoriqueImage, hi1.idImage as idImage, hi1.nom as nom,\n                    hi1.dateUpload as dateUpload, hi1.dateCliche as dateCliche, hi1.description as description, hi1.tags as tags,\n                    hi1.idUtilisateur as idUtilisateur, u.nom as nomUtilisateur,  u.prenom as prenomUtilisateur,\n                    hi1.idSource as idSource,  hi1.isDateClicheEnviron as isDateClicheEnviron,\n                    hi1.numeroArchive as numeroArchive,\n                    if (_ai.idImage IS NULL,  0, 1) as isAdresseImage,\n                    if (_ei.idImage IS NULL,  0, 1) as isEvenementImage,\n\n                    _ai.seSitue as seSitue,\n                    _ai.prisDepuis as prisDepuis,\n                    _ai.etage as etage,\n                    _ai.hauteur as hauteur,\n                    _ai.idAdresse as idAdresse,\n                    _ei.idEvenement as idEvenement\n\n                FROM historiqueImage hi2, historiqueImage hi1\n                LEFT JOIN _evenementImage _ei ON _ei.idImage = hi1.idImage\n                LEFT JOIN _adresseImage _ai ON _ai.idImage = hi1.idImage\n                LEFT JOIN utilisateur u ON u.idUtilisateur = hi1.idUtilisateur\n\n                WHERE hi2.idImage = hi1.idImage\n                AND hi1.idImage IN ('" . $listeIdImagesAModifier . "')\n                GROUP BY hi1.idImage, hi1.idHistoriqueImage\n                HAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\n            ";
         $resImage = $this->connexionBdd->requete($requeteImages);
         $i = 0;
         $nomUtilisateur = "";
         $prenomUtilisateur = "";
         $listeId = array();
         $adresseObject = new archiAdresse();
         // ********************************************************************************************************************************************
         // boucle sur les images
         // ********************************************************************************************************************************************
         while ($fetch = mysql_fetch_array($resImage)) {
             if ($i == 0) {
                 $nomUtilisateur = $fetch["nomUtilisateur"];
                 $prenomUtilisateur = $fetch["prenomUtilisateur"];
             }
             $dateCliche = "";
             if ($this->date->toFrench($fetch['dateCliche']) == '00/00/0000') {
                 $dateCliche = "";
             } else {
                 $dateCliche = $this->date->toFrench($fetch['dateCliche']);
             }
             // ***********************************************************
             // GESTION AFFICHAGE ADRESSES CHAMPS MULTIPLES
             // gestion de l'affichage des adresses de chaque photo
             //$arrayGereAffichage = $this->gereAffichageAdresses($fetch['idHistoriqueImage'],  $fetch['idImage'],  'modif');
             // ***********************************************************
             //$nbAdressesAffichees = $arrayGereAffichage['nbAdressesAffichees'];
             $adresseObject = new archiAdresse();
             $stringObject = new stringObject();
             // adresses prisDepuis
             $reqPrisDepuis = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND prisDepuis='1'";
             $resPrisDepuis = $this->connexionBdd->requete($reqPrisDepuis);
             $selectPrisDepuisHTML = "";
             $divPrisDepuisHTML = "";
             while ($fetchPrisDepuis = mysql_fetch_assoc($resPrisDepuis)) {
                 if ($fetchPrisDepuis['idEvenementGroupeAdresse'] != '0') {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true));
                 } else {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idAdresse'], 'idAdresse');
                 }
                 $selectPrisDepuisHTML .= "<option value='" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>";
                 $divPrisDepuisHTML .= $nomAdresse . "<a onclick=\"retirerPrisDepuis('" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "',  " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>";
             }
             // adresses vueSur
             $reqVueSur = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND vueSur='1'";
             $resVueSur = $this->connexionBdd->requete($reqVueSur);
             $selectVueSurHTML = "";
             $divVueSurHTML = "";
             while ($fetchVueSur = mysql_fetch_assoc($resVueSur)) {
                 if ($fetchVueSur['idEvenementGroupeAdresse'] != '0') {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true));
                 } else {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idAdresse'], 'idAdresse');
                 }
                 $selectVueSurHTML .= "<option value='" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>";
                 $divVueSurHTML .= $nomAdresse . "<a onclick=\"retirerVueSur('" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "',  " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>";
             }
             // ***********************************************************
             // RECUPERATION DES SOURCES
             // on recupere le nom de la source
             // ***********************************************************
             $reqSource = "\n                            select s.idSource as idSource, s.nom as nom,  ts.nom as nomTS ,  if (ts.nom<>'', concat('(', ts.nom,  ')'),  '')as nomTypeSource\n                            from source s\n                            left join typeSource ts ON ts.idTypeSource = s.idTypeSource\n                            where idSource = '" . $fetch['idSource'] . "'";
             $resSource = $this->connexionBdd->requete($reqSource);
             $fetchSource = mysql_fetch_assoc($resSource);
             // ***********************************************************
             // ***********************************************************
             // recuperation des données POST,  avec par defaut les valeurs de la base de données
             // ***********************************************************
             $checkIsDateClicheEnviron = 0;
             if ($fetch['isDateClicheEnviron'] == 1) {
                 $checkIsDateClicheEnviron = 1;
             }
             $tabForm = array('nom_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['nom']), 'description_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['description']), 'dateUpload_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateUpload'])), 'dateCliche_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateCliche'])), 'isDateClicheEnviron_' . $fetch['idHistoriqueImage'] => array('type' => 'checkbox', 'required' => false, 'value' => '', 'default' => $checkIsDateClicheEnviron), 'source' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['idSource']), 'source' . $fetch['idHistoriqueImage'] . 'txt' => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetchSource['nom'] . ' ' . $fetchSource['nomTypeSource'] . ''), 'numeroArchive_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['numeroArchive']));
             $formulaire = new formGenerator();
             // appel de la fonction recuperant les valeurs du formulaire
             $errors = $formulaire->getArrayFromPost($tabForm);
             // ***********************************************************
             // ***********************************************************
             // assignation des champs de l'adresse
             // ***********************************************************
             $popupPrisDepuis = new calqueObject(array('idPopup' => 'popupPrisDepuis' . $fetch['idHistoriqueImage']));
             $popupVueSur = new calqueObject(array('idPopup' => 'popupVueSur' . $fetch['idHistoriqueImage']));
             $checkIsDateClicheEnviron = '';
             if ($tabForm['isDateClicheEnviron_' . $fetch['idHistoriqueImage']]['value'] == '1') {
                 $checkIsDateClicheEnviron = 'checked';
             }
             $auteur = $this->getAuteur($fetch['idImage']);
             if (is_array($auteur)) {
                 $nomUpload = $auteur["nom"];
                 $nomAuteur = "";
             } else {
                 $nomAuteur = $auteur;
                 $nomUpload = "";
             }
             $licence = $this->getLicence($fetch['idImage']);
             $idUtilisateur = $authentification->getIdUtilisateur();
             $utilisateur = new ArchiUtilisateur();
             if ($licence["id"] == 3 && !$utilisateur->isAuthorized('admin_licences', $idUtilisateur) && !$utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) {
                 $selectLicenceHTML = "<span title='" . htmlspecialchars(_("Seul l'auteur peut changer la licence de cette image."), ENT_QUOTES) . "'>" . $licence["name"] . "</span>";
                 $enableAuthor = "disabled='disabled'";
             } else {
                 $enableAuthor = "";
                 $reqLicence = $this->connexionBdd->requete("SELECT * FROM licences");
                 $selectLicenceHTML = "";
                 while ($fetchLicence = mysql_fetch_assoc($reqLicence)) {
                     if ($fetchLicence["id"] != 3 || $utilisateur->isAuthorized('admin_licences', $idUtilisateur) || $utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) {
                         $selectLicenceHTML .= "<input type='radio' value='" . $fetchLicence["id"] . "' id='licence_" . $fetchLicence["id"] . "' name='licence_" . $fetch['idHistoriqueImage'] . "'";
                         if ($fetchLicence["id"] == $licence["id"]) {
                             $selectLicenceHTML .= " checked='checked' ";
                         }
                         $selectLicenceHTML .= "/>";
                         $selectLicenceHTML .= "<label title='" . htmlspecialchars($fetchLicence["description"], ENT_QUOTES) . "' for='licence_" . $fetchLicence["id"] . "'>";
                         if (!empty($fetchLicence["link"])) {
                             $selectLicenceHTML .= "<a href='" . $fetchLicence["link"] . "'>";
                         }
                         $selectLicenceHTML .= $fetchLicence["name"];
                         if (!empty($fetchLicence["link"])) {
                             $selectLicenceHTML .= "</a>";
                         }
                         $selectLicenceHTML .= "</label>";
                     }
                 }
             }
             $t->assign_block_vars('listePhotos', array('onClickPopupPrisDepuis' => "document.getElementById('" . $popupPrisDepuis->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupPrisDepuis->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupPrisDepuis->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')) . "';", 'popupPrisDepuis' => $popupPrisDepuis->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Pris Depuis')), 'selectPrisDepuis' => $selectPrisDepuisHTML, 'listePrisDepuisDiv' => $divPrisDepuisHTML, 'onClickPopupVueSur' => "document.getElementById('" . $popupVueSur->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupVueSur->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupVueSur->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')) . "';", 'popupVueSur' => $popupVueSur->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Vue Sur')), 'selectVueSur' => $selectVueSurHTML, 'listeVueSurDiv' => $divVueSurHTML, 'urlImage' => $this->getUrlImage("grand") . '/' . $fetch['dateUpload'] . '/' . $fetch['idHistoriqueImage'] . '.jpg', 'nom' => $tabForm['nom_' . $fetch['idHistoriqueImage']]['value'], 'description' => stripslashes($tabForm['description_' . $fetch['idHistoriqueImage']]['value']), 'idHistoriqueImage' => $fetch['idHistoriqueImage'], 'dateUpload' => $tabForm['dateUpload_' . $fetch['idHistoriqueImage']]['value'], 'dateCliche' => $tabForm['dateCliche_' . $fetch['idHistoriqueImage']]['value'], 'numeroArchive' => $tabForm['numeroArchive_' . $fetch['idHistoriqueImage']]['value'], 'checkIsDateClicheEnviron' => $checkIsDateClicheEnviron, 'idImage' => $fetch['idImage'], 'adresseUrl' => '#', 'adresseOnClick' => "document.getElementById('calqueAdresse').style.display='block';document.getElementById('paramChampsAppelantAdresse').value='listeAdresses_" . $fetch['idHistoriqueImage'] . "';", 'evenementUrl' => '#', 'evenementOnClick' => "document.getElementById('calqueEvenement').style.display='block';document.getElementById('paramChampsAppelantEvenement').value='listeEvenements_" . $fetch['idHistoriqueImage'] . "';", 'onClickBoutonAjouterAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonChoixVille' => "document.getElementById('calqueVille').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueVille').style.display='block';document.getElementById('paramChampAppelantVille').value='ville" . $fetch['idHistoriqueImage'] . "';document.getElementById('paramChampVilleIdentifiantUnique').value='" . $fetch['idHistoriqueImage'] . "'", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1, 'identifiantUnique' => $fetch['idHistoriqueImage'])) . "&archiIdQuartier='+document.getElementById('quartiers" . $fetch['idHistoriqueImage'] . "').value,  'listeSousQuartier" . $fetch['idHistoriqueImage'] . "')", 'onClickBoutonChoixSource' => "document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';document.getElementById('paramChampsAppelantSource').value='source_" . $fetch['idHistoriqueImage'] . "';", 'onClickDateCliche' => "document.getElementById('paramChampAppelantDate').value='dateCliche_" . $fetch['idHistoriqueImage'] . "';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'idSource' => $tabForm['source' . $fetch['idHistoriqueImage']]['value'], 'nomSource' => $tabForm['source' . $fetch['idHistoriqueImage'] . 'txt']['value'], "nomAuteur" => $nomAuteur, "nomUpload" => $nomUpload, "tags" => $fetch['tags'], "selectLicence" => $selectLicenceHTML, "enableAuthor" => $enableAuthor));
             if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
                 $t->assign_block_vars('listePhotos.isDisplayNumeroArchive', array());
             } else {
                 $t->assign_block_vars('listePhotos.isNoDisplayNumeroArchive', array());
             }
             if ($utilisateur->canModifyTags(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
                 $t->assign_block_vars('listePhotos.canModifyTags', array());
             } else {
                 $t->assign_block_vars('listePhotos.canNotModifyTags', array());
             }
             if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) {
                 $t->assign_block_vars('listePhotos.isDisplaySource', array());
             } else {
                 $t->assign_block_vars('listePhotos.isNoDisplaySource', array());
             }
             // ***************************************************
             // IDENTIFIANT d'HISTORIQUES IMAGES
             // recuperation de la liste des identifiants d'images
             $listeId[] = $fetch['idHistoriqueImage'];
             // ***************************************************
             // ***************************************************
             // SOURCES
             // création de la liste des sources
             // ***************************************************
             if (!empty($tabSource)) {
                 foreach ($tabSource as $id => $nom) {
                     if (isset($tabTravail['source']['value']) && $tabTravail['source']['value'] == $id) {
                         $selected = 'selected="selected"';
                     } else {
                         $selected = '';
                     }
                     $t->assign_block_vars('listePhotos.source', array('val' => $id, 'nom' => $nom, 'selected' => $selected));
                 }
             }
             // recuperation des evenements lies à l'image
             $resEvenementsLies = $this->getFetchEvenementsLies($fetch['idImage']);
             while ($fetchEvenementsLies = mysql_fetch_assoc($resEvenementsLies)) {
                 $t->assign_block_vars('listePhotos.evenements', array('value' => $fetchEvenementsLies['idEvenement'], 'nom' => $fetchEvenementsLies['titre']));
             }
             $i++;
         }
         // ***************************************************
         $t->assign_vars(array("proprietaireImages" => "Images concernant l'adresse", 'actionFormImage' => $this->creerUrl('modifImage', '', $arrayModifUrlParams), 'listeId' => implode(',  ', $listeId)));
         // ***************************************************
         // ***************************************************
         // pour les calques :
         // ***************************************************
         $recherche = new archiRecherche();
         $adresse = new archiAdresse();
         $t->assign_vars(array('popupChoixAdresse' => $recherche->getPopupChoixAdresse('resultatRechercheAdresseCalqueImageChampMultiple'), 'popupChoixEvenement' => $recherche->getPopupChoixEvenement('resultatRechercheEvenementCalqueImageChampMultiple'), 'popupChoixSource' => $recherche->getPopupChoixSource('modifImage'), 'popupCalendrier' => $this->getPopupCalendrier(), 'popupAttente' => $this->getPopupAttente()));
     } else {
         $t->assign_vars(array('msgPasdImage' => "Il n'y a pas d'image."));
     }
     // *********************************************************************************
     // recuperation des aides contextuelles
     $helpMessages = $this->getHelpMessages('helpImage');
     $helpMessages = array_merge($helpMessages, $this->getHelpMessages('helpAdresse'));
     foreach ($helpMessages as $fieldName => $message) {
         $t->assign_vars(array($fieldName => $message));
     }
     // *********************************************************************************
     ob_start();
     $t->pparse('imageFormModif');
     $html = ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * Affichage du formulaire d'ajout/édition
  * 
  * @param array $params Paramètres
  * 
  * @return string HTML
  * */
 public function formulaireActualites($params = array())
 {
     $html = "";
     $f = new formGenerator();
     $d = new dateObject();
     $c = new calqueObject();
     $this->addToJsHeader("<script>" . $c->getJSScrollHeight() . "</script>");
     $html .= $c->getDiv(array('width' => 900, 'lienSrcIFrame' => '', 'titre' => 'Prévisualisation'));
     $idActualite = 0;
     $boutonNouveau = "";
     $boutonSupprimer = "";
     $boutonPrevisualiser = "<input type='button' name='previsualisation' value='Prévisualisation' onclick=\"tinyMCE.triggerSave(true,true);document.getElementById('" . $c->getJSDivId() . "').style.top=(50+getScrollHeight())+'px';document.getElementById('" . $c->getJSIFrameId() . "').src='" . $this->creerUrl('', 'previsualisationActualite', array()) . "';" . $c->getJSOpenPopup() . "\">";
     $boutonValiderEtEnvoiMailPrevisualisation = "<input type='button' name='valideEtEnvoi' id='valideEtEnvoi' value=\"Envoyer le mail tout de suite\" onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1';document.getElementById('formActu').submit();\">\n        <input type='button' name='valideEtPrev' id='valideEtPrev' value='" . _("Prévisualiser le mail") . "' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">\n        <input type='button' name='testMail' id='testMail' value='" . _("Envoyer un mail de test") . "' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1&testMail=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">\n        ";
     if (isset($this->variablesGet['archiIdActualite']) && $this->variablesGet['archiIdActualite'] != '') {
         $idActualite = $this->variablesGet['archiIdActualite'];
         $reqActu = "SELECT date,titre, sousTitre,photoIllustration, texte,urlFichier, fichierPdf, desactive,texteMailHebdomadaire,envoiMailHebdomadaire FROM actualites WHERE idActualite='" . $idActualite . "'";
         $resActu = $this->connexionBdd->requete($reqActu);
         $fetchActu = mysql_fetch_assoc($resActu);
         $date = $d->toFrenchAffichage($fetchActu['date']);
         $titre = $fetchActu['titre'];
         $sousTitre = $fetchActu['sousTitre'];
         $illustration = $fetchActu['photoIllustration'];
         $description = $fetchActu['texte'];
         $urlFichier = $fetchActu['urlFichier'];
         $fichierPdf = $fetchActu['fichierPdf'];
         $isDesactivated = $fetchActu['desactive'];
         $texteMailHebdomadaire = $fetchActu['texteMailHebdomadaire'];
         $isEnvoi = $fetchActu['envoiMailHebdomadaire'];
         $formAction = $this->creerUrl('modifierActu', 'adminActualites', array('archiIdActualite' => $idActualite));
         $boutonNouveau = "<input type='button' name='nouveauButton' value='Nouveau' onclick=\"location.href='" . $this->creerUrl('', 'adminActualites', array()) . "'\">";
         $boutonSupprimer = "<input type='button' name='supprimerBouton' value='Supprimer' onclick=\"location.href='" . $this->creerUrl('supprimerActu', 'adminActualites', array("idActuSuppr" => $idActualite)) . "'\">";
     } else {
         $date = date("d/m/Y");
         $titre = "";
         $sousTitre = "";
         $illustration = "";
         $description = "";
         $urlFichier = "";
         $fichierPdf = "";
         $isDesactivated = 0;
         $texteMailHebdomadaire = "";
         $isEnvoi = 0;
         $formAction = $this->creerUrl('ajouterActu', 'adminActualites', array('check' => 1));
         // check sert juste a ne pas avoir a gerer le ? ou le & dans l'url quand on rajoute un parametre en js
     }
     $idActualitePathImage = "";
     if ($idActualite != 0) {
         $idActualitePathImage = $idActualite;
     }
     // bibliotheques d'images
     $fileObject = new fileObject();
     $arrayFiles = $fileObject->getListeFichiersArrayFrom($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/");
     $listeFichiers = "";
     $t = new tableau();
     foreach ($arrayFiles as $indiceFichier => $fichier) {
         if (strtolower($fileObject->getExtensionFromFile($fichier)) == 'jpg' || strtolower($fileObject->getExtensionFromFile($fichier)) == 'gif' || strtolower($fileObject->getExtensionFromFile($fichier)) == 'png') {
             $t->addValue("<a onclick='injectInTinyMce(\"<img src=\\\"" . $this->getUrlImage() . "actualites/" . $idActualite . "/" . str_replace("'", "\\\\'", $fichier) . "\\\" border=0>\");'><img src=\"" . $this->getUrlImage() . "actualites/" . $idActualite . "/" . $fichier . "\" border=0 width=100 height=100></a>");
             $t->addValue("{$fichier}");
         } else {
             $t->addValue("&nbsp;");
             $t->addValue("{$fichier}");
         }
     }
     $listeFichiers = $t->createTable(2);
     $gestionBibliothequeImages = "Bibliothèque d'images de l'actualité <span style='font-size:11px;'>(cliquez sur une image pour l'inserer à la position du curseur)</span> : <div id='listeFichiers' style='background-color:#87CEFF;width:300px;height:200px;overflow:scroll;'>" . $listeFichiers . "</div>";
     $this->addToJsHeader("<script>\n                function injectInTinyMce(txt)\n                {\n                    tinyMCE.execInstanceCommand('texte','mceInsertContent',false,txt);\n                }\n                \n                function goRedim(idActualite)\n                {\n                    // validation du formulaire pour creer l'identifiant de l'actu et pouvoir ranger les photos\n                    document.getElementById('formActu').submit();\n                }\n            </script>");
     // on ne gere pas de timestamp , on assume que seul l'admin fera des mises a jour des actualités
     $applet = $fileObject->getAppletUploadMultiple(array('cheminApplet' => $this->getUrlRacine() . "/includes/", 'uploadDirPart1' => $this->getCheminPhysique() . "images/", 'uploadDirPart2' => "uploadMultipleActualites/", 'jsFunctionNameOnExit' => "goRedim({$idActualite})"));
     $configFields = array('idActualite' => array('libelle' => "idActualite", 'type' => 'hidden', 'required' => true, 'value' => '', 'forceValueTo' => $idActualite, 'htmlCode' => '', 'error' => ''), 'desactive' => array('libelle' => "désactiver", 'type' => 'singleCheckBox', 'required' => false, 'value' => '', 'forceValueTo' => '1', 'isChecked' => $isDesactivated, 'htmlCode' => '', 'error' => '', 'default' => ''), 'date' => array('libelle' => "date", 'withDatePicker' => true, 'type' => 'date', 'required' => true, 'value' => '', 'forceValueTo' => $date, 'htmlCode' => '', 'error' => ''), 'titre' => array('libelle' => "titre", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $titre, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'sousTitre' => array('libelle' => "sous-titre", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $sousTitre, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'photoIllustration' => array('libelle' => "illustration", 'type' => 'uploadImage', 'required' => false, 'value' => '', 'forceValueTo' => $illustration, 'physicalImagePathForTestExists' => $this->getCheminPhysique() . "images/actualites/" . $idActualitePathImage . "/", 'urlImagePathForDisplayInForm' => $this->getUrlImage() . "actualites/" . $idActualitePathImage . "/", 'htmlCode' => '', 'error' => ''), 'texte' => array('libelle' => "description", 'type' => 'tinyMCE', 'required' => false, 'value' => '', 'forceValueTo' => $description, 'htmlCode' => "cols=80 rows=30", 'error' => '', 'htmlCode2' => $gestionBibliothequeImages . "<div><a onclick=\"if(document.getElementById('divApplet').style.display=='none'){document.getElementById('divApplet').style.display='block';}else{document.getElementById('divApplet').style.display='none';}\" style='cursor:pointer;'>Voir/cacher ajouter une image</a></div><div id='divApplet' style='float:left;display:none'>" . $applet . "</div>"), 'urlFichier' => array('libelle' => "url redirection", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $urlFichier, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'fichierPdf' => array('libelle' => "fichier pdf", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $fichierPdf, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'texteMailHebdomadaire' => array('libelle' => "description mail hebdomadaire <span style='color:red;'>(ne pas oublier de préciser le titre)</span>", 'type' => 'tinyMCE', 'required' => false, 'value' => '', 'forceValueTo' => $texteMailHebdomadaire, 'htmlCode' => "cols=80 rows=30", 'error' => ''), 'envoiMailHebdomadaire' => array('libelle' => "envoi avec la newsletter hebdomadaire", 'type' => 'singleCheckBox', 'required' => false, 'value' => '', 'forceValueTo' => '1', 'isChecked' => $isEnvoi, 'htmlCode' => '', 'error' => '', 'default' => ''));
     $configForm = array("fields" => $configFields, 'formAction' => $formAction, 'codeHtmlAfterSubmitButton' => $boutonNouveau . $boutonSupprimer . $boutonPrevisualiser . $boutonValiderEtEnvoiMailPrevisualisation, 'formName' => 'formActu');
     $html .= $f->afficherFromArray($configForm);
     return $html;
 }