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 . "> " . $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 . "> " . $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; }