public function afficher($idEvenement = null, $modeAffichage = '', $idHistoriqueEvenement = null, $paramChampCache = array(), $params = array()) { $authentification = new ArchiAuthentification(); $estConnecte = $authentification->estConnecte(); $estAdmin = $authentification->estAdmin(); $estModerateur = $authentification->estModerateur(); $userId = $authentification->getIdUtilisateur(); $html = ''; $erreurObject = new objetErreur(); $t = new Template('modules/archi/templates/'); $t->set_filenames(array('ev' => 'evenement.tpl')); $isMH = false; $isISMH = false; $isAffichageSingleEvenement = false; $listeGroupeAdressesAffichees = array(); // liste des groupes d'adresses reellement affichés , donc dans cette liste ne figure pas les groupe d'adresses ou il n'y a pas d'evenements liés $u = new archiUtilisateur(); // on renvoi le nom de type de structure ( ceci sert a voir si on affiche aussi le type de structure sur l'evenement suivant du groupe d'adresse (pour eviter les redondances) ) $retourIdTypeStructure = ""; // on renvoi le titre de l'evenement pour l'affichage des ancres $retourTitreAncre = ""; $retourNomTypeEvenement = ""; $retourDate = ""; $retourDateFin = ""; $nomTable = "evenements"; $adresse = new archiAdresse(); $imageObject = new imageObject(); // objet image du framework $idAdresseCourante = 0; if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '') { $idAdresseCourante = $this->variablesGet['archiIdAdresse']; } $t->assign_vars(array("divDisplayMenuAction" => "none")); if (!isset($idEvenement) || $idEvenement == null || $idEvenement == '') { if (isset($this->variablesGet['archiIdEvenement']) && $this->variablesGet['archiIdEvenement'] != '') { if ($modeAffichage != 'consultationHistoriqueEvenement') { $idEvenement = $this->variablesGet['archiIdEvenement']; } } } // fabrication de la requete en fonction des parametres $sqlEvenementsAdressesLiees = ""; if (empty($idEvenement)) { if ($modeAffichage == 'consultationHistoriqueEvenement') { // on affiche les idHistoriqueEvenement de l'evenement choisi $isAffichageSingleEvenement = true; $sqlWhere = 'hE.idHistoriqueEvenement=' . $idHistoriqueEvenement; $nomTable = "historiqueEvenement"; } if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'comparaisonEvenement') { // debug pour eviter un message d'erreur si l'evenement n'existe pas dans l'affichage de la comparaison d'evenement ancien/nouveau } } else { if ($modeAffichage == 'simple') { // l'idEvenement en parametre correspond a l'evenement enfant a afficher $sqlWhere = 'hE.idEvenement=' . $idEvenement; } else { // l'idEvenement en parametres correspond a un evenement enfant on va donc chercher l'evenement parent qui correspond au groupe d'adresses $sqlWhere = '(hE.idEvenement= IF ( (SELECT _eE.idEvenement FROM _evenementEvenement _eE LEFT JOIN evenements USING (idEvenement) LEFT JOIN typeEvenement tE USING (idTypeEvenement) WHERE idEvenementAssocie=' . $idEvenement . ' LIMIT 1), (SELECT _eE.idEvenement FROM _evenementEvenement _eE LEFT JOIN evenements USING (idEvenement) LEFT JOIN typeEvenement tE USING (idTypeEvenement) WHERE idEvenementAssocie=' . $idEvenement . ' LIMIT 1), ' . $idEvenement . ')) '; // si on est en mode de deplacement d'image // ou de selection de titre // on rajoute le formulaire sur la page if ($estConnecte && (isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1' || isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1')) { $html .= "<form action='' name='formulaireEvenement' method='POST' enctype='multipart/form-data' id='formulaireEvenement'>\n\t\t\t\t\t\t\t<input type='hidden' name='actionFormulaireEvenement' id='actionFormulaireEvenement' value=''>"; } } } if (isset($sqlWhere)) { /* ** REQUÊTE */ // recuperation des données de l'evenement groupe d'adresses // on ne fait pas de group by having // on prend simplement le dernier enregistrement classé selon l'idHistoriqueEvenement // et donc le nombre de resultats de la requete permet de recuperer le nombre d'historiques sur l'evenement dans la foulée $sql = 'SELECT hE.idEvenement, hE.titre, hE.idSource, hE.idTypeStructure, hE.idTypeEvenement, hE.description, hE.dateDebut, hE.dateFin, hE.dateDebut, hE.dateFin, tE.nom AS nomTypeEvenement, tS.nom AS nomTypeStructure, s.nom AS nomSource, u.nom AS nomUtilisateur, u.prenom as prenomUtilisateur, tE.groupe, hE.ISMH , hE.MH, date_format(hE.dateCreationEvenement,"' . _("%e/%m/%Y à %kh%i") . '") as dateCreationEvenement, hE.isDateDebutEnviron as isDateDebutEnviron, u.idUtilisateur as idUtilisateur, hE.numeroArchive as numeroArchive FROM ' . $nomTable . ' hE LEFT JOIN source s ON s.idSource = hE.idSource LEFT JOIN typeStructure tS ON tS.idTypeStructure = hE.idTypeStructure LEFT JOIN typeEvenement tE ON tE.idTypeEvenement = hE.idTypeEvenement LEFT JOIN utilisateur u ON u.idUtilisateur = hE.idUtilisateur WHERE ' . $sqlWhere . ' ORDER BY hE.idEvenement DESC'; $rep = $this->connexionBdd->requete($sql); } else { echo "<p><strong>Cette fiche n'existe plus, merci de <a href='" . $this->creerUrl("", "contact") . "'>contacter un administrateur</a>.</strong></p>"; } // lien vers le formulaire d'ajout d'une adresse pour un evenement parent // recherche de l'evenement parent $idEvenementGroupeAdresse = $this->getParent($idEvenement); if ($idEvenementGroupeAdresse == 0) { $idEvenementGroupeAdresse = $idEvenement; // pas de parent trouvé , donc l'evenement est lui meme un parent } // *************************** // gestion mode deplacement d'images // *************************** $styleColorDeplacementActif = ""; $afficheSelectionImages = 1; if ($estConnecte && isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1') { $styleColorDeplacementActif = "color:red;"; $afficheSelectionImages = 0; } $t->assign_vars(array('urlLierAdresseAEvenement' => $this->creerUrl('', 'formulaireGroupeAdresses', array('archiIdEvenementGroupeAdresses' => $idEvenementGroupeAdresse)), 'urlAjouterEvenement' => $this->creerUrl('', 'ajouterSousEvenement', array('archiIdEvenement' => $idEvenementGroupeAdresse)), 'urlDeplacerImages' => $this->creerUrl('', 'evenement', array('idEvenement' => $idEvenementGroupeAdresse, 'afficheSelectionImage' => $afficheSelectionImages)), 'styleModeDeplacementImageActif' => "{$styleColorDeplacementActif};")); // ********************************** // gestion selection du titre du groupe d'adresse // ********************************** $styleColorSelectionTitreActif = ""; $afficheSelectionTitre = 1; if ($estConnecte && isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1') { $styleColorSelectionTitreActif = "color:red;"; $afficheSelectionTitre = 0; } $t->assign_vars(array('urlSelectionTitreAdresse' => $this->creerUrl('', 'evenement', array('idEvenement' => $idEvenementGroupeAdresse, 'afficheSelectionTitre' => $afficheSelectionTitre)), 'styleModeChoixTitre' => $styleColorSelectionTitreActif)); // ******************************************* // gestion selection de l'image principale du groupe d'adresse // ******************************************* $styleColorSelectionImagePrincipaleActif = ""; $afficheSelectionImagePrincipale = 1; if ($estConnecte && isset($this->variablesGet['afficheSelectionImagePrincipale']) && $this->variablesGet['afficheSelectionImagePrincipale'] == '1') { $styleColorSelectionImagePrincipaleActif = "color:red"; $afficheSelectionImagePrincipale = 0; } $t->assign_vars(array('urlSelectionImagePrincipale' => $this->creerUrl('', 'evenement', array('idEvenement' => $idEvenementGroupeAdresse, 'afficheSelectionImagePrincipale' => $afficheSelectionImagePrincipale)), 'styleModeSelectionImagePrincipale' => $styleColorSelectionImagePrincipaleActif)); // ******************************************* // gestion positionnement evenements // ******************************************* $styleColorPositionnementEvenements = ""; $affichePositionnementEvenements = 1; if ($estConnecte && isset($this->variablesGet['affichePositionnementEvenements']) && $this->variablesGet['affichePositionnementEvenements'] == '1') { $styleColorPositionnementEvenements = "color:red"; $affichePositionnementEvenements = 0; $this->addToJsHeader($imageObject->getJSFunctionsDragAndDrop(array('withBalisesScript' => true))); // rajoute les fonctions de deplacement d'elements dans le header du formulaire } $t->assign_vars(array('urlPositionnementEvenements' => $this->creerUrl('', 'evenement', array('archiIdAdresse' => $idAdresseCourante, 'idEvenement' => $idEvenementGroupeAdresse, 'affichePositionnementEvenements' => $affichePositionnementEvenements)), 'styleModePositionnementEvenements' => $styleColorPositionnementEvenements)); if (isset($sqlWhere) && mysql_num_rows($rep) > 0) { $nbHistorique = mysql_num_rows($rep) - 1; // on ne compte pas le groupe d'adresse qui a le meme idEvenement $res = mysql_fetch_object($rep); $idEvenement = $res->idEvenement; // si c'est un groupe d'adresse, on n'affiche pas le détail de l'événement, juste ses événements enfants if ($res->groupe != 3) { if ($modeAffichage === 'simple' || $modeAffichage == 'consultationHistoriqueEvenement') { $t->assign_block_vars('simple', array()); // si l'evenement est un evenement externe au groupe d'adresse , on affiche un menu different a droite if (isset($params['isLieFromOtherAdresse']) && $params['isLieFromOtherAdresse'] == true) { // on recupere d'abord l'idAdresse de cet evenement externe $reqAdresses = $adresse->getIdAdressesFromIdEvenement(array('idEvenement' => $idEvenement)); $resAdresses = $this->connexionBdd->requete($reqAdresses); $fetchAdressesExternes = mysql_fetch_assoc($resAdresses); $intituleAdresse = $adresse->getIntituleAdresseFrom($fetchAdressesExternes['idAdresse'], 'idAdresse'); //$t->assign_vars(array("divDisplayMenuAction"=>"none")); $ancrePositionAdresseLiee = ""; $positionSurAdresseOrigine = $adresse->getPositionFromEvenement($idEvenement); if ($positionSurAdresseOrigine != '' && $positionSurAdresseOrigine != '0') { $ancrePositionAdresseLiee = "#" . $positionSurAdresseOrigine; } $t->assign_vars(array("urlEvenementExterne" => "<small>" . _("Adresse d'origine :") . " <a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetchAdressesExternes['idAdresse'])) . $ancrePositionAdresseLiee . "'>" . $intituleAdresse . "</a></small>")); } else { if ($modeAffichage != 'consultationHistoriqueEvenement') { $t->assign_vars(array("divDisplayMenuAction" => "table")); } } if ($estConnecte) { $t->assign_block_vars('simple.menuAction', array()); if ($modeAffichage != 'consultationHistoriqueEvenement') { if (isset($params['isLieFromOtherAdresse']) && $params['isLieFromOtherAdresse'] == true) { $t->assign_vars(array("divDisplayMenuAction" => "none")); // si un utilisateur est connecté , et que l'evenement est un evenement lie , on affiche pas le menu d'action } else { $t->assign_vars(array("divDisplayMenuAction" => "table")); // si un utilisateur est connecté et que l'evenement n'est pas un evenement lié, on affiche le menu d'action } } else { $t->assign_vars(array("divDisplayMenuAction" => "none")); // si on est en mode d'affichage de l'historique d'un evenement, on ne propose pas de menu action } if ($u->isAuthorized('evenement_lier_adresses', $userId)) { if (!archiPersonne::isPerson($idEvenementGroupeAdresse) && ($u->getIdProfil($userId) == 4 || $u->isModerateurFromVille($userId, $idEvenementGroupeAdresse, 'idEvenementGroupeAdresse'))) { $t->assign_block_vars('simple.menuAction.afficheElementMenuLierAdresse', array()); } } } if ($estAdmin) { $t->assign_block_vars('simple.menuAction.isAdmin', array()); } if ($u->isAuthorized('evenement_supprimer', $userId)) { $isModerateurFromVilleCourante = false; if ($authentification->getIdProfil() == 3) { //moderateur $arrayVillesModerees = $u->getArrayVillesModereesPar($userId); $idVilleAdresseCourante = $adresse->getIdVilleFrom($idEvenement, 'idEvenement'); if (in_array($idVilleAdresseCourante, $arrayVillesModerees)) { $isModerateurFromVilleCourante = true; } } if ($authentification->getIdProfil() == 4 || $isModerateurFromVilleCourante) { // est on administrateur ou moderateur de la ville ? $t->assign_block_vars('simple.menuAction.isAdminOrModerateurFromVille', array()); if ($estConnecte && $estAdmin && isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1') { $t->assign_block_vars('simple.menuAction.isAdmin.isAffichageSelectionImages', array()); } } } if (!archiPersonne::isPerson($idEvenementGroupeAdresse) && $u->isAuthorized('evenement_deplacer', $userId)) { $t->assign_block_vars('simple.menuAction.afficheElementMenuDeplacerEvenement', array()); } if ($estConnecte && $estAdmin && isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1') { //$t->assign_block_vars('simple.menuAction.isAdminOrModerateurFromVille',array()); } } // ****************************************************************************************************** // Affichage des dates $dateTxt = ""; $environDateDebutTxt = ""; if ($res->isDateDebutEnviron == '1') { $environDateDebutTxt = "environ "; } switch (strtolower($res->nomTypeEvenement)) { case 'information (nouveautés)': case 'extension': case 'inauguration': case 'exposition': $articleAvantTypeEvenement = "de l'"; break; default: $articleAvantTypeEvenement = "de"; break; } if (substr($res->dateDebut, 5) == "00-00") { $datetime = substr($res->dateDebut, 0, 4); } else { $datetime = $res->dateDebut; } if ($res->nomTypeEvenement == 'Construction') { if ($res->dateDebut != '0000-00-00') { $dateTxt = _("Année de construction :") . " <time itemprop='startDate' datetime='" . $datetime . "'>" . $environDateDebutTxt . $this->date->toFrenchAffichage($res->dateDebut) . "</time>"; } if ($res->dateFin != '0000-00-00') { $dateTxt .= " (-> " . $this->date->toFrenchAffichage($res->dateFin) . ")"; $retourDateFin = " (-> " . $this->date->toFrenchAffichage($res->dateFin) . ")"; } } else { if ($res->dateDebut != '0000-00-00') { if ($res->MH != '1' && $res->ISMH != '1') { if (pia_strlen($this->date->toFrench($res->dateDebut)) <= 4) { if (archiPersonne::isPerson($idEvenementGroupeAdresse)) { $nomTypeEvenement = "début"; } else { $nomTypeEvenement = strtolower($res->nomTypeEvenement); } $dateTxt = _("Année") . " " . $articleAvantTypeEvenement . " <time itemprop='startDate' datetime='" . $datetime . "'>" . $nomTypeEvenement . " : {$environDateDebutTxt}" . $this->date->toFrenchAffichage($res->dateDebut) . "</time>"; } else { if (archiPersonne::isPerson($idEvenementGroupeAdresse)) { $typeEvenement = ""; } else { $typeEvenement = $articleAvantTypeEvenement . " " . strtolower($res->nomTypeEvenement); } $dateTxt = _("Date") . " <time itemprop='startDate' datetime='" . $datetime . "'>" . $typeEvenement . " : {$environDateDebutTxt}" . $this->date->toFrenchAffichage($res->dateDebut) . "</time>"; } } if ($res->MH == '1') { $dateTxt = "<b>" . _("Classement Monument Historique") . "</b> {$environDateDebutTxt} le " . $this->date->toFrenchAffichage($res->dateDebut); $isMH = true; } if ($res->ISMH == '1') { $dateTxt = "<b>" . _("Inscription à l'Inventaire Supplémentaire des Monuments Historiques") . "</b> {$environDateDebutTxt} : " . $this->date->toFrenchAffichage($res->dateDebut); if ($res->MH == '1') { $dateTxt .= "<br><b>" . _("Classement Monument Historique") . "</b> {$environDateDebutTxt} : " . $this->date->toFrenchAffichage($res->dateDebut); } $isISMH = true; } } if ($res->dateFin != '0000-00-00') { if (pia_strlen($this->date->toFrench($res->dateFin)) <= 4) { $dateTxt .= " " . _("à") . " " . $this->date->toFrenchAffichage($res->dateFin); } else { $dateTxt .= " " . _("au") . " " . $this->date->toFrenchAffichage($res->dateFin); } } } // ****************************************************************************************************** // on renseigne la variable nomTypeStructure pour la renvoyer au retour de la fonction $retourIdTypeStructure = $res->idTypeStructure; // idem pour le titre qui sera affiché en resume pour le tableau de liens $retourTitreAncre = ""; if (stripslashes($res->titre) != '') { $retourTitreAncre .= htmlspecialchars(stripslashes($res->titre)); } else { $retourTitreAncre .= _("Sans titre"); } $retourNomTypeEvenement = $res->nomTypeEvenement; $retourDate = $environDateDebutTxt . " " . $this->date->toFrench($res->dateDebut); $dateDebut = $res->dateDebut; if (isset($paramChampCache['idTypeStructurePrecedent']) && $res->idTypeStructure == $paramChampCache['idTypeStructurePrecedent']) { $typeStructure = ''; } else { if (archiPersonne::isPerson($idEvenementGroupeAdresse)) { $typeStructure = ""; } else { $typeStructure = "Structure : <a href='" . $this->creerUrl('', 'evenementListe', array('selection' => 'typeStructure', 'id' => $res->idTypeStructure)) . "'>" . $res->nomTypeStructure . "</a><br>"; } } $source = ""; if ($res->idSource != 0) { $source = "Source : <a href='" . $this->creerUrl('', 'listeAdressesFromSource', array('source' => $res->idSource, 'submit' => 'Rechercher')) . "' onmouseover=\"document.getElementById('calqueDescriptionSource').style.top=(getScrollHeight()+150)+'px';\n\t\t\t\t\t\t\t\t\tdocument.getElementById('calqueDescriptionSource').style.display='block';\n\t\t\t\t\t\t\t\t\tdocument.getElementById('iframe').src='" . $this->creerUrl('', 'descriptionSource', array('archiIdSource' => $res->idSource, 'noHeaderNoFooter' => 1)) . "';\"\n\t\t\t\t\t\t\t\t\t>" . stripslashes($res->nomSource) . "</a><br>"; } else { // exception temporaire (?) if ($res->numeroArchive != '') { // s'il y a un numero d'archive et pas de source précisée , on dit que la source est "archives municipales" (voir fabien) $reqSourceStatic = "SELECT nom as nomSource FROM source WHERE idSource='24'"; $resSourceStatic = $this->connexionBdd->requete($reqSourceStatic); $fetchSourceStatic = mysql_fetch_assoc($resSourceStatic); $source = "Source : <a href='" . $this->creerUrl('', 'listeAdressesFromSource', array('submit' => 'Rechercher', 'source' => 24)) . "' onmouseover=\"document.getElementById('calqueDescriptionSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDescriptionSource').style.display='block';document.getElementById('iframe').src='" . $this->creerUrl('', 'descriptionSource', array('archiIdSource' => 24, 'noHeaderNoFooter' => 1)) . "';\" onmouseout=\"document.getElementById('calqueDescriptionSource').style.display='none';\">" . stripslashes($fetchSourceStatic['nomSource']) . "</a><br>"; } } // DESCRIPTION --- $bbCode = new bbCodeObject(); $description = $bbCode->convertToDisplay(array('text' => $res->description)); $description = empty($description) ? "" : "<div itemprop='description' class='desc'>" . $description . "</div>"; // -- // numeroArchive $numeroArchive = ""; if ($res->numeroArchive != '') { // modif fabien du 15/04/2011 suite mail directrice Archives de Strasbourg Mme Perry Laurence $numeroArchive = "Cote Archives de Strasbourg : " . $res->numeroArchive . "<br>"; } $adressesLieesHTML = $this->getAdressesLieesAEvenement(array('modeRetour' => 'affichageSurDetailEvenement', 'idEvenement' => $idEvenement)); if ($adressesLieesHTML != '') { $adressesLieesHTML = "<b>" . _("Liste des adresses liées :") . "</b> <br>" . $adressesLieesHTML; } // recherche s'il y a un historique sur l'evenement courant ( plusieurs mises à jour) $lienHistoriqueEvenementCourant = ""; $labelHistorique = ""; if ($estConnecte && $this->getNbEvenementsInHistorique(array('idEvenement' => $idEvenement)) > 1 && $modeAffichage != 'consultationHistoriqueEvenement' && (!isset($params['isLieFromOtherAdresse']) || $params['isLieFromOtherAdresse'] != true)) { $labelHistorique = _("(Consulter l'historique)"); $lienHistoriqueEvenementCourant = $this->creerUrl('', 'consultationHistoriqueEvenement', array('archiIdEvenement' => $idEvenement)); } $onClickEvenementDeplacerVersGA = ""; if ($estConnecte && $u->isAuthorized('evenement_deplacer', $userId) && $modeAffichage != 'consultationHistoriqueEvenement' && isset($params['calquePopupDeplacerEvenement'])) { $onClickEvenementDeplacerVersGA = "document.getElementById('" . $params['calquePopupDeplacerEvenement']->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => "popupDeplacerEvenementVersGroupeAdresse", "idEvenementADeplacer" => $res->idEvenement)) . "';document.getElementById('" . $params['calquePopupDeplacerEvenement']->getJSDivId() . "').style.display='block';"; } $dateEnvoi = ""; $txtEnvoi = _("envoyé"); if (!$this->isFirstIdHistoriqueEvenementFromHistorique($res->idEvenement)) { $txtEnvoi = _("modifié"); } $dateEnvoi = _("le") . " " . $res->dateCreationEvenement; $arrayIdAdresseToUrl = array(); if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '') { $arrayIdAdresseToUrl = array('archiIdAdresse' => $this->variablesGet['archiIdAdresse']); } $resTypeEvenement = $this->connexionBdd->requete("SELECT idTypeEvenement,nom FROM typeEvenement where groupe = '" . $this->getGroupeFromTypeEvenement($res->idTypeEvenement) . "'"); $fetchTypeEvenement = mysql_fetch_assoc($resTypeEvenement); if (archiPersonne::isPerson($idEvenementGroupeAdresse)) { $typeEvenement = _("Biographie"); $urlTypeEvenement = ""; } else { $typeEvenement = $res->nomTypeEvenement; $urlTypeEvenement = $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $res->idTypeEvenement)); } $titre = empty($res->titre) ? "<meta itemprop='name' content='" . $fetchTypeEvenement['nom'] . "' />" : "<h3 itemprop='name'>" . htmlspecialchars(stripslashes($res->titre)) . "</h3>"; $user = new archiUtilisateur(); $user->setUserId($res->idEvenement); $urlProfilPic = $user->getImageAvatar(array('idUtilisateur' => $res->idUtilisateur)); $utilisateur = "<a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $res->idUtilisateur, 'archiIdEvenementGroupeAdresseOrigine' => $idEvenementGroupeAdresse)) . "'>" . $res->nomUtilisateur . " " . $res->prenomUtilisateur . "</a>"; $t->assign_vars(array('txtEnvoi' => $txtEnvoi, 'dateEnvoi' => $dateEnvoi, 'titre' => $titre, 'utilisateur' => "<a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $res->idUtilisateur, 'archiIdEvenementGroupeAdresseOrigine' => $idEvenementGroupeAdresse)) . "'>" . $res->nomUtilisateur . " " . $res->prenomUtilisateur . "</a>", 'dates' => $dateTxt, 'typeEvenement' => $typeEvenement, 'typeStructure' => $typeStructure, 'idSource' => $res->idSource, 'source' => $source, 'description' => $description, 'urlTypeEvenement' => $urlTypeEvenement, 'urlTypeStructure' => $this->creerUrl('', 'evenementListe', array('selection' => 'typeStructure', 'id' => $res->idTypeStructure)), 'ajouterEvenement' => '', 'supprimerEvenement' => $this->creerUrl('supprimerEvenement', '', array('archiIdEvenement' => $res->idEvenement)), 'supprimerHistoriqueEvenement' => $this->creerUrl('supprimerHistoriqueEvenement', '', array('archiIdHistoriqueEvenement' => $res->idHistoriqueEvenement)), 'ajouterImage' => $this->creerUrl('', 'ajoutImageEvenement', array('archiIdEvenement' => $res->idEvenement)), 'modifierImage' => $this->creerUrl('', 'modifierImageEvenement', array('archiIdEvenement' => $res->idEvenement)), 'modifierEvenement' => $this->creerUrl('', 'modifierEvenement', array_merge(array('archiIdEvenement' => $res->idEvenement, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse), $arrayIdAdresseToUrl)), 'urlImporterImage' => "#", 'onClickImporterImage' => "document.getElementById('formulaireEvenement').action='" . $this->creerUrl('deplacerImagesSelectionnees', 'evenement', array('idEvenement' => $idEvenement)) . "&deplacerVersIdEvenement=" . $res->idEvenement . "';document.getElementById('actionFormulaireEvenement').value='deplacerImages';if(confirm('Voulez-vous vraiment déplacer ces images ?')){document.getElementById('formulaireEvenement').submit();}", 'urlSupprimerImage' => "#", 'onClickSupprimerImage' => "document.getElementById('formulaireEvenement').action='" . $this->creerUrl('supprimerImagesSelectionnees', 'evenement', array('idEvenement' => $idEvenement)) . "';document.getElementById('actionFormulaireEvenement').value='supprimerImages';if(confirm('Voulez-vous vraiment supprimer ces images ?')){document.getElementById('formulaireEvenement').submit();}", 'urlLierAdresses' => $this->creerUrl('', 'afficheFormulaireEvenementAdresseLiee', array('idEvenement' => $res->idEvenement)), 'listeAdressesLiees' => $adressesLieesHTML, 'lienHistoriqueEvenementCourant' => $lienHistoriqueEvenementCourant, 'urlDeplacerVersNouveauGroupeAdresse' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $res->idEvenement)), 'onClickDeplacerVersAdresses' => $onClickEvenementDeplacerVersGA, 'numeroArchive' => $numeroArchive, 'idEvenement' => $res->idEvenement, 'urlProfilPic' => $urlProfilPic, 'infoTitre' => $utilisateur . " a " . $txtEnvoi . " un événement", 'txtEnvoi' => $txtEnvoi, 'labelLienHistorique' => $labelHistorique)); $idEvenement = $res->idEvenement; // affichage des images de l'evenement if ($modeAffichage != 'consultationHistoriqueEvenement') { $images = new archiImage(); $arrayImagesVuesSurByDate = array(); if (isset($params['imagesVuesSurLinkedByDate']) && count($params['imagesVuesSurLinkedByDate']) > 0) { $arrayImagesVuesSurByDate = $params['imagesVuesSurLinkedByDate']; } $t->assign_vars(array('imagesLiees' => $images->afficherFromEvenement($idEvenement, array('withoutImagesVuesSurPrisesDepuis' => true, 'imagesVuesSurLinkedByDate' => $arrayImagesVuesSurByDate, 'idGroupeAdresseEvenementAffiche' => $idEvenementGroupeAdresse)))); } if (($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) && isset($params["nextEvent"])) { $req = "\n\t\t\t\t\t\t\tSELECT dateDebut\n\t\t\t\t\t\t\tFROM evenements\n\t\t\t\t\t\t\tWHERE idEvenement = '" . $params["nextEvent"] . "'\n\t\t\t\t\t\t\t\t\tORDER BY idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t"; $res = $this->connexionBdd->requete($req); $date2 = mysql_fetch_object($res); $linkedEventsHTML = archiPersonne::displayEvenementsLies($idPerson, $dateDebut, $date2->dateDebut); $t->assign_vars(array("evenementsLiesPersonne" => $linkedEventsHTML)); } elseif ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { $linkedEventsHTML = archiPersonne::displayEvenementsLies($idPerson, $dateDebut, 3000); $t->assign_vars(array("evenementsLiesPersonne" => $linkedEventsHTML)); } /* * COURANTS ARCHI */ $rep = $this->connexionBdd->requete(' SELECT cA.idCourantArchitectural, cA.nom FROM _evenementCourantArchitectural _eA LEFT JOIN courantArchitectural cA ON cA.idCourantArchitectural = _eA.idCourantArchitectural WHERE _eA.idEvenement=' . $idEvenement . ' ORDER BY cA.nom ASC'); if (mysql_num_rows($rep) > 0) { $t->assign_block_vars('simple.isCourantArchi', array()); while ($res = mysql_fetch_object($rep)) { $t->assign_block_vars('simple.isCourantArchi.archi', array('url' => $this->creerUrl('', 'evenementListe', array('selection' => 'courant', 'id' => $res->idCourantArchitectural)), 'nom' => $res->nom)); } } /* ** PERSONNES */ $rep = $this->connexionBdd->requete(' SELECT p.idPersonne, m.nom as metier, p.nom, p.prenom FROM _evenementPersonne _eP LEFT JOIN personne p ON p.idPersonne = _eP.idPersonne LEFT JOIN metier m ON m.idMetier = p.idMetier WHERE _eP.idEvenement=' . $idEvenement . ' ORDER BY p.nom DESC'); $metier = ""; while ($res = mysql_fetch_object($rep)) { if (isset($res->metier) && $res->metier != '') { $metier = $res->metier . ' : '; } $t->assign_block_vars('simple.pers', array('urlDetail' => $this->creerUrl('', 'personne', array('idPersonne' => $res->idPersonne)), 'urlEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $res->idPersonne)), 'nom' => stripslashes($res->nom), 'prenom' => stripslashes($res->prenom), 'metier' => stripslashes($metier), 'idPerson' => $res->idPersonne, 'idEvent' => $idEvenement)); if ($estConnecte) { $t->assign_block_vars('simple.pers.connected', array()); } } //* //** Historique //*/ $t->assign_vars(array('nbHistorique' => $nbHistorique)); if ($nbHistorique > 0) { $t->assign_block_vars('histo', array('url' => $this->creerUrl('', 'historiqueEvenement', array('idEvenement' => $idEvenement)))); } } // ************************************************************************************************************************************* // affichage des adresses et evenements lies dans la partie supérieur du detail // que l'événement soit un groupe d'adresse ou non, on affiche les enfants // ************************************************************************************************************************************* if ($modeAffichage != 'simple' && $modeAffichage != 'consultationHistoriqueEvenement') { $tabIdEvenementsLies = $this->getEvenementsLies($idEvenement); // recherche des sous evenements (idEvenementAssocie) du groupe d'adresse if (count($tabIdEvenementsLies) > 0) { $listeGroupeAdressesAffichees[] = $idEvenement; $t->assign_block_vars('noSimple', array()); // vu que la fonction afficher est recursive , on affiche cette partie uniquement en affichant 'non simple' //=> affichage simple = affichage de l'evenement => affichage non simple = affichage de la page ... if ($modeAffichage == "personne") { } else { $retourAdresse = $adresse->afficherListe(array('archiIdEvenement' => $idEvenement, 'useTemplateFile' => 'listeAdressesDetailEvenement.tpl'), "listeDesAdressesDuGroupeAdressesSurDetailAdresse"); // modeAffichage => listeDesAdressesDuGroupeAdressesSurDetailAdresse } $idAdresseCourante = 0; if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '') { $idAdresseCourante = $this->variablesGet['archiIdAdresse']; } if ($modeAffichage != "personne") { // ************************************************************************************************************************ // affichage carte googlemap dans une iframe $coordonnees = $adresse->getCoordonneesFrom($idEvenement, 'idEvenementGroupeAdresse'); //$retourAdresse['arrayIdAdresses'][0] // si pas de coordonnees , on va chercher les coordonnees de la ville courante if ($coordonnees['longitude'] == 0 && $coordonnees['latitude'] == 0) { $idVilleAdresseCourante = $adresse->getIdVilleFrom($idAdresseCourante, 'idAdresse'); $coordonnees = $adresse->getCoordonneesFrom($idVilleAdresseCourante, 'idVille'); } $calqueGoogleMap = new calqueObject(array('idPopup' => 10)); $contenuIFramePopup = $this->getContenuIFramePopupGoogleMap(array('idAdresseCourante' => $idAdresseCourante, 'calqueObject' => $calqueGoogleMap, 'idEvenementGroupeAdresseCourant' => $idEvenement)); // ******************************************************************************************************************************** $t->assign_block_vars('noSimple.isCarteGoogle', array('src' => $this->creerUrl('', 'afficheGoogleMapIframe', array('noHeaderNoFooter' => 1, 'longitude' => $coordonnees['longitude'], 'latitude' => $coordonnees['latitude'], 'archiIdAdresse' => $idAdresseCourante, 'archiIdEvenementGroupeAdresse' => $idEvenement)), 'lienVoirCarteGrand' => "<a href='#' onclick=\"" . $calqueGoogleMap->getJsOpenPopupNoDraggableWithBackgroundOpacity() . "document.getElementById('iFrameDivPopupGM').src='" . $this->creerUrl('', 'afficheGoogleMapIframe', array('longitude' => $coordonnees['longitude'], 'latitude' => $coordonnees['latitude'], 'noHeaderNoFooter' => true, 'archiIdAdresse' => $idAdresseCourante, 'archiIdEvenementGroupeAdresse' => $idEvenement, 'modeAffichage' => 'popupDetailAdresse')) . "';\" class='bigger' style='font-size:11px;'>" . _("Voir la carte en + grand") . "</a>", 'popupGoogleMap' => $calqueGoogleMap->getDivNoDraggableWithBackgroundOpacity(array('top' => 20, 'lienSrcIFrame' => '', 'contenu' => $contenuIFramePopup)))); //'popupGoogleMap'=>$calqueGoogleMap->getDiv(array('width'=>550,'height'=>570,'lienSrcIFrame'=>''))."<script >".$calqueGoogleMap->getJsToDragADiv()."</script>" $t->assign_vars(array('largeurTableauResumeAdresse' => 415, 'hauteurRecapAdresse' => '270')); // ************************************************************************************************************************ // affichage de l'encars des adresses avec les photos avant et apres l'adresse courante $arrayEncartAdresses = $adresse->getArrayEncartAdressesImmeublesAvantApres(array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse)); $t->assign_block_vars('noSimple.adresses', array('adressesLiees' => $arrayEncartAdresses['html'])); $t->assign_vars(array('urlAutresBiensRue' => $retourAdresse['arrayRetourLiensVoirBatiments']['urlAutresBiensRue'], 'urlAutresBiensQuartier' => $retourAdresse['arrayRetourLiensVoirBatiments']['urlAutresBiensQuartier'])); if ($estConnecte) { $t->assign_block_vars('noSimple.isConnected', array()); $t->assign_block_vars('noSimple.adresses.isConnected', array()); } if ($retourAdresse['nbAdresses'] == 0) { $t->assign_vars(array('intituleActionAdresses' => _("Ajouter une adresse"))); } else { $t->assign_vars(array('intituleActionAdresses' => _("Modifier"))); } if ($estConnecte && $estAdmin) { // si l'utilisateur est connecté et est admin, on affiche le lien pour selectionner des images $t->assign_block_vars('noSimple.isConnected.afficheLienSelectionImages', array()); } if ($estConnecte && $u->isAuthorized('affiche_menu_evenement_choix_titre', $userId)) { if ($u->getIdProfil($userId) == 4 || $u->isModerateurFromVille($userId, $idEvenementGroupeAdresse, 'idEvenementGroupeAdresse')) { // tout utilisateur autorisé (admin+moderateur de la ville) peut changer le titre par defaut du groupe d'adresse en selectionnant l'evenement de son choix ( le titre est récupéré de cet evenement),si l'autorisation est faite dans la gestion des droites de l'admin du site $t->assign_block_vars('noSimple.isConnected.afficheLienSelectionTitre', array()); } } if ($estConnecte && $u->isAuthorized('affiche_menu_evenement_choix_image_principale', $userId)) { if ($u->getIdProfil($userId) == 4 || $u->isModerateurFromVille($userId, $idEvenementGroupeAdresse, 'idEvenementGroupeAdresse')) { // un utilisateur moderateur de la ville de l'adresse courant ou un admin peuvent selectionner ou changer l'image principale du groupe d'adresse,si l'autorisation est faite dans la gestion des droites de l'admin du site $t->assign_block_vars('noSimple.isConnected.afficheLienSelectionImagePrincipale', array()); } } if ($estConnecte && $u->isAuthorized('affiche_menu_evenement_positionnement_evenements', $userId)) { if ($u->getIdProfil($userId) == 4 || $u->isModerateurFromVille($userId, $idEvenementGroupeAdresse, 'idEvenementGroupeAdresse')) { // un utilisateur moderateur de la ville courante ou admin peuvent changer la position des evenements, independemment de la date de debut de l'evenement ,si l'autorisation est faite dans la gestion des droites de l'admin du site $t->assign_block_vars('noSimple.isConnected.afficheLienPositionnementEvenements', array()); } } } //popup pour la recherche d'adresse dans le cas d'un deplacement d'evenement if ($estConnecte && $u->isAuthorized('evenement_deplacer', $userId)) { $c = new calqueObject(array('idPopup' => "divPopupDeplacerEvenementVersGA" . $idEvenementGroupeAdresse)); $t->assign_vars(array('divDeplacerEvenementVersGA' => $c->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupDeplacerEvenementVersGroupeAdresse')), 'titrePopup' => _("Recherche d'adresses"), 'width' => 700)))); $params['calquePopupDeplacerEvenement'] = $c; } $images = new archiImage(); // ********************************************************************************************************************************************************** // recherche des images en rapport avec l'adresse courante $resAdressesCourantes = $adresse->getAdressesFromEvenementGroupeAdresses($idEvenement); $listeAdressesFromEvenement = array(); while ($fetchAdressesCourantes = mysql_fetch_assoc($resAdressesCourantes)) { $listeAdressesFromEvenement[] = $fetchAdressesCourantes['idAdresse']; } if ($modeAffichage == "personne") { } else { $arrayCorrespondancesVuesSur = $this->getArrayCorrespondancesIdImageVuesSurAndEvenementByDateFromGA($idEvenementGroupeAdresse); $arrayNoDiplayIdImageVueSur = array(); foreach ($arrayCorrespondancesVuesSur as $indice => $values) { foreach ($values as $indice => $value) { $arrayNoDiplayIdImageVueSur[] = $value['idImage']; } } } if (count($listeAdressesFromEvenement) > 0) { $arrayAutresVuesSur = $images->getAutresPhotosVuesSurAdresse($listeAdressesFromEvenement, 'moyen', array('noDiplayIdImage' => $arrayNoDiplayIdImageVueSur, 'idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'idGroupeAdresseEvenementAffiche' => $idEvenementGroupeAdresse, 'setZoomOnImageZone' => true)); $autresVuesSurHTML = $arrayAutresVuesSur['htmlVueSur']; $codeARajouterALaFin = $arrayAutresVuesSur['htmlZonesDivMapJs']; $autresPrisesDepuisHTML = $images->getAutresPhotosPrisesDepuisAdresse($listeAdressesFromEvenement, 'moyen', array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'idGroupeAdresseEvenementAffiche' => $idEvenementGroupeAdresse)); if ($autresVuesSurHTML != '') { $t->assign_block_vars('noSimple.autresVuesSur', array('value' => $autresVuesSurHTML)); } if ($autresPrisesDepuisHTML != '') { $t->assign_block_vars('noSimple.autresPrisesDepuis', array('value' => $autresPrisesDepuisHTML)); } $arrayLiens = array(); if ($modeAffichage != "personne") { $arrayListeAdressesCourantes = array_unique($retourAdresse['arrayIdAdresses']); } //foreach($arrayListeAdressesCourantes as $indice => $idAdresseCourante) //{ $arrayLiens[] = "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresseCourante, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)) . "'>" . $adresse->getIntituleAdresseFrom($idEvenementGroupeAdresse, 'idEvenementGroupeAdresse', array("noQuartier" => true, "noVille" => true, "noSousQuartier" => true, "ifTitreAfficheTitreSeulement" => true)) . "</a>"; //} $t->assign_vars(array('listeAdressesCourantes' => implode(" / ", $arrayLiens))); } // ********************************************************************************************************************************************************** // ********************************************************************************************************************************************************** // ********************************************************************************************************************************************************** // affichage des evenements de l'evenement groupe d'adresses // ********************************************************************************************************************************************************** $champsCacheTransmis = array(); // $idEvenementWhereIsTitre = $this->getIdEvenementTitre(array("idEvenementGroupeAdresse" => $idEvenementGroupeAdresse)); $idAdresse = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($idEvenementGroupeAdresse); // initialisation des variables pour la creation du tableau de configuration de la liste triable par glisser deposer des evenements dans l'onglet historique des evenements if (isset($this->variablesGet['affichePositionnementEvenements']) && $this->variablesGet['affichePositionnementEvenements'] == '1') { $arrayConfigPositionnementEvenement = array(); $indicePositionnement = 0; } $i = 0; // parcours des evenements foreach ($tabIdEvenementsLies as $indice => $value) { $params['isLieFromOtherAdresse'] = $value['isLieFromOtherAdresse']; $params['imagesVuesSurLinkedByDate'] = array(); if (isset($tabIdEvenementsLies[$i + 1]["idEvenementAssocie"])) { $params["nextEvent"] = $tabIdEvenementsLies[$i + 1]["idEvenementAssocie"]; } else { $params["nextEvent"] = null; } if (isset($arrayCorrespondancesVuesSur[$value['idEvenementAssocie']])) { $params['imagesVuesSurLinkedByDate'] = $arrayCorrespondancesVuesSur[$value['idEvenementAssocie']]; } // le type de structure est le meme que l'evenement precedent , on ne l'affiche pas, c'est pour cela qu'on le transmet a la fonction d'affichage $retourEvenement = $this->afficher($value['idEvenementAssocie'], 'simple', null, $champsCacheTransmis, $params); $champsCacheTransmis = array('idTypeStructurePrecedent' => $retourEvenement['idTypeStructure']); $titreAncre = $retourEvenement['titreAncre']; if ($titreAncre == 'Sans titre' && ($retourEvenement['isMH'] || $retourEvenement['isISMH'])) { if ($retourEvenement['isMH']) { $titreAncre = "<b>" . _("Classement aux Monuments Historiques") . "</b>"; } if ($retourEvenement['isISMH']) { $titreAncre = "<b>" . _("Inscription à l'Inventaire Supplémentaire des Monuments Historiques") . "</b>"; } } elseif ($titreAncre != _("Sans titre") && ($retourEvenement['isMH'] || $retourEvenement['isISMH'])) { if ($retourEvenement['isMH']) { $titreAncre .= " <b>(MH)</b>"; } if ($retourEvenement['isISMH']) { $titreAncre .= " <b>(ISMH)</b>"; } } if ($retourEvenement['nomTypeEvenement'] != '') { $titreAncre .= " - " . $retourEvenement['nomTypeEvenement']; } if ($retourEvenement['date'] != '') { $titreAncre .= " - " . $retourEvenement['date']; } if ($retourEvenement['dateFin'] != '') { $titreAncre .= " " . $retourEvenement['dateFin']; } if (isset($this->variablesGet['affichePositionnementEvenements']) && $this->variablesGet['affichePositionnementEvenements'] == '1') { // si on est en mode de positionnement des evenements manuellement $arrayConfigPositionnementEvenement[$indicePositionnement]['idEvenement'] = array('value' => $value['idEvenementAssocie'], 'type' => 'identifiant'); $arrayConfigPositionnementEvenement[$indicePositionnement]['illustration'] = array('value' => "<img src='" . $this->urlImages . "doubleFlechesVerticales.jpg' border=0>", 'type' => 'free'); $arrayConfigPositionnementEvenement[$indicePositionnement]['titre'] = array('value' => $titreAncre, 'type' => 'free', 'styleColonneDonnees' => 'font-size:12px;'); $indicePositionnement++; /*$t->assign_block_vars('noSimple.modePositionnementEvenements',array()); $t->assign_block_vars('noSimple.modePositionnementEvenements.titresEvenements',array( 'imagesIllustrationGlisserDeposer'=>$this->urlImages."", 'titre' => $titreAncre )); */ //'url'=> $this->creerUrl('selectTitreAdresse','adresseDetail',array('archiIdAdresse'=>$idAdresse,'idEvenementTitreSelection'=>$value['idEvenementAssocie'],'archiIdEvenementGroupeAdresse'=>$idEvenementGroupeAdresse)) } elseif (isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1') { // si on est en mode de selection d'un titre le titre courant s'affiche en rouge if ($idEvenementWhereIsTitre == $value['idEvenementAssocie']) { $titreAncre = "<span style='color:red;'>" . $titreAncre . "</span>"; } $t->assign_block_vars('noSimple.ancres', array('titre' => $titreAncre, 'url' => $this->creerUrl('selectTitreAdresse', 'adresseDetail', array('archiIdAdresse' => $idAdresse, 'idEvenementTitreSelection' => $value['idEvenementAssocie'], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)))); } else { $t->assign_block_vars('noSimple.ancres', array('titre' => $titreAncre, 'url' => "#" . $indice)); } if ($this->variablesGet['selection'] == 'personne') { $formulaireCommentaire = $this->getFormComment($value['idEvenementAssocie'], $this->getCommentairesFields('personne', $this->variablesGet['id']), 'personne'); $listeCommentaires = $this->getListCommentairesEvenements($value['idEvenementAssocie']); } else { $formulaireCommentaire = $this->getFormComment($value['idEvenementAssocie'], $this->getCommentairesFields('evenement'), 'evenement'); $listeCommentaires = $this->getListCommentairesEvenements($value['idEvenementAssocie']); } $t->assign_block_vars('evenementLie', array('evenement' => $retourEvenement['html'], 'numeroAncre' => $indice, 'listeCommentaires' => $listeCommentaires, 'formulaireCommentaire' => $formulaireCommentaire)); $i++; } // affichage de la liste triable a la place de l'historique des evenements, quand on est en mode positionnement d'evenements if (isset($this->variablesGet['affichePositionnementEvenements']) && $this->variablesGet['affichePositionnementEvenements'] == '1') { $t->assign_block_vars('noSimple.modePositionnementEvenements', array()); // affiche le bloc $t->assign_vars(array('sortableFormListe' => $imageObject->createSortableFormListeFromArray($arrayConfigPositionnementEvenement, array('noEntetesTableau' => true)) . $imageObject->getJSInitAfterListDragAndDrop('slideshow0', array('onlyHiddenFormField' => true)), 'onClickValidationPositionnementEvenement' => $imageObject->getJSSubmitDragAndDrop() . "document.getElementById('formPositionnementEvenements').submit();", 'formActionPositionnementEvenements' => $this->creerUrl('enregistrerPositionnementEvenements', 'adresseDetail', array('archiIdAdresse' => $idAdresseCourante, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)))); // ajout du code d'initialisation au niveau de la fin de la page (footer) $this->addToJsFooter($imageObject->getJSInitAfterListDragAndDrop('slideshow0', array('onlyJavascriptInitCode' => true))); } // ajout de la possibilité de préciser que l'on ne veut pas de titre , l'adresse s'affichera donc pour l'evenement a la place d'un titre if (isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1') { $titreAncre = "Pas de titre"; if ($idEvenementWhereIsTitre == -1) { $titreAncre = "<span style='color:red;'>Pas de titre</span>"; } $t->assign_block_vars('noSimple.choixEvenementSansTitre', array('titre' => $titreAncre, 'url' => $this->creerUrl('selectTitreAdresse', 'adresseDetail', array('archiIdAdresse' => $idAdresse, 'idEvenementTitreSelection' => -1, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)))); } // affichage de la liste des historiques de nom de rue pour l'adresse si celle ci ne concerne qu'une rue , sans numero de rue. $infosAdresseCourante = $adresse->getArrayAdresseFromIdAdresse($idAdresse); if (($infosAdresseCourante['numero'] == '0' || $infosAdresseCourante['numero'] == '') && ($infosAdresseCourante['idRue'] != '' || $infosAdresseCourante['idRue'] != '0')) { $d = new dateObject(); // dans ce cas on va chercher les infos de l'historique de la rue $reqHistoriqueNomRue = "SELECT * FROM historiqueNomsRues WHERE idRue = '" . $infosAdresseCourante['idRue'] . "' ORDER BY annee"; $resHistoriqueNomRue = $this->connexionBdd->requete($reqHistoriqueNomRue); if (mysql_num_rows($resHistoriqueNomRue) > 0) { $t->assign_block_vars("noSimple.isHistoriqueNomsRue", array()); while ($fetchHistoriqueNomRue = mysql_fetch_assoc($resHistoriqueNomRue)) { if ($fetchHistoriqueNomRue['prefixe'] != '') { $nomRue = stripslashes($fetchHistoriqueNomRue['prefixe']) . " " . stripslashes($fetchHistoriqueNomRue['nomRue']); } else { $nomRue = stripslashes($fetchHistoriqueNomRue['nomRue']); } $t->assign_block_vars("noSimple.listeHistoriqueNomsRue", array("annee" => $d->toFrenchAffichage($fetchHistoriqueNomRue['annee']), "nomRue" => $nomRue, "commentaire" => stripslashes($fetchHistoriqueNomRue['commentaire']))); } } } $a = new archiAdresse(); $listeCommentaires = $a->getListeCommentaires($idEvenementGroupeAdresse); $formulaireCommentaire = $this->getFormComment($idEvenementGroupeAdresse, $this->getCommentairesFields(), ''); if (!ArchiPersonne::isPerson($idEvenementGroupeAdresse)) { $t->assign_block_vars('commentairesAdresse', array('formulaireCommentaire' => $formulaireCommentaire, 'listeCommentaires' => $listeCommentaires)); } $t->assign_vars(array('nbEvenements' => count($tabIdEvenementsLies) + 1)); } else { } } // ************************************************************************************************************************************* } else { echo 'aucun résultat !'; } ob_start(); $t->pparse('ev'); $html .= ob_get_contents(); ob_end_clean(); if (isset($codeARajouterALaFin)) { $html .= $codeARajouterALaFin; // a cause du JS executé a la fin sinon il ne trouve pas certains divs } // on ferme le formulaire s'il a ete ouvert if ($modeAffichage != 'simple' && $modeAffichage != 'consultationHistoriqueEvenement') { if ($estConnecte && (isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1' || isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1')) { $html .= "</form>"; } } $s = new archiSource(); $html .= $s->getPopupDescriptionSource(); return array('html' => $html, 'idTypeStructure' => $retourIdTypeStructure, 'titreAncre' => $retourTitreAncre, 'nomTypeEvenement' => $retourNomTypeEvenement, 'date' => $retourDate, 'isMH' => $isMH, 'isISMH' => $isISMH, 'listeGroupeAdressesAffichees' => $listeGroupeAdressesAffichees, 'dateFin' => $retourDateFin); }
/** * Afficher la gestion des étapes d'un parcours * * @param array $params Paramètres * * @return string HTML * */ public function getHtmlGestionEtapesParcours($params = array()) { $html = "<h1>Gestion des étapes du parcours</h1>"; $idParcours = 0; if (isset($this->variablesGet['archiIdParcours']) && $this->variablesGet['archiIdParcours'] != '') { $f = new formGenerator(); $a = new archiAdresse(); $bbCode = new bbCodeObject(); $s = new stringObject(); $formName = 'formGestionEtapes'; $popupChoixAdresses = new calqueObject(array('idPopup' => 'popupChoixAdresses')); $popupVisualisationGoogleMap = new calqueObject(array('idPopup' => 'popupVisualisationGoogleMap')); $idParcours = $this->variablesGet['archiIdParcours']; $reqNbEtapes = "SELECT idEtape FROM etapesParcoursArt WHERE idParcours = '" . $idParcours . "'"; $resNbEtapes = $this->connexionBdd->requete($reqNbEtapes); $html .= "<br>nombre d'étapes : " . mysql_num_rows($resNbEtapes) . "<br>"; $reqListeEtapes = "SELECT idEtape,idEvenementGroupeAdresse,position,commentaireEtape FROM etapesParcoursArt WHERE idParcours = '" . $idParcours . "' ORDER BY position ASC,idEtape ASC"; $resListeEtapes = $this->connexionBdd->requete($reqListeEtapes); $listeTriableObject = new imageObject(); // dans l'objet image , il y a une fonction qui permet de creer des listes triables par drag and drop $html .= "<script>" . $listeTriableObject->getJSFunctionsDragAndDrop() . "</script>"; $i = 0; $arrayListeEtapes = array(); while ($fetchListeEtapes = mysql_fetch_assoc($resListeEtapes)) { $arrayListeEtapes[$i]['idEtape'] = array('value' => $fetchListeEtapes['idEtape'], 'type' => 'identifiant'); $arrayListeEtapes[$i]['#'] = array('value' => $i + 1, 'type' => 'free'); $arrayListeEtapes[$i][' '] = array('value' => "<a href='" . $this->creerUrl('', 'etapesParcoursFormulaire', array('archiIdEtape' => $fetchListeEtapes['idEtape'], 'archiIdParcours' => $idParcours)) . "'>" . $fetchListeEtapes['idEtape'] . "</a>", 'type' => 'free', 'widthColonne' => 50); $arrayListeEtapes[$i]['adresse'] = array('value' => $a->getIntituleAdresseFrom($fetchListeEtapes['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('setSeparatorAfterTitle' => '<br>', 'displayFirstTitreAdresse' => true, 'noVille' => true, 'noQuartier' => true, 'noSousQuartier' => true)), 'type' => 'free', 'widthColonne' => 250); $arrayListeEtapes[$i]['commentaire'] = array('type' => 'free', 'widthColonne' => 400, 'value' => $s->coupureTexte($s->sansBalisesHtml(stripslashes($fetchListeEtapes['commentaireEtape'])), 10)); $coords = $a->getCoordonneesFrom($fetchListeEtapes['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse'); $i++; } $boutonValidationOrdreEtapes = "<input type='button' name='validationOrdreAffichage' value='Validation ordre des étapes' onclick=\"document.getElementById('" . $formName . "').action='" . $this->creerUrl('enregistrerOrdreEtapesParcours', 'etapesParcoursFormulaire', array('archiIdParcours' => $idParcours)) . "';" . $listeTriableObject->getJSSubmitDragAndDrop() . "document.getElementById('" . $formName . "').submit();\">"; $html .= $listeTriableObject->createSortableFormListeFromArray($arrayListeEtapes, array('styleEntete' => 'font-weight:bold;background-color:#007799;color:#FFFFFF;')) . $boutonValidationOrdreEtapes; $sousTitre = "Ajout d'une étape"; $idEtape = 0; $libelleAdresse = ''; $commentaireEtape = ''; $idAdresse = ''; $idEvenementGroupeAdresse = 0; $boutonNouveau = ""; $boutonVisualisation = "<input type='button' name='visualisation' value='Visualiser' onclick=\"" . $popupVisualisationGoogleMap->getJSOpenPopup() . "document.getElementById('" . $popupVisualisationGoogleMap->getJSIFrameId() . "').src='" . $this->creerUrl('', 'carteGoogleMapParcoursArt', array('noHeaderNoFooter' => 1, 'archiIdParcours' => $idParcours)) . "'\">"; $boutonRetour = "<input type='button' name='retour' value='Retour' onclick=\"location.href='" . $this->creerUrl('', 'adminListeParcours', array()) . "';\">"; $boutonSupprimer = ""; // ajout d'une nouvelle etape $formAction = $this->creerUrl('ajouterEtapeParcours', 'etapesParcoursFormulaire', array('archiIdParcours' => $idParcours)); if (mysql_num_rows($resNbEtapes) == 0) { // si pas d'etapes encore , on peut definir un message } else { // il y a une ou plusieurs etapes dans le parcours if (isset($this->variablesGet['archiIdEtape']) && $this->variablesGet['archiIdEtape'] != '') { $idEtape = $this->variablesGet['archiIdEtape']; $reqEtape = "SELECT idEvenementGroupeAdresse,commentaireEtape FROM etapesParcoursArt WHERE idEtape='" . $idEtape . "'"; $resEtape = $this->connexionBdd->requete($reqEtape); $fetchEtape = mysql_fetch_assoc($resEtape); $sousTitre = _("Modification d'une étape"); $formAction = $this->creerUrl('modifierEtapeParcours', 'etapesParcoursFormulaire', array('archiIdParcours' => $idParcours, 'archiIdEtape' => $this->variablesGet['archiIdEtape'])); $commentaireEtape = $fetchEtape['commentaireEtape']; $libelleAdresse = $a->getIntituleAdresseFrom($fetchEtape['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse'); $idAdresse = ''; $idEvenementGroupeAdresse = $fetchEtape['idEvenementGroupeAdresse']; $boutonNouveau = "<input type='button' name='boutonNouveau' value='Nouveau' onclick=\"location.href='" . $this->creerUrl('', 'etapesParcoursFormulaire', array('archiIdParcours' => $idParcours)) . "';\">"; $boutonSupprimer = "<input type='button' name='boutonSupprimer' value='Supprimer' onclick=\"location.href='" . $this->creerUrl('supprimerEtapeParcours', 'etapesParcoursFormulaire', array('archiIdParcours' => $idParcours, 'archiIdEtapeSupprimer' => $idEtape)) . "';\">"; $coord = $a->getCoordonneesFrom($fetchEtape['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse'); } else { $coord = array("latitude" => "", "longitude" => ""); } } $bbCodeElementsArray = $bbCode->getBoutonsMiseEnFormeTextArea(array('formName' => $formName, 'fieldName' => 'commentaireEtape')); $html .= "<hr/>"; // formulaire ajout-modif etape $html .= "<h2>{$sousTitre}</h2>"; $configFields = array('idParcours' => array('libelle' => 'idParcours', 'type' => 'hidden', 'error' => '', 'value' => '', 'forceValueTo' => $idParcours, 'htmlCode' => ''), 'idEtape' => array('libelle' => 'idEtape', 'type' => 'hidden', 'error' => '', 'value' => '', 'forceValueTo' => $idEtape, 'htmlCode' => ''), 'libelleEvenementGroupeAdresse' => array('libelle' => _('Adresse'), 'type' => 'text', 'error' => '', 'value' => '', 'forceValueTo' => $libelleAdresse, 'htmlCode' => "style='width:300px;' disabled", 'htmlCode2' => "<input type='button' name='choixAdresse' value='Choisir' onclick=\"document.getElementById('" . $popupChoixAdresses->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupChoixAdresses->getJSOpenPopup() . "document.getElementById('" . $popupChoixAdresses->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseAdminParcours')) . "';\">"), 'latitude' => array('libelle' => _('Latitude'), 'type' => 'text', 'error' => '', 'value' => '', 'forceValueTo' => $coord["latitude"], 'htmlCode' => "style='width:300px;' readonly onclick='this.select();'"), 'longitude' => array('libelle' => _('Longitude'), 'type' => 'text', 'error' => '', 'value' => '', 'forceValueTo' => $coord["longitude"], 'htmlCode' => "style='width:300px;' readonly onclick='this.select();'"), 'idEvenementGroupeAdresse' => array('libelle' => 'idEvenementGroupeAdresse', 'type' => 'hidden', 'error' => '', 'value' => '', 'forceValueTo' => $idEvenementGroupeAdresse, 'htmlCode' => "style='width:300px;'"), 'commentaireEtape' => array('libelle' => 'commentaire', 'type' => 'bigText', 'error' => '', 'value' => '', 'forceValueTo' => $commentaireEtape, 'default' => '', 'htmlCode' => "style='width:500px;height:200px;'", 'htmlCodeBeforeField' => $bbCodeElementsArray['boutonsHTML'], 'htmlCode2' => $bbCodeElementsArray['divAndJsAfterForm'])); $configForm = array('fields' => $configFields, 'formAction' => $formAction, 'formName' => $formName, 'onClickSubmitButton' => $listeTriableObject->getJSSubmitDragAndDrop(), 'codeHtmlAfterSubmitButton' => $boutonSupprimer . $boutonNouveau . $boutonVisualisation . $boutonRetour, 'codeHtmlInFormAfterFields' => $listeTriableObject->getJSInitAfterListDragAndDrop()); $html .= $f->afficherFromArray($configForm); $html .= $popupChoixAdresses->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseAdminParcours')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Parcours')); $html .= $popupVisualisationGoogleMap->getDiv(array('lienSrcIFrame' => '')); // on ne precharge pas la carte google map sinon il y a un bug au niveau de la carte , le centre se placerai en haut a gauche $html .= "<script >" . $popupChoixAdresses->getJsToDragADiv() . "</script>"; // on rend le div deplacable $html .= "<script >" . $popupVisualisationGoogleMap->getJsToDragADiv() . "</script>"; // on rend le div deplacable } return $html; }