/** * Display html details of a single event * * @param unknown $idEvenement : id of the event to display * @return string : html of the detail event */ public function getEventInfos($idEvenement, $params = array()) { $authentification = new archiAuthentification(); $evenements = array(); /* * Data processing */ $requete = '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, ae.idAdresse, ha.idVille, ee.idEvenement as idEvenementGroupeAdresse FROM evenements 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 LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie =' . $idEvenement . ' LEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement LEFT JOIN historiqueAdresse ha on ha.idAdresse= ae.idAdresse WHERE hE.idEvenement=' . $idEvenement . ' ORDER BY hE.idEvenement DESC LIMIT 1'; if ($params['type'] == 'historique') { $requete = '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, s.description as descriptionSource, 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, ae.idAdresse, ha.idVille, ee.idEvenement as idEvenementGroupeAdresse FROM historiqueEvenement 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 LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = hE.idEvenement LEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement LEFT JOIN historiqueAdresse ha on ha.idAdresse= ae.idAdresse WHERE hE.idHistoriqueEvenement=' . $idEvenement . ' ORDER BY hE.idHistoriqueEvenement DESC'; } $result = $this->connexionBdd->requete($requete); $fetch = mysql_fetch_assoc($result); $idEvenementGroupeAdresse = $fetch['idEvenementGroupeAdresse']; //History processing $requeteHistory = "SELECT idHistoriqueEvenement from historiqueEvenement where idEvenement = " . $idEvenement; $resultHistory = $this->connexionBdd->requete($requeteHistory); if (mysql_num_rows($resultHistory) > 1) { $txtEnvoi = "modifié"; } else { $txtEnvoi = "envoyé"; } $lienHistoriqueEvenementCourant = $this->creerUrl('', 'consultationHistoriqueEvenement', array('archiIdEvenement' => $idEvenement)); $labelHistoriqueEvenement = '(Consulter l\'historique)'; //Image processing $images = new archiImage(); $arrayImagesVuesSurByDate = array(); $imagesHTML = $images->afficherFromEvenement($idEvenement, array('withoutImagesVuesSurPrisesDepuis' => true, 'imagesVuesSurLinkedByDate' => $arrayImagesVuesSurByDate, 'idGroupeAdresseEvenementAffiche' => $idEvenementGroupeAdresse)); if ($params['type'] == 'historique') { $req = "\n\t\t\t\t\t\t\t\tSELECT e.dateDebut, ae1.idAdresse\n\t\t\t\t\t\t\t\tFROM _adresseEvenement ae1,_adresseEvenement ae2\n\t\t\t\t\t\t\t\tLEFT JOIN historiqueEvenement e on e.idEvenement= ae2.idEvenement\n\t\t\t\t\t\t\t\tWHERE ae1.idAdresse= ae2.idAdresse\n\t\t\t\t\t\t\t\tAND e.idHistoriqueEvenement =" . $idEvenement . "\n\t\t\t\t\t\t\t\t\t\tORDER BY e.idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t"; } else { $req = "\n\t\t\t\t\t\t\t\tSELECT e.dateDebut, ae1.idAdresse\n\t\t\t\t\t\t\t\tFROM _adresseEvenement ae1,_adresseEvenement ae2\n\t\t\t\t\t\t\t\tLEFT JOIN evenements e on e.idEvenement= ae2.idEvenement\n\t\t\t\t\t\t\t\tWHERE ae1.idAdresse= ae2.idAdresse\n\t\t\t\t\t\t\t\tAND ae1.idEvenement =" . $idEvenement . "\n\t\t\t\t\t\t\t\t\t\tORDER BY e.idEvenement DESC LIMIT 1\n\t\t\t\t\t\t\t\t\t"; } $res = $this->connexionBdd->requete($req); $date2 = mysql_fetch_object($res); $idAdresse = $fetch['idAdresse']; $linkedEventsHTML = archiPersonne::displayEvenementsLies($idPerson, $dateDebut, $date2->dateDebut); //Personne processing if ($params['type'] == 'historique') { $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 LEFT JOIN historiqueEvenement he on he.idEvenement = _eP.idEvenement WHERE he.idHistoriqueEvenement=' . $idEvenement . ' ORDER BY p.nom DESC'); } else { $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 = ""; $arrayPersonne = array(); while ($res = mysql_fetch_object($rep)) { $personne = array(); if (isset($res->metier) && $res->metier != '') { $metier = $res->metier . ' : '; } $arrayPersonne[] = array('evenement.pers', array('urlDetail' => $this->creerUrl('', 'personne', array('idPersonne' => $res->idPersonne)), 'urlEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $res->idPersonne)), 'nom' => ucfirst(stripslashes($res->nom)), 'prenom' => ucfirst(stripslashes($res->prenom)), 'metier' => ucfirst(stripslashes($metier)), 'idPerson' => $res->idPersonne, 'idEvent' => $idEvenement)); } /* * 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'); $arrayCourantArchi = array(); if (mysql_num_rows($rep) > 0) { $arrayCourantArchi[] = array('evenement.isCourantArchi', array()); while ($res = mysql_fetch_object($rep)) { $arrayCourantArchi[] = array('evenement.isCourantArchi.archi', array('url' => $this->creerUrl('', 'evenementListe', array('selection' => 'courant', 'id' => $res->idCourantArchitectural)), 'nom' => $res->nom)); } } //Commentaires $formulaireCommentaire = $this->getFormComment($idEvenement, $this->getCommentairesFields('evenement'), 'evenement'); $listeCommentaires = $this->getListCommentairesEvenements($idEvenement); //Adresses liees processing $adressesLieesHTML = $this->getAdressesLieesAEvenement(array('modeRetour' => 'affichageSurDetailEvenement', 'idEvenement' => $idEvenementGroupeAdresse)); if ($adressesLieesHTML != '') { $adressesLieesHTML = "<b>" . _("Liste des adresses liées :") . "</b> <br>" . $adressesLieesHTML; } //Date processing $dateTxt = $this->getDateAsString($fetch); if (!empty($fetch['description']) && $fetch['description'] != '') { //Description processing : BBCode parsing $bbCode = new bbCodeObject(); $description = $bbCode->convertToDisplay(array('text' => $fetch['description'], 'idEvenement' => $idEvenement)); $description = empty($description) ? "" : "<div itemprop='description' class='desc'>" . $description . "</div>"; } //User $idUtilisateur = $fetch['idUtilisateur']; $utilisateur = "<a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $idUtilisateur, 'archiIdEvenementGroupeAdresseOrigine' => $idEvenementGroupeAdresse)) . "'>" . $fetch['prenomUtilisateur'] . " " . $fetch['nomUtilisateur'] . "</a>"; //Event type $urlTypeEvenement = $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $fetch['idTypeEvenement'])); $nomTypeEvenement = $fetch['nomTypeEvenement']; $lienTypeEvenement = "<a href={$urlTypeEvenement}>{$nomTypeEvenement}</a>"; //Structure type $urlTypeStructure = $this->creerUrl('', 'listeStructure', array('idTypeStructure' => $fetch['idTypeStructure'])); $nomTypeStructure = $fetch['nomTypeStructure']; $typeStructure = "<a href=\"{$urlTypeStructure}\">{$nomTypeStructure}</a> "; //Source $source = ""; if (isset($fetch['nomSource']) && $fetch['nomSource'] != '') { $source = "Source : <a href='" . $this->creerUrl('', 'listeAdressesFromSource', array('source' => $fetch['idSource'], 'submit' => 'Rechercher')) . "' onmouseover=\"document.getElementById('calqueDescriptionSource').style.top=(getScrollHeight()+150)+'px';\n\t\t\t\t\t\t\tdocument.getElementById('calqueDescriptionSource').style.display='block';\n\t\t\t\t\t\t\tdocument.getElementById('iframe').src='" . $this->creerUrl('', 'descriptionSource', array('archiIdSource' => $fetch['idSource'], 'noHeaderNoFooter' => 1)) . "';\"\n\t\t\t\t\t\t\t\t\t>" . stripslashes($fetch['nomSource']) . "\n\t\t\t\t\t</a><br>"; } //Info used for menu display $cityId = $fetch['idVille']; $isModerateur = true; $isAdmin = true; $u = new archiUtilisateur(); $userId = $authentification->getIdUtilisateur(); $urlProfilPic = $u->getImageAvatar(array('idUtilisateur' => $idUtilisateur)); $isModerateur = $u->isModerateurFromVille($userId, $cityId, 'idVille'); $isAdmin = $u->getIdProfil($userId) == '4'; $urlMenuAction = array('ajouterImage' => $this->creerUrl('', 'ajoutImageEvenement', array('archiIdEvenement' => $idEvenement)), 'modifierImage' => $this->creerUrl('', 'modifierImageEvenement', array('archiIdEvenement' => $idEvenement)), 'modifierEvenement' => $this->creerUrl('', 'modifierEvenement', array('archiIdEvenement' => $idEvenement, 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGroupeAdresse'], 'archiIdAdresse' => $fetch['idAdresse'])), 'supprimerEvenement' => $this->creerUrl('supprimerEvenement', '', array('archiIdEvenement' => $idEvenement)), '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();}", '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();}", 'lierAdresse' => $this->creerUrl('', 'afficheFormulaireEvenementAdresseLiee', array('idEvenement' => $idEvenement)), 'versAdresse' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $idEvenement)), 'plusCreer' => $this->creerUrl('deplacerEvenementVersNouveauGA', 'evenement', array('idEvenement' => $idEvenement))); $numeroArchive = ""; if ($fetch['numeroArchive'] != '') { // modif fabien du 15/04/2011 suite mail directrice Archives de Strasbourg Mme Perry Laurence $numeroArchive = "Cote Archives de Strasbourg : " . $fetch['numeroArchive'] . ""; } // si on est en mode de deplacement d'image // ou de selection de titre // on rajoute le formulaire sur la page if ($authentification->estConnecte() && (isset($this->variablesGet['afficheSelectionImage']) && $this->variablesGet['afficheSelectionImage'] == '1' || isset($this->variablesGet['afficheSelectionTitre']) && $this->variablesGet['afficheSelectionTitre'] == '1')) { $arrayFormEvenement = array('formEvenement', array()); } /* * Template filling */ //Unset some stuff for historic if ($params['type'] == 'historique') { unset($listeCommentaires); unset($formulaireCommentaire); unset($lienHistoriqueEvenementCourant); unset($labelHistoriqueEvenement); } $evenementData = array('titre' => stripslashes($fetch['titre']), 'infoTitre' => $utilisateur . " a " . $txtEnvoi . " un événement", 'txtEnvoi' => $txtEnvoi . " le", 'utilisateur' => $fetch['prenomUtilisateur'] . ' ' . $fetch['nomUtilisateur'], 'urlProfilPic' => $urlProfilPic, 'dateEnvoi' => $fetch['dateCreationEvenement'], 'lienHistoriqueEvenementCourant' => $lienHistoriqueEvenementCourant, 'labelLienHistorique' => $labelHistoriqueEvenement, 'dates' => $dateTxt, 'source' => $source, 'labelStructure' => "Structure : ", 'typeStructure' => $typeStructure, 'labelTypeEvenement' => 'Type d\'Événement : ', 'urlTypeEvenement' => $this->creerUrl('', 'evenementListe', array('selection' => 'typeEvenement', 'id' => $fetch['idTypeEvenement'])), 'lienTypeEvenement' => $lienTypeEvenement, 'typeEvenement' => $fetch['nomTypeEvenement'], 'numeroArchive' => $numeroArchive, 'description' => $description, 'imagesLiees' => $imagesHTML, 'evenementsParents' => '', 'listeAdressesLiees' => $adressesLieesHTML, 'evenementsLiesPersonne' => $linkedEventsHTML, 'idEvenement' => $idEvenement, 'listeCommentaireEvenement' => $listeCommentaires, 'formulaireCommentaireEvenement' => $formulaireCommentaire); //}//End while($fetch = mysql_fetch_assoc($result)) $evenements[] = $evenementData; /* * Useless now, but might be need futher if * this function is reused and should not display menu action */ $afficherMenu = $authentification->estConnecte(); $allowSuppressImage = false; //Set to false now, image suppression isn't implemented if ($params['type'] == 'historique') { $afficherMenu = false; } $menuArray = array(); if ($afficherMenu) { $menuArray[] = array('evenement.menuAction', array()); $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Ajouter', 'urlAction' => $urlMenuAction['ajouterImage'], 'actionTarget' => 'Image')); $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Modifier', 'urlAction' => $urlMenuAction['modifierImage'], 'actionTarget' => 'Image')); $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => $urlMenuAction['modifierEvenement'], 'actionTarget' => 'Événement')); } if ($isModerateur || $isAdmin) { $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Supprimer', 'urlAction' => '#', 'actionTarget' => 'Événement')); $menuArray[] = array('evenement.menuAction.rowName.confirmMessage', array('message' => 'Voulez vous vraiment supprimer cet événement ?', 'url' => $urlMenuAction['supprimerEvenement'])); if ($isAdmin && $allowSuppressImage) { $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => '#', 'actionTarget' => 'Image')); $menuArray[] = array('evenement.menuAction.rowName.secondAction.confirmMessage', array('message' => 'Voulez vous vraiment supprimer cette image ?', 'url' => $urlMenuAction['onClickSupprimerImage'])); } if ($isAdmin) { $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Lier', 'urlAction' => $urlMenuAction['lierAdresse'], 'actionTarget' => 'Adresses')); $menuArray[] = array('evenement.menuAction.rowName', array('actionName' => 'Déplacer', 'urlAction' => $urlMenuAction['versAdresse'], 'actionTarget' => 'Vers adresse')); $menuArray[] = array('evenement.menuAction.rowName.secondAction', array('urlAction' => $urlMenuAction['plusCreer'], 'actionTarget' => '+Créer')); } } return array('evenementData' => $evenementData, 'menuArray' => $menuArray, 'arrayPersonne' => $arrayPersonne, 'arrayFormEvent' => $arrayFormEvenement, 'arrayCourantArchi' => $arrayCourantArchi); }