$motsCle = ", " . implode(", ", $tabMotsCleNettoye);
    }
    // description
    if ($titreFirstEvenement == '') {
        $description = $titre;
    } else {
        $aRemplacer = array("\n\r", "\r\n", "\n", "\r", "\"");
        $remplacerPar = array("", "", "", "", "'");
        // s'il y a un titre au premier evenement, on affiche le titre et les 100 premiers mot de la description
        $description = $titreFirstEvenement . " " . $string->coupureTexte(strip_tags($string->sansBalises(str_replace($aRemplacer, $remplacerPar, stripslashes($descriptionFirstEvenement)))), 100);
    }
}
// referencement - description - titre de la page dans le cas de l'affichage de la page detail d'une image
if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'imageDetail' && isset($_GET['archiIdImage']) && $_GET['archiIdImage'] != '' && $_GET['archiIdImage'] != '0') {
    $e = new archiEvenement();
    if (!archiPersonne::isPerson($e->getIdEvenementGroupeAdresseFromIdEvenement($_GET['archiRetourIdValue']))) {
        $resAdresses = $image->getIdAdressesFromIdImage($_GET['archiIdImage']);
        if ($fetchAdresses = mysql_fetch_assoc($resAdresses)) {
            $resGroupeAdresses = $adresse->getIdEvenementsFromAdresse($fetchAdresses['idAdresse']);
            $fetchGroupeAdresses = mysql_fetch_assoc($resGroupeAdresses);
            $titreFirstEvenement = $evenement->getTitreFromFirstChildEvenement($fetchGroupeAdresses['idEvenement']);
            $titre = "Photo : " . $titreFirstEvenement;
            $resAdresse = $adresse->getAdressesFromEvenementGroupeAdresses($fetchGroupeAdresses['idEvenement']);
            $fetchAdresse = mysql_fetch_assoc($resAdresse);
            $idAdresse = $fetchAdresse['idAdresse'];
            $intituleAdresse = $adresse->getIntituleAdresseFrom($idAdresse, "idAdresse", array('afficheSousQuartier' => false, 'noQuartierCentreVille' => true));
            $titre = str_replace("\"", "'", $titre . " - " . $intituleAdresse);
        } else {
            $titre = "Photo - " . $titre;
        }
    }
 public function deleteCommentaireEvenement()
 {
     //Get id for redirection
     if (!isset($this->variablesGet['archiIdEvenementGroupeAdresse']) || $this->variablesGet['archiIdEvenementGroupeAdresse'] == '') {
         $requeteIdEvt = "SELECT c.idEvenement , ee.idEvenement as idEvenementGroupeAdresse\n\t\t\t\t\tFROM commentairesEvenement c\n\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = c.idEvenement\n\t\t\t\t\tWHERE c.idCommentairesEvenement = '" . $this->variablesGet['archiIdCommentaire'] . "'";
         $resIdEvt = $this->connexionBdd->requete($requeteIdEvt);
         $arrayIdEvt = mysql_fetch_assoc($resIdEvt);
         $idEvenementGroupeAdresse = $arrayIdEvt['idEvenementGroupeAdresse'];
     }
     if (!(isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '')) {
         if (isset($idEvenementGroupeAdresse) && $idEvenementGroupeAdresse != '') {
             $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($idEvenementGroupeAdresse);
         }
     }
     if (isset($this->variablesGet['archiIdCommentaire']) && $this->variablesGet['archiIdCommentaire'] != '') {
         $req = "DELETE FROM commentairesEvenement WHERE idCommentairesEvenement = '" . $this->variablesGet['archiIdCommentaire'] . "'";
         $res = $this->connexionBdd->requete($req);
     }
     if (isset($this->variablesGet['archiIdAdresse']) && $this->variablesGet['archiIdAdresse'] != '') {
         $idAdresse = $this->variablesGet['archiIdAdresse'];
         if (isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
             $idEvenementGroupeAdresse = $this->variablesGet['archiIdEvenementGroupeAdresse'];
         } else {
             $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdAdresse($idAdresse);
         }
         header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse), false, false));
     }
     if (isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
         if ($idPersonne = archiPersonne::isPerson($this->variablesGet['archiIdEvenementGroupeAdresse'])) {
             header("Location: " . $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $idPersonne)));
         }
     }
 }
 public function getLatestComments($nbComment)
 {
     $sousRequete1 = "SELECT\n\t\t\t\tdate_format(c.date," . _('"%e/%m/%Y"') . ") as date,\n\t\t\t\t\t\tc.idUtilisateur,\n\t\t\t\t\t\tc.idEvenement,\n\t\t\t\t\t\tc.commentaire,\n\t\t\t\t\t\tc.nom,\n\t\t\t\t\t\tc.prenom,\n\t\t\t\t\t\tha.numero,\n\t\t\t\t\t\tr.prefixe,\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\t'commentairesEvenement' as typeCommentaire,\n\t\t\t\t\t\t date_format( c.date, '%Y%m%d%H%i%s' ) AS dateTri,\n\t\t\t\t\t\tc.idCommentairesEvenement as idCommentaire\n\t\t\t\t\t\t \n\t\t\t\t\t\tFROM commentairesEvenement c\n\t\t\t\t\t\tLEFT JOIN utilisateur u on u.idUtilisateur = c.idUtilisateur\n\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie= c.idEvenement\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha on ha.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN rue r on r.idRue = ha.idRue\n\t\t\t\t\t\tWHERE c.CommentaireValide =1\n\t\t\t\t\t\tGROUP BY c.idCommentairesEvenement\n\t\t\t\t\t\t";
     $sousRequete2 = "SELECT\n\t\t\t\t\t\tdate_format(c.date," . _('"%e/%m/%Y"') . ") as date,\n\t\t\t\t\t\tc.idUtilisateur,\n\t\t\t\t\t\tc.idEvenementGroupeAdresse,\n\t\t\t\t\t\tc.commentaire,\n\t\t\t\t\t\tc.nom,\n\t\t\t\t\t\tc.prenom,\n\t\t\t\t\t\tha.numero,\n\t\t\t\t\t\tr.prefixe,\n\t\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\t\t'commentaires' as typeCommentaire,\n\t\t\t\t\t\tdate_format( c.date, '%Y%m%d%H%i%s' ) AS dateTri,\n\t\t\t\t\t\tc.idCommentaire as idCommentaire\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t \n\t\t\t\t\t\tFROM commentaires c\n\t\t\t\t\t\tLEFT JOIN utilisateur u on u.idUtilisateur = c.idUtilisateur\n\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie= c.idEvenementGroupeAdresse\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha on ha.idAdresse = ae.idAdresse\n\t\t\t\t\t\tLEFT JOIN rue r on r.idRue = ha.idRue\n\t\t\t\t\t\tWHERE c.CommentaireValide =1\n\t\t\t\t\t\tGROUP BY c.idCommentaire\n\t\t";
     $requete = "\n\t\t\t\tSELECT * FROM\n\t\t\t\t(\n\t\t\t\t{$sousRequete1}\n\t\t\t\t\t) as tmp1\n\n\t\t\t\t\tUNION all\n\n\t\t\t\t\tSELECT * FROM (\n\t\t\t\t\t{$sousRequete2}\n\t\t\t\t\t)\n\t\t\t\t\tAS tmp2\n\t\t\t\t\tORDER BY dateTri desc\n\t\t\t\t\tLIMIT {$nbComment}\n\t\t\t\t\t";
     $result = $this->connexionBdd->requete($requete);
     $arrayComment = array();
     $e = new archiEvenement();
     while ($latestComment = mysql_fetch_assoc($result)) {
         $idEvenement = "";
         $idEvenementGroup = "";
         $idAdresse = "";
         $ancre = "#commentaire";
         if ($latestComment['typeCommentaire'] == 'commentairesEvenement') {
             $idEvenement = $latestComment['idEvenement'];
             $idEvenementGroup = $e->getIdGroupeEvenement($latestComment['idEvenement']);
             if ($idPersonne = archiPersonne::isPerson($idEvenementGroup)) {
                 $nom = ArchiPersonne::getName($idPersonne);
                 $adresse = $nom->nom . " " . $nom->prenom;
                 $url = $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPersonne));
             } else {
                 $idAdresse = $e->getIdAdresse($latestComment['idEvenement']);
             }
             $ancre .= "Evenement" . $latestComment['idCommentaire'];
         } else {
             $idEvenementGroup = $latestComment['idEvenement'];
             $reqIdEvt = "\n\t\t\t\tSELECT idEvenementAssocie as idEvenement\n\t\t\t\tFROM _evenementEvenement\n\t\t\t\tWHERE idEvenement = {$idEvenementGroup}\n\t\t\t\t";
             $resIdEvt = $this->connexionBdd->requete($reqIdEvt);
             $tmp = mysql_fetch_array($resIdEvt);
             $idEvenement = $tmp['idEvenement'];
             $idAdresse = $e->getIdAdresse($idEvenement);
             $ancre .= "Adresse" . $latestComment['idCommentaire'];
         }
         if (!archiPersonne::isPerson($idEvenementGroup)) {
             $adresseArray = $e->getArrayAdresse($idEvenement);
             //Adresse
             $adresse = '';
             $adresse = $e->getAddressText($adresseArray);
             $url = $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', "archiIdAdresse" => $idAdresse, "archiIdEvenementGroupeAdresse" => $idEvenementGroup));
         }
         $so = new StringObject();
         $test = $so->replaceUrl($latestComment['commentaire']);
         $bbCode = new bbCodeObject();
         $commentaireText = $bbCode->stripBBCode($latestComment['commentaire']);
         $latestComment['commentaire'] = $so->truncateStringToWord($commentaireText, 80, ' ', '...');
         $urlPersonne = $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $latestComment['idUtilisateur'], 'archiIdEvenementGroupeAdresseOrigine' => $idEvenementGroup));
         $latestComment['typeCommentaire'] = 'commentaireEvenement';
         $latestComment['urlAdresse'] = $url . $ancre;
         $latestComment['urlPersonne'] = $urlPersonne;
         $latestComment['adresse'] = $adresse;
         $arrayComment[] = $latestComment;
     }
     return $arrayComment;
 }
 /**
  * Return the dates as a string to display for evenement display
  *
  * @param unknown $fetch : fetch of the request containing the date
  * @return string date
  */
 private function getDateAsString($res)
 {
     $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']);
             }
         }
     }
     return $dateTxt;
 }
 /**
  * Fonction supprimant physiquement et dans la bdd une image donnée
  *
  * @param int   $idImage ID de l'image
  * @param array $params  Paramètres
  *
  * @return void
  * */
 public function deleteImage($idImage = 0, $params = array())
 {
     $a = new archiAdresse();
     $erreurObj = new objetErreur();
     // recuperation du groupe d'adresse de l'image pour l'affichage au retour
     if ($idPerson = archiPersonne::isPerson($this->getIdEvenementGroupeAdresseFromImage(array("idImage" => $idImage, "type" => "personne")))) {
         $type = "personne";
     } else {
         $type = null;
     }
     $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImage, "type" => $type));
     $u = new archiUtilisateur();
     $authentification = new archiAuthentification();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $d = new droitsObject();
     if ($d->isAuthorized('image_supprimer', $idProfilUtilisateur) && ($u->isModerateurFromVille($authentification->getIdUtilisateur(), $idImage, 'idImage') || $idProfilUtilisateur == '4')) {
         $reqInfosImage = "\n                            SELECT idHistoriqueImage ,  idImage ,  dateUpload\n                            FROM historiqueImage\n                            WHERE idImage = '" . $idImage . "'\n            ";
         $resInfosImage = $this->connexionBdd->requete($reqInfosImage);
         while ($fetchInfosImage = mysql_fetch_assoc($resInfosImage)) {
             if (unlink($this->getCheminPhysiqueImage("originaux") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." originale... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " originale.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("mini") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." mini... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " mini.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("moyen") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." moyen... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " moyen.<br>");
             }
             if (unlink($this->getCheminPhysiqueImage("grand") . $fetchInfosImage['dateUpload'] . "/" . $fetchInfosImage['idHistoriqueImage'] . ".jpg")) {
                 //echo "suppression image ".$fetchInfosImage['idHistoriqueImage']." grand... OK<br>";
             } else {
                 $erreurObj->ajouter("probleme suppression image " . $fetchInfosImage['idHistoriqueImage'] . " grand.<br>");
             }
             $reqDeleteHistorique = "DELETE FROM historiqueImage WHERE idHistoriqueImage = '" . $fetchInfosImage['idHistoriqueImage'] . "'";
             $resDeleteHistorique = $this->connexionBdd->requete($reqDeleteHistorique);
             // suppression de l'image dans la table des fichiers uploades
             $reqDeleteUpload = "DELETE FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetchInfosImage['idHistoriqueImage'] . "'";
             $resDeleteUpload = $this->connexionBdd->requete($reqDeleteUpload);
             //echo "image ".$fetchInfosImage['idHistoriqueImage']." supprimée. <br>";
         }
         $reqDeleteImageAdresseImage = "DELETE FROM _adresseImage WHERE idImage = '" . $idImage . "'";
         $resDeteleImageAdresseImage = $this->connexionBdd->requete($reqDeleteImageAdresseImage);
         $reqDeleteImageEvenementImage = "DELETE FROM _evenementImage WHERE idImage ='" . $idImage . "'";
         $resDeleteImageEvenementImage = $this->connexionBdd->requete($reqDeleteImageEvenementImage);
     }
     if ($idPerson) {
         header("Location: " . $this->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $idPerson), false, false));
     }
     if ($erreurObj->getNbErreurs() > 0) {
         echo $erreurObj->afficher();
     } else {
         echo "image supprimée.<br>";
     }
     if (isset($params['retourSurGroupeAdresse']) && $params['retourSurGroupeAdresse'] == true) {
         echo $a->afficherDetail(0, $idEvenementGroupeAdresse);
     }
 }
 /**
  * Affiche la liste des personnes liées à une source
  *
  * @param int $idSource ID de la source
  *
  * @return void
  * */
 public static function getPersonsFromSource($idSource)
 {
     global $config;
     $req = "SELECT idEvenement\n            FROM `historiqueEvenement`\n            WHERE `idSource` =" . $idSource;
     $res = $config->connexionBdd->requete($req);
     $e = new archiEvenement();
     while ($event = mysql_fetch_object($res)) {
         $idEvenementGroupeAdresse = $e->getIdEvenementGroupeAdresseFromIdEvenement($event->idEvenement);
         if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
             $person = new archiPersonne($idPerson);
             $people[] = $person->getInfosPersonne($idPerson);
         }
     }
     if (isset($people)) {
         $already = array();
         print "<b>Voici la liste des personnes auxquelles cette source est attachée</b>";
         print '<table class="results">';
         foreach ($people as $person) {
             if (!in_array($person['idPersonne'], $already)) {
                 $already[] = $person['idPersonne'];
                 print '<tr class="listAddressItem">
                 <td><a href="' . $config->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $person['idPersonne'])) . '"><img src="' . archiPersonne::getImage($person['idPersonne'], "mini", false) . '" border=0 alt=""></a> <span><br/><a href="' . $config->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $person['idPersonne'])) . '" >' . stripslashes($person['prenom'] . " " . $person['nom']) . '</a></span><br/><span style="font-size:11px;">' . $person['nomMetier'] . '</span></td>
                 </tr>';
             }
         }
         print '</table>';
     }
 }