Beispiel #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 = "";
}
if (!isset($jsFooter)) {
Beispiel #2
0
            case 'historiqueEvenement':
                $e = new archiEvenement();
                $e->afficherHistoriqueEvenement($_GET['idEvenement']);
                break;
            case 'listeQuartiers':
                $criteres = array('typeStructure' => 22);
                $s = new archiRecherche();
                echo $s->advancedSearch($criteres);
                break;
            case 'listeStructure':
                $criteres = array('typeStructure' => $_GET['idTypeStructure']);
                $s = new archiRecherche();
                echo $s->advancedSearch($criteres);
                break;
            case 'displayImage':
                $i = new archiImage();
                $i->displayImage($_GET['idHistoriqueImage'], array($_GET['height'], $_GET['width']));
                break;
            case 'listByVille':
                $r = new archiRecherche();
                isset($_GET['debut']) ? $debut = $_GET['debut'] : ($debut = 0);
                $html = $r->searchByCriterias(array('ville' => $_GET['recherche_ville'], 'debut' => $debut));
                echo $html;
                break;
        }
    }
}
if (count($_POST) == 0 && count($_GET) == 0 || count($_GET) == 1 && isset($_GET["lang"]) || isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'afficheAccueil') {
    $accueil = new archiAccueil();
    echo $accueil->afficheAccueil();
}
 public function aliasAfficherListe()
 {
     if (isset($this->variablesGet['selection']) && $this->variablesGet['selection'] != '' && isset($this->variablesGet['id']) && $this->variablesGet['id'] != '') {
         if (isset($this->variablesGet['debut']) && $this->variablesGet['debut'] != "") {
             $debut = $this->variablesGet['debut'];
         } else {
             $debut = 0;
         }
         $criteres = array($this->variablesGet['selection'] => $this->variablesGet['id'], 'debut' => $debut);
         $s = new archiRecherche();
         return $s->searchByCriterias($criteres);
     }
 }
 public function afficheFormulaire($tabTravail = array(), $modif = '', $idParent = 0, $typeParentId = '')
 {
     $html = '';
     $t = new Template('modules/archi/templates/');
     //$t->set_filenames((array('evl'=>'evenementFormulaire.tpl')));
     $t->set_filenames(array('evl' => 'nouveauDossier.tpl'));
     $isEvenementGroupeAdresse = false;
     $formulaire = new formGenerator();
     $groupeTypeEvenement = 2;
     // par defaut on selectionne les evenement de type 'travaux'
     if (isset($this->variablesPost['typeGroupeEvenement']) && $this->variablesPost['typeGroupeEvenement'] != '') {
         $groupeTypeEvenement = $this->variablesPost['typeGroupeEvenement'];
     }
     $t->assign_vars(array('typeBoutonValidation' => "button"));
     // quand test javascript sur les champs de l'adresse , type = button
     // cas d'ajout d'un sous evenement ou d'un evenement appartenant a une adresse
     // on n'affiche pas les listes d'evenements et d'adresses
     if ($idParent != 0) {
         // est ce que l'on veut lier l'evenement a un evenement que l'on a précisé en parametre ou a une adresse ?
         switch ($typeParentId) {
             case 'evenement':
                 // CAS OU L'ON VA AJOUTER UN SOUS EVENEMENT A L'EVENEMENT GROUPE d'ADRESSE
                 $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
                 if ($idPerson = archiPersonne::isPerson($idParent)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresse' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $adresse = new archiAdresse();
                     $t->assign_vars(array('recapitulatifAdresse' => $adresse->afficherRecapitulatifAdresses($idParent)));
                 }
                 $t->assign_block_vars('afficheAjoutEvenement', array());
                 //$t->assign_block_vars('isNotAffichageGroupeAdresse',array());
                 $t->assign_vars(array('evenementGroupeAdresse' => $idParent));
                 $t->assign_vars(array('nomBoutonValidation' => 'ajoutSousEvenement'));
                 $t->assign_vars(array('typeBoutonValidation' => "submit"));
                 break;
             case 'adresse':
                 $tabTravail['adresses']['value'] = array($idParent);
                 $t->assign_block_vars('ajouterAdresses', array());
                 break;
         }
     } else {
         // l'evenement est il un groupe d'adresse , si oui , on n'affichera que le champ des adresses
         if ($modif != '') {
             // c'est une modification d'evenement
             // on affiche le recapitulatif de l'adresse en haut de page
             $t->assign_block_vars('isNotAjoutNouvelleAdresse', array());
             $idEvenementGroupeAdresse = $this->getParent($modif);
             $adresse = new archiAdresse();
             if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                 $person = new archiPersonne();
                 $infos = $person->getInfosPersonne($idPerson);
                 $t->assign_vars(array('recapitulatifAdresse' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
             } else {
                 $t->assign_vars(array('recapitulatifAdresse' => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
             }
             $t->assign_vars(array('recaptitulatifAncres' => $this->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $modif)));
             $t->assign_vars(array("liensModifEvenements" => $this->afficherLiensModificationEvenement($modif)));
             $isEvenementGroupeAdresse = $this->isEvenementGroupeAdresse($modif);
             if ($isEvenementGroupeAdresse) {
                 // l'evenement courant est de type groupe d'adresse
                 // on affiche rien a par l'adresse
                 // on renseigne le champs cache du formulaire pour recuperer rapidement l'identifiant lors de la validation de la modification
                 $t->assign_vars(array('evenementGroupeAdresse' => $modif));
                 $t->assign_block_vars('ajouterAdresses', array());
                 //on recupere les adresses liées a cet evenement
                 $reqAdressesGroupeAdresses = "\n\t\t\t\t\t\t\tSELECT ha.idAdresse as idAdresse\n\t\t\t\t\t\t\tfrom historiqueAdresse ha2, historiqueAdresse ha\n\t\t\t\t\t\t\tright join _adresseEvenement ae on ae.idAdresse = ha.idAdresse\n\t\t\t\t\t\t\twhere ae.idEvenement = '" . $modif . "'\n\t\t\t\t\t\t\t\t\tand ha2.idAdresse = ha.idAdresse\n\t\t\t\t\t\t\t\t\tgroup by ha.idAdresse,ha.idHistoriqueAdresse\n\t\t\t\t\t\t\t\t\thaving ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\t\t\t\t\t\t\t";
                 $resAdressesGroupeAdresses = $this->connexionBdd->requete($reqAdressesGroupeAdresses);
                 while ($fetchAdressesGroupeAdresses = mysql_fetch_assoc($resAdressesGroupeAdresses)) {
                     $tabTravail["adresses"]['value'][] = $fetchAdressesGroupeAdresses['idAdresse'];
                 }
             } else {
                 // MODIFICATION d'UN EVENEMENT (juste l'evenement, pas d'adresse , pas de groupe d'adresse)
                 // initialisation des champs du template que l'on va afficher
                 $t->assign_block_vars('afficheAjoutEvenement', array());
                 $t->assign_vars(array('nomBoutonValidation' => 'evenementSimple'));
                 $t->assign_vars(array('typeBoutonValidation' => "submit"));
             }
         } else {
             // ce n'est pas une modification d'evenement
             $t->assign_block_vars('afficheAjoutEvenement', array());
         }
     }
     //***********************************************************************************************
     // TYPE STRUCTURE
     // dans le cas d'un ajout de sous evenement
     // par defaut on recupere le type de structure du premier evenement enregistré 'qui n'est pas un groupe d'adresses'
     //***********************************************************************************************
     $heriteIdTypeStructure = '';
     if ($idParent != '0' && $typeParentId == 'evenement') {
         $sqlTypeStructureHerite = "\n\t\t\t\t\tSELECT he.idTypeStructure as idTypeStructure\n\t\t\t\t\tFROM evenements he2, evenements he\n\t\t\t\t\tWHERE he.idEvenement =(select min(ee.idEvenementAssocie) from _evenementEvenement ee where ee.idEvenement = '" . $idParent . "')\n\t\t\t\t\t\t\tAND he2.idEvenement = he.idEvenement\n\t\t\t\t\t\t\tGROUP BY he.idEvenement\n\t\t\t\t\t\t\t";
         $resTypeStructureHerite = $this->connexionBdd->requete($sqlTypeStructureHerite);
         if (mysql_num_rows($resTypeStructureHerite) == 1) {
             $fetchTypeStructureHerite = mysql_fetch_assoc($resTypeStructureHerite);
             $heriteIdTypeStructure = $fetchTypeStructureHerite['idTypeStructure'];
         }
         //echo "heriteIdTypeStructure=".$heriteIdTypeStructure;
     }
     if (!isset($idEvenementGroupeAdresse)) {
         $idEvenementGroupeAdresse = $_GET["archiIdEvenement"];
     }
     if (!archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         $t->assign_block_vars("afficheAjoutEvenement.isAddress", array());
         $sqlTypeStructure = 'SELECT idTypeStructure, nom FROM typeStructure order by nom';
         if ($result = $this->connexionBdd->requete($sqlTypeStructure)) {
             while ($fetchTypeStructure = mysql_fetch_object($result)) {
                 if ($fetchTypeStructure->idTypeStructure != 0) {
                     //$tabTypeStructure[$rep->idTypeStructure] = $rep->nom;
                     if (isset($tabTravail['typeStructure']) && $tabTravail['typeStructure']['value'] == $fetchTypeStructure->idTypeStructure || $heriteIdTypeStructure != '' && $fetchTypeStructure->idTypeStructure == $heriteIdTypeStructure) {
                         $selected = 'selected="selected"';
                     } else {
                         $selected = '';
                     }
                     $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesStructure', array('id' => $fetchTypeStructure->idTypeStructure, 'nom' => $fetchTypeStructure->nom, 'selected' => $selected));
                 }
             }
         }
     }
     // ***********************************************************************************
     // si la personne n'est pas admin elle verra une version simplifiée du formulaire
     $authentification = new archiAuthentification();
     if ($authentification->estConnecte() && $authentification->estAdmin()) {
         $t->assign_block_vars('afficheAjoutEvenement.isAdmin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotAdmin', array());
     }
     // ******
     // ***********************************************************************************
     // autre cas pour l'affichage du champ numeroArchive , il faut que l'utilisateur soit autorisé à l'afficher => table utilisateur
     $utilisateur = new archiUtilisateur();
     if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeNumeroArchive', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeNumeroArchive', array());
     }
     if ($utilisateur->canChangeDateFinField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
         $t->assign_block_vars('afficheAjoutEvenement.canChangeDateFin', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.noChangeDateFin', array());
     }
     if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) {
         $t->assign_block_vars('afficheAjoutEvenement.isDisplaySource', array());
     } else {
         $t->assign_block_vars('afficheAjoutEvenement.isNotDisplaySource', array());
     }
     // ******
     // ***********************************************************************************
     // le type de groupe d'evenement
     // 1 - culturel
     // 2 - travaux
     $t->assign_vars(array('onClickTypeEvenement1' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '1')) . "','typeEvenement');document.getElementById('afficheChampsSupplementairesCulturel').style.display='block';document.getElementById('afficheChampsSupplementairesTravaux').style.display='none';"));
     $t->assign_vars(array('onClickTypeEvenement2' => "appelAjax('" . $this->creerUrl('', 'afficheSelectTypeEvenement', array('noHeaderNoFooter' => 1, 'archiTypeGroupeEvenement' => '2')) . "','typeEvenement');document.getElementById('afficheChampsSupplementairesTravaux').style.display='block';document.getElementById('afficheChampsSupplementairesCulturel').style.display='none';"));
     // si c'est une modification de l'evenement il faut chercher l'id de type de groupe d'evenement afin d'afficher les bons div , et donc on reassigne la variable groupeTypeEvenement
     if ($modif != '') {
         if (isset($tabTravail['typeEvenement']['value'])) {
             $reqGroupeTypeEvenement = "select groupe from typeEvenement where idTypeEvenement='" . $tabTravail['typeEvenement']['value'] . "'";
             $resGroupeTypeEvenement = $this->connexionBdd->requete($reqGroupeTypeEvenement);
             $fetchGroupeTypeEvenement = mysql_fetch_assoc($resGroupeTypeEvenement);
             $groupeTypeEvenement = $fetchGroupeTypeEvenement['groupe'];
         }
     }
     // on affiche le bon div
     if ($groupeTypeEvenement == 1) {
         // 1: culturel
         $t->assign_vars(array('checkedTypeEvenement1' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireTravaux' => "display:none;"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:block;"));
         if (isset($tabTravail['ISMH']) && $tabTravail['ISMH']['value'] == '1') {
             $t->assign_vars(array('ISMHchecked' => " checked"));
         }
         if (isset($tabTravail['MH']) && $tabTravail['MH']['value'] == '1') {
             $t->assign_vars(array('MHchecked' => " checked"));
         }
     } elseif ($groupeTypeEvenement == 2) {
         // 2: travaux
         $t->assign_vars(array('nbEtages' => $tabTravail['nbEtages']['value']));
         $t->assign_vars(array('checkedTypeEvenement2' => " checked"));
         $t->assign_vars(array('styleChampsSupplementaireTravaux' => "display:block;"));
         $t->assign_vars(array('styleChampsSupplementaireCulturel' => "display:none;"));
     }
     if (isset($tabTravail['isDateDebutEnviron']) && $tabTravail['isDateDebutEnviron']['value'] == '1') {
         $t->assign_vars(array('isDateDebutEnviron' => " checked"));
     }
     if (!archiPersonne::isPerson($idEvenementGroupeAdresse)) {
         // les type d'evenements
         // par defaut on selectionne le typeEvenement=2 (travaux)
         $resTypeEvenement = $this->connexionBdd->requete("SELECT idTypeEvenement,nom FROM typeEvenement where groupe = '" . $groupeTypeEvenement . "'");
         while ($fetchTypeEvenement = mysql_fetch_assoc($resTypeEvenement)) {
             $selected = "";
             if (isset($tabTravail['typeEvenement']) && $tabTravail['typeEvenement']['value'] == $fetchTypeEvenement["idTypeEvenement"]) {
                 $selected = "selected";
             }
             $t->assign_block_vars('afficheAjoutEvenement.isAddress.typesEvenement', array('id' => $fetchTypeEvenement['idTypeEvenement'], 'nom' => $fetchTypeEvenement['nom'], 'selected' => $selected));
         }
     }
     // ***********************************************************************************
     //** Courant Architecturaux - récupération
     //*
     $sqlCourantArchitectural = 'SELECT idCourantArchitectural, nom FROM courantArchitectural order by nom';
     //$tabCourantArchitectural = array();
     $tableauCourants = new tableau();
     if ($result = $this->connexionBdd->requete($sqlCourantArchitectural)) {
         while ($fetchCourant = mysql_fetch_object($result)) {
             //$tabCourantArchitectural[$rep->idCourantArchitectural] = $rep->nom;
             if (isset($tabTravail['courant']) && is_array($tabTravail['courant']['value']) && in_array($fetchCourant->idCourantArchitectural, $tabTravail['courant']['value']) && $groupeTypeEvenement == 2) {
                 $selected = 'checked';
             } else {
                 $selected = '';
             }
             $tableauCourants->addValue("<input type='checkbox' name='courant[]' value='" . $fetchCourant->idCourantArchitectural . "' " . $selected . ">&nbsp;" . $fetchCourant->nom);
             //$t->assign_block_vars('isNotAffichageGroupeAdresse.courant', array('id'=> $fetchCourant->idCourantArchitectural, 'nom'=> $fetchCourant->nom, 'selected'=> $selected));
         }
         $t->assign_vars(array('listeCourantsArchitecturaux' => $tableauCourants->createHtmlTableFromArray(3, "white-space:nowrap;font-size:12px; font-color:#000000;", 'listeCourantsArchitecturaux')));
     }
     // ***********************************************************************************
     // assignation du bouton de validation : ajout ou modif
     if ($formulaire->estChiffre($modif)) {
         $t->assign_vars(array('typeTitre' => 'Modification', 'estmodif' => '<input type="hidden" name="idEvenement" value="' . $modif . '" />', 'boutonValidation' => 'Modifier', 'formAction' => $this->creerUrl('modifierEvenement', '', array('archiIdEvenement' => $modif))));
     } else {
         $t->assign_vars(array('typeTitre' => 'Ajout', 'estmodif' => '', 'boutonValidation' => 'Ajouter', 'formAction' => $this->creerUrl('ajoutEvenement')));
     }
     // ***********************************************************************************
     //**  Affichage des Erreurs
     //**
     foreach ($tabTravail as $name => $value) {
         if (!is_array($value["value"])) {
             if ($value['type'] == 'date') {
                 $val = $this->date->toFrench($this->date->toBdd($value['value']));
             } else {
                 $val = htmlspecialchars(stripslashes($value["value"]));
                 // nécessaire pour la description
             }
         } else {
             $val = $value["value"];
         }
         if ($value['type'] != 'checkbox') {
             $t->assign_vars(array($name => $val));
         }
         if (isset($value['error']) && $value["error"] != '') {
             $t->assign_vars(array($name . "-error" => $value["error"]));
         }
     }
     // ***********************************************************************************
     //**  Affichage des listes d'options
     //**
     // recherche des intitules de la source de l'evenement courant
     if (!empty($tabTravail['source']['value'])) {
         $sql = "\n\t\t\t\t\tSELECT s.idSource as idSource, s.nom as nom , ts.nom as nomTypeSource\n\t\t\t\t\tFROM source s\n\t\t\t\t\tLEFT JOIN typeSource ts ON ts.idTypeSource = s.idTypeSource\n\t\t\t\t\tWHERE s.idSource ='" . $tabTravail['source']['value'] . "'";
         $rep = $this->connexionBdd->requete($sql);
         $fetchSource = mysql_fetch_assoc($rep);
         $t->assign_vars(array('source' => $tabTravail['source']['value'], 'sourcetxt' => stripslashes($fetchSource['nom']) . ' ' . $fetchSource['nomTypeSource']));
     }
     // les personnes
     $d = new droitsObject();
     if ($d->isAuthorized('personne_sur_evenement_modifier', $authentification->getIdProfil())) {
         $t->assign_vars(array("affichePersonnesBlock" => "table-row"));
         if (!empty($tabTravail['personnes']['value'])) {
             foreach ($tabTravail['personnes']['value'] as $id => $val) {
                 $tabTravail['personnes']['value'][$id] = mysql_escape_string($val);
             }
             $sqlIdPersonne = implode("','", $tabTravail['personnes']['value']);
             $sql = "SELECT idPersonne, nom, prenom FROM personne WHERE idPersonne IN ('" . $sqlIdPersonne . "')";
             $rep = $this->connexionBdd->requete($sql);
             $tabPersonne = array();
             while ($res = mysql_fetch_object($rep)) {
                 $tabPersonne[$res->idPersonne] = $res->nom . ' ' . $res->prenom;
             }
             foreach ($tabPersonne as $id => $val) {
                 $t->assign_block_vars('afficheAjoutEvenement.personnes', array('id' => $id, 'nom' => $val, 'selected' => 'selected'));
             }
         }
     } else {
         $t->assign_vars(array("affichePersonnesBlock" => "none"));
     }
     // les adresses
     /*if (!empty($tabTravail['adresses']['value']))
     		{
     		foreach( $tabTravail['adresses']['value'] AS $id => $val)
     		{
     		$tabTravail['adresses']['value'][$id] = mysql_escape_string($val);
     		}
     		$sqlIdAdresse = implode("','", $tabTravail['adresses']['value']);
     		// recuperation des noms des adresses
     		$sql = "
     		SELECT ha.idAdresse as idAdresse, ha.nom as nom
     		FROM historiqueAdresse ha2, historiqueAdresse ha
     		WHERE ha.idAdresse IN ('".$sqlIdAdresse."')
     		AND ha.idAdresse = ha2.idAdresse
     		GROUP BY ha.idAdresse, ha.idHistoriqueAdresse
     		HAVING ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
     		";
     		$rep = $this->connexionBdd->requete($sql);
     		while ($res = mysql_fetch_object($rep))
     		{
     		$tabAdresse[$res->idAdresse] = $res->nom;
     		}
     
     		$adresse = new archiAdresse();
     		foreach($tabTravail['adresses']['value'] AS $id)
     		{
     		// recherche du libelle a afficher pour l'adresse
     		$nom = $adresse->getAdresseToDisplay($adresse->getArrayAdresseFromIdAdresse($id));//$adresse->getAdresseToDisplay($id);
     		$t->assign_block_vars('ajouterAdresses.adresses', array('val'=> $id, 'nom'=> $nom));
     		}
     		}
     
     		// les evenements lies ( pas utilisé pour le moment)
     		if (!empty($tabTravail['evenements']['value']))
     		{
     		// modif laurent pour ajout d'un sous evenement à l'evenement groupe d'adresse
     		if(count($tabTravail['evenements']['value'])==1)
     		{
     		foreach($tabTravail['evenements']['value'] as $indice => $value)
     		{
     		// recherche de l'evenement parent :
     		$resGroupeAdresse   = $this->connexionBdd->requete("select distinct idEvenement from _evenementEvenement where idEvenementAssocie='".$value."'");
     		$fetchGroupeAdresse = mysql_fetch_assoc($resGroupeAdresse);
     		$t->assign_vars(array('evenementGroupeAdresse'=>$fetchGroupeAdresse['idEvenement']));
     		}
     		}
     		else
     		{
     		$this->mail->sendMail('archiV2',$this->mail->getAdmin(),'ArchiV2-archiEvenements::il y a plusieurs evenements lies','il y a plusieurs evenements lies idEvenement='.$fetchGroupeAdresse['idEvenement']);
     		}
     
     
     		}
     		*/
     // ***********************************************************************************
     // gestion des appels des popups de dates
     $t->assign_vars(array('onClickDateDebut' => "document.getElementById('paramChampAppelantDate').value='dateDebut';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'onClickDateFin' => "document.getElementById('paramChampAppelantDate').value='dateFin';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';"));
     // bouton popup source
     $t->assign_vars(array('onClickBoutonChoisirSource' => "document.getElementById('paramChampsAppelantSource').value='source';document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';", 'onClickChoixPersonne' => "document.getElementById('paramChampsAppelantPersonne').value='personne';document.getElementById('calquePersonne').style.top=(getScrollHeight()+150)+'px';document.getElementById('calquePersonne').style.display='block';"));
     $recherche = new archiRecherche();
     //  liaison avec les adresses
     $t->assign_vars(array('popupPersonnes' => $recherche->getPopupChoixPersonne('modifEvenement'), 'popupSources' => $recherche->getPopupChoixSource('modifEvenement'), 'popupCalendrier' => $this->getPopupCalendrier()));
     // ******************************************************************************************************************************
     // on recupere les messages d'aide contextuelle et on les affiche :
     $helpMessages = $this->getHelpMessages("helpEvenement");
     foreach ($helpMessages as $fieldName => $helpMessage) {
         $t->assign_vars(array($fieldName => $helpMessage));
     }
     // ******************************************************************************************************************************
     ob_start();
     $t->pparse('evl');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * 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;
 }
 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;
 }
 /**
  * Afficher le formulaire d'ajout/édition de parcours
  * 
  * @param array $params Paramètres
  * 
  * @return string HTML
  * */
 public function getHtmlFormulaireParcours($params = array())
 {
     $html = "";
     $bbCode = new bbCodeObject();
     $recherche = new archiRecherche();
     $idParcours = 0;
     $libelleParcours = "";
     $titre = "Ajout d'un parcours";
     $formAction = $this->creerUrl('ajouterParcours', 'adminListeParcours', array());
     $checkedActif = false;
     $dateAjout = date("d/m/Y");
     $commentaireParcours = "";
     $idSource = "0";
     $libelleSource = "";
     if (isset($this->variablesGet['archiIdParcours']) && $this->variablesGet['archiIdParcours'] != '') {
         $d = new dateObject();
         $titre = "Modification d'un parcours";
         $idParcours = $this->variablesGet['archiIdParcours'];
         $reqParcours = "\n            SELECT p.idParcours as idParcours,p.libelleParcours as libelleParcours,p.isActif as isActif,p.dateAjoutParcours as dateAjoutParcours,p.commentaireParcours as commentaireParcours,\n                    s.nom as nomSource, tp.nom as nomTypeSource, s.idSource as idSource\n            FROM parcoursArt p\n            LEFT JOIN source s ON s.idSource = p.idSource\n            LEFT JOIN typeSource tp ON tp.idTypeSource = s.idTypeSource\n            WHERE p.idParcours = '" . $idParcours . "'";
         $resParcours = $this->connexionBdd->requete($reqParcours);
         $fetchParcours = mysql_fetch_assoc($resParcours);
         $libelleParcours = $fetchParcours['libelleParcours'];
         $commentaireParcours = $fetchParcours['commentaireParcours'];
         $libelleSource = stripslashes($fetchParcours['nomSource'] . " (" . $fetchParcours['nomTypeSource'] . ")");
         $idSource = $fetchParcours['idSource'];
         $dateAjout = $d->toFrenchAffichage($fetchParcours['dateAjoutParcours']);
         if ($fetchParcours['isActif'] == 1) {
             $checkedActif = true;
         }
         $formAction = $this->creerUrl('modifierParcours', 'adminListeParcours', array());
     }
     $html .= "<h1>{$titre}</h1>";
     $arrayBBCode = $bbCode->getBoutonsMiseEnFormeTextArea(array('formName' => 'formParcours', 'fieldName' => 'commentaireParcours'));
     //coords
     $reqListeEtapes = "SELECT idEvenementGroupeAdresse FROM etapesParcoursArt WHERE idParcours = '" . $idParcours . "'";
     $resListeEtapes = $this->connexionBdd->requete($reqListeEtapes);
     $a = new archiAdresse();
     while ($fetchListeEtapes = mysql_fetch_assoc($resListeEtapes)) {
         $coords = $a->getCoordonneesFrom($fetchListeEtapes['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
         $points[] = $coords["latitude"] . ", " . $coords["longitude"];
     }
     $html .= "<br/><br/>";
     include_once "includes/class.polylineEncoder.php";
     foreach ($points as $key => $point) {
         $points[$key] = explode(',', $point);
     }
     $encoder = new PolylineEncoder();
     @($polyline = $encoder->encode($points));
     $reqTrace = "SELECT trace, levels FROM `parcoursArt` WHERE `idParcours` = " . mysql_escape_string($idParcours);
     $resTrace = $this->connexionBdd->requete($reqTrace);
     $trace = mysql_fetch_assoc($resTrace);
     //
     $configFields = array('idParcours' => array('libelle' => 'idParcours', 'type' => 'hidden', 'error' => '', 'value' => '', 'default' => $idParcours, 'htmlCode' => ''), 'dateAjoutParcours' => array('libelle' => 'date ajout', 'type' => 'date', 'error' => '', 'value' => '', 'default' => $dateAjout, 'htmlCode' => '', 'withDatePicker' => true), 'isActif' => array('libelle' => 'est actif', 'type' => 'singleCheckBox', 'error' => '', 'value' => '', 'default' => '', 'htmlCode' => '', 'isChecked' => $checkedActif, 'forceValueTo' => '1'), 'libelleParcours' => array('libelle' => 'libelle', 'type' => 'text', 'error' => '', 'value' => '', 'default' => $libelleParcours, 'htmlCode' => "style='width:300px;'"), 'commentaireParcours' => array('libelle' => 'commentaire', 'type' => 'bigText', 'error' => '', 'value' => '', 'default' => $commentaireParcours, 'htmlCode' => "style='width:400px;height:200px;'", 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML'], 'htmlCode2' => $arrayBBCode['divAndJsAfterForm']), 'idSourcetxt' => array('libelle' => 'source', 'type' => 'text', 'error' => '', 'value' => '', 'default' => $libelleSource, 'htmlCode' => '', 'htmlCode2' => "<input type='button' name='choixSource' onclick=\"document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';document.getElementById('paramChampsAppelantSource').value='idSource';\" value='Choisir'>"), 'idSource' => array('libelle' => 'idSource', 'type' => 'hidden', 'error' => '', 'value' => '', 'default' => $idSource, 'htmlCode' => ""), "polyline" => array("libelle" => _("Liste des coordonnées") . " (" . _("à utiliser avec") . " <a href='https://developers.google.com/maps/documentation/utilities/polylineutility'>Interactive Polyline Encoder</a>)", "type" => "text", "default" => $polyline->points, "htmlCode" => "readonly onclick='this.select();'", "error" => ""), "levels" => array("libelle" => _("Niveaux"), "type" => "text", "default" => $polyline->levels, "htmlCode" => "readonly onclick='this.select();'", "error" => ""), "trace" => array("libelle" => _("Coordonnées détaillées"), "type" => "text", "default" => $trace["trace"], "htmlCode" => "", "error" => ""), "newLevels" => array("libelle" => _("Niveaux détaillés"), "type" => "text", "default" => $trace["levels"], "htmlCode" => "", "error" => ""));
     $configForm = array('fields' => $configFields, 'formAction' => $formAction, 'formName' => 'formParcours');
     $f = new formGenerator();
     $html .= $f->afficherFromArray($configForm);
     $this->addToJsHeader($recherche->getPopupChoixSource('ajoutModifParcoursAdmin'));
     return $html;
 }