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;
 }
示例#2
0
         $adresse = new archiAdresse();
         $adresse->deleteCommentaire();
     }
     break;
 case 'supprimerCommentaireEvenement':
     if ($authentification->estAdmin()) {
         $adresse = new archiEvenement();
         $adresse->deleteCommentaireEvenement();
     }
     break;
 case 'enregistrePositionsImages':
     $image = new archiImage();
     $image->enregistrePositionImages();
     break;
 case 'enregistreDroits':
     $d = new droitsObject();
     $d->enregistreDroits();
     break;
 case 'enregistreListeVillesModerateur':
     $u = new archiUtilisateur();
     $u->enregistreListeVillesModerateur();
     break;
 case 'deplacerImagesSelectionnees':
     $i = new archiImage();
     $i->deplacerImagesSelectionnees();
     break;
 case 'supprimerImagesSelectionnees':
     $i = new archiImage();
     $i->supprimerImagesSelectionnees();
     break;
 case 'enregistreAdressesLieesAEvenement':
 public function isAuthorized($tagName = '', $idUtilisateur = 0)
 {
     $retour = false;
     $d = new droitsObject();
     $idProfil = $this->getIdProfilFromUtilisateur($idUtilisateur);
     if ($d->isAuthorized($tagName, $idProfil)) {
         $retour = true;
     }
     return $retour;
 }
 /**
  * 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;
 }
 /**
  * Est ce que l'utilisateur est admin ?
  * 
  * @param array $params Paramètres
  * Si pas de parametre, on verifie l'utilisateur connecté courant
  * 
  * @return bool
  * */
 public function estAdmin($params = array())
 {
     $retour = false;
     $utilisateur = new archiUtilisateur();
     if (isset($params['idUtilisateur']) && $params['idUtilisateur'] != '' || $this->estConnecte()) {
         if (isset($params['idUtilisateur']) && $params['idUtilisateur'] != '') {
             $infos = $utilisateur->getArrayInfosFromUtilisateur($params['idUtilisateur']);
         } else {
             $infos = $utilisateur->getArrayInfosFromUtilisateur($this->session->getFromSession('utilisateurConnecte' . $this->idSite));
         }
         $idProfil = $infos['idProfil'];
         $d = new droitsObject();
         $arrayProfil = $d->getProfilFromIdProfil($idProfil);
         if ($arrayProfil['libelle'] == 'administrateur') {
             $retour = true;
         }
     }
     return $retour;
 }
 /**
  * Fonction permettant a l'administrateur de visualiser l'historique de l'image
  *
  * @param int $idImage ID de l'image
  *
  * @return string HTML
  * */
 public function afficheHistoriqueImage($idImage = 0)
 {
     $u = new archiUtilisateur();
     $html = "";
     $req = "SELECT idHistoriqueImage, dateUpload, idImage, idUtilisateur, description, dateCliche, isDateClicheEnviron, idSource FROM historiqueImage WHERE idImage='" . $idImage . "'";
     $res = $this->connexionBdd->requete($req);
     $t = new tableau();
     $d = new dateObject();
     $bb = new bbCodeObject();
     $s = new archiSource();
     $authentification = new archiAuthentification();
     $droitsObject = new droitsObject();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $isRegenerationPossible = false;
     if ($droitsObject->isAuthorized('image_regenerer', $idProfilUtilisateur)) {
         $isRegenerationPossible = true;
     }
     while ($fetch = mysql_fetch_assoc($res)) {
         //$html.="<img src='".$this->getUrlImage("moyen").$fetch['dateUpload']."/".$fetch['idHistoriqueImage'].".jpg"."'><br>";
         $t->addValue("<img src='" . $this->getUrlImage("moyen") . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg" . "'>", "valign=top");
         $arrayInfosUtilisateur = $u->getArrayInfosFromUtilisateur($fetch['idUtilisateur'], array('listeChamps' => 'nom, prenom'));
         $libelleUtilisateur = $arrayInfosUtilisateur['nom'] . " " . $arrayInfosUtilisateur['prenom'];
         $dateCliche = " - ";
         if ($fetch['dateCliche'] != '0000-00-00') {
             $environ = "";
             if ($fetch['isDateClicheEnviron'] == '1') {
                 $environ = "Environ ";
             }
             $dateCliche = $environ . $d->toFrenchAffichage($fetch['dateCliche']);
         }
         $libelleSource = $s->getSourceLibelle($fetch['idSource']);
         if ($libelleSource != '') {
             $libelleSource = "<tr><td><b>source : </b>" . $libelleSource . "</td></tr>";
         }
         $description = "";
         if ($fetch['description'] != '') {
             $description = "<tr><td><b>description :</b><br>" . $bb->convertToDisplay(array('text' => $fetch['description'])) . "</td></tr>";
         }
         $detailHistoriqueImage = "<table><tr><td>de <a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $fetch['idUtilisateur'])) . "'>" . $libelleUtilisateur . "</a> (le " . $d->toFrenchAffichage($fetch['dateUpload']) . ")</td></tr><tr><td><b>date cliché : </b>" . $dateCliche . "</td></tr>" . $description . "" . $libelleSource . "</table>";
         $t->addValue($detailHistoriqueImage);
         if ($isRegenerationPossible) {
             $reqRegenerationAvailable = "SELECT idHistoriqueImage ,  idImage ,  cheminImageUploadee FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetch['idHistoriqueImage'] . "' AND idImage='" . $idImage . "'";
             $resRegenerationAvailable = $this->connexionBdd->requete($reqRegenerationAvailable);
             if (mysql_num_rows($resRegenerationAvailable) > 0) {
                 $fetchRegenerationAvailable = mysql_fetch_assoc($resRegenerationAvailable);
                 if (file_exists($this->getCheminPhysique() . "/images/uploadMultiple/" . $fetchRegenerationAvailable['cheminImageUploadee'])) {
                     $t->addValue("<input type='button' name='regenere' value='régéréner les photos à partir de la source' onclick=\"location.href='" . $this->creerUrl('regenereImageFromUploadDir', 'imageDetail', array('archiIdHistoriqueImage' => $fetch['idHistoriqueImage'], 'archiIdImage' => $idImage)) . "';\">");
                 } else {
                     $t->addValue("Enregistrement trouvé,  mais fichier source de régénération inexistant.");
                 }
             } else {
                 $t->addValue("Pas de régénération possible");
             }
         }
     }
     // En principe cette variable represente un idEvenement,  a changer pour l'id evenementGroupeAdresse
     if (isset($this->variablesGet['archiRetourIdValue']) && $this->variablesGet['archiRetourIdValue'] != '') {
         $adresse = new archiAdresse();
         $evenement = new archiEvenement();
         $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesGet['archiRetourIdValue']);
         $html .= $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
     }
     $html .= "<h2>Historique de l'image {$idImage}</h2>";
     if ($isRegenerationPossible) {
         $html .= $t->createHtmlTableFromArray(3, '', '', '');
     } else {
         $html .= $t->createHtmlTableFromArray(2, '', '', '');
     }
     return $html;
 }
 /**
  * Affichage du formulaire de gestion des droits
  * 
  * @param array $params Paramètres
  * 
  * @return string HTML
  * */
 public function getFormulaireGestionDroits($params = array())
 {
     $d = new droitsObject();
     $arrayProfilCourant = $d->getProfilCourantFormulaire();
     $retour = "<h1>Gestion des droits " . $arrayProfilCourant['libelle'] . "</h1>";
     $paramsUrl = array();
     $paramsUrl['archiIdProfil'] = $arrayProfilCourant['idProfil'];
     $retour .= "<form action='" . $this->creerUrl('enregistreDroits', 'adminDroits', $paramsUrl) . "' method='POST' enctype='multipart/form-data' name='formDroits'>";
     $arrayListeProfils = $d->getArrayListeProfils();
     foreach ($arrayListeProfils as $idProfil => $intitule) {
         $retour .= "<a href='" . $this->creerUrl('', 'adminDroits', array('archiIdProfil' => $idProfil)) . "'>" . $intitule . "</a> ";
     }
     $retour .= "<br><br>";
     $retour .= $d->getFormulaireGestionDroits($params);
     $retour .= "<input type='submit' name='submitDroits' value='Enregistrer'>";
     $retour .= "</form>";
     $reqUtilisateursCount = "SELECT 0 FROM utilisateur WHERE idProfil = '" . $arrayProfilCourant['idProfil'] . "'";
     $resUtilisateursCount = $this->connexionBdd->requete($reqUtilisateursCount);
     $p = new paginationObject();
     $nbEnregistrementsParPage = 20;
     $arrayPagination = $p->pagination(array('nomParamPageCourante' => 'archiPageCouranteVille', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => mysql_num_rows($resUtilisateursCount), 'typeLiens' => 'noformulaire'));
     $reqUtilisateurs = "SELECT nom, prenom, mail FROM utilisateur WHERE idProfil = '" . $arrayProfilCourant['idProfil'] . "'";
     $reqUtilisateurs = $p->addLimitToQuery($reqUtilisateurs);
     $resUtilisateurs = $this->connexionBdd->requete($reqUtilisateurs);
     $t = new tableau();
     while ($fetchUtilisateurs = mysql_fetch_assoc($resUtilisateurs)) {
         $t->addValue($fetchUtilisateurs['nom']);
         $t->addValue($fetchUtilisateurs['prenom']);
         $t->addValue($fetchUtilisateurs['mail']);
     }
     if (mysql_num_rows($resUtilisateurs) > 0) {
         $retour .= "<b>Liste des utilisateurs concernés :</b><br><br>" . $arrayPagination['html'] . "<br>" . $t->createTable(3);
     }
     return $retour;
 }