/** * Ajouter un événement à la BDD * * @param string $type Type (adresse ou personne) * @param array $arrayNewAdresses Contenu lié * * @return void * */ function addEvent($type = "adresse", $arrayNewAdresses = array()) { // ****************************************************** // ensuite on ajoute l'evenement // ****************************************************** $evenement = new archiEvenement(); $idEvenementGroupeAdresses = 0; $idSousEvenement = 0; if ($type == "personne") { $linkTable = "_personneEvenement"; $field = "idPersonne"; } else { $linkTable = "_adresseEvenement"; $field = "idAdresse"; } $table = array('table' => $linkTable, 'field' => $field); //debug($arrayNewAdresses); //$arrayRetourEvenementNouveauDossier=$evenement->ajouterEvenementNouveauDossier(); foreach ($arrayNewAdresses as $newAddress) { if (isset($newAddress['newAdresse']) && !empty($newAddress['newAdresse']) || $newAddress['newAdresse'] == 1) { //debug("full ajout"); $arrayRetourEvenementNouveauDossier = $evenement->ajouterEvenementNouveauDossier(); } else { //debug("ajout simple id : ".$newAddress['idAdresse']); $arrayRetourEvenementNouveauDossier = $evenement->ajouterEvenementNouveauDossier($newAddress['idAdresse']); } } //debug($arrayRetourEvenementNouveauDossier); // s'il n'y a pas eu d'erreurs , on peut faire l'ajout des liaisons entre evenement et adresses if (count($arrayRetourEvenementNouveauDossier['errors']) == 0 && count($arrayNewAdresses) > 0) { $idEvenementGroupeAdresses = $arrayRetourEvenementNouveauDossier['idEvenementGroupeAdresse']; $idSousEvenement = $arrayRetourEvenementNouveauDossier['idSousEvenement']; // liaison entre les adresses et l'evenement groupe d'adresses $resSupp = $this->connexionBdd->requete("delete from {$linkTable} where idEvenement = '" . $idEvenementGroupeAdresses . "'"); // on rend la liste des identifiants unique $arrayNewIdAdresses = array(); foreach ($arrayNewAdresses as $indice => $value) { $arrayNewIdAdresses[] = $value['idAdresse']; } $arrayNewIdAdresses = array_unique($arrayNewIdAdresses); foreach ($arrayNewIdAdresses as $indice => $idAdresse) { $reqLiaisons = "INSERT INTO {$linkTable} ({$field}, idEvenement)\n VALUES ('" . $idAdresse . "', '" . $idEvenementGroupeAdresses . "')\n "; //debug($reqLiaisons); $resLiaisons = $this->connexionBdd->requete($reqLiaisons); } // on relie l'evenement pere (groupe d'adresse ) à l'evenement fils if (isset($newAddress['newAdresse']) && !empty($newAddress['newAdresse']) || $newAddress['newAdresse'] == 1) { $sqlAssociationNettoie = "delete from _evenementEvenement where idEvenement = '" . $arrayRetourEvenementNouveauDossier['idEvenementGroupeAdresse'] . "'"; //debug($sqlAssociationNettoie); $resAssociationNettoie = $this->connexionBdd->requete($sqlAssociationNettoie); } $sqlAssociation = "insert into _evenementEvenement (idEvenement,idEvenementAssocie) values ('" . $arrayRetourEvenementNouveauDossier['idEvenementGroupeAdresse'] . "','" . $arrayRetourEvenementNouveauDossier['idSousEvenement'] . "')"; //debug($sqlAssociation); $resAssociation = $this->connexionBdd->requete($sqlAssociation); if ($type == "personne") { } else { // ************************************************************************************************************************************************************* // envoi d'un mail aux administrateur pour la moderation $utilisateur = new archiUtilisateur(); $message = "L'utilisateur suivant a créé un nouveau dossier : "; $message .= $utilisateur->getMailUtilisateur($this->session->getFromSession('utilisateurConnecte' . $this->idSite)) . "<br>"; $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $arrayNewIdAdresses[0], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses)) . "'>lien vers l'article</a><br>"; $message .= "Adresses liées au nouveau dossier :<br>"; $i = 0; $adressePourSujetMail = ""; foreach ($arrayNewAdresses as $indice => $value) { if ($i == 0) { $adressePourSujetMail = $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse'); } if ($value['newAdresse'] == true) { // cette adresse a été créée avec le dossier $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses, 'archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . " (nouvelle adresse)</a><br>"; } else { /* cette adresse a été créée précédemment * et est utilisée sur ce dossier * */ $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses, 'archiIdAdresse' => $value['idAdresse'])) . "'>" . $this->getIntituleAdresseFrom($value['idAdresse'], 'idAdresse') . " (cette adresse existait déjà " . "avant la création du dossier)" . "</a><br>"; } } $mail = new mailObject(); $mail->sendMailToAdministrators($mail->getSiteMail(), "archi-strasbourg.org : " . "un utilisateur a créé un nouveau dossier - " . $adressePourSujetMail, $message, " and alerteMail='1' ", true); $u = new archiUtilisateur(); $u->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 3, 'criteres' => " and alerteMail='1' ")); /* envoi mail aussi au moderateur si ajout * sur adresse de ville que celui ci modere * */ $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($this->variablesPost['ville'], array("sqlWhere" => " AND alerteMail='1' ")); if (count($arrayListeModerateurs) > 0) { foreach ($arrayListeModerateurs as $indice => $idModerateur) { if ($this->session->getFromSession("utilisateurConnecte" . $this->idSite) != $idModerateur) { $mailModerateur = $u->getMailUtilisateur($idModerateur); if ($u->isMailEnvoiImmediat($idModerateur)) { $mail->sendMail($mail->getSiteMail(), $mailModerateur, "archi-strasbourg.org : " . "un utilisateur a créé un nouveau dossier - " . $adressePourSujetMail, $message, true); } else { // envoi regroupé $u->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $idModerateur, 'idTypeMailRegroupement' => 3)); } } } } } //echo $retourEvenement["html"]; if ($type == "personne") { header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idAdresse), false, false)); } else { header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresses, 'archiIdAdresse' => $value['idAdresse']), false, false)); } } }
public function modifier($id) { $aAuthentification = new archiAuthentification(); $u = new archiUtilisateur(); $html = "<script src='js/confirm.js'></script>"; $ajoutOk = false; $formulaire = new formGenerator(); $mail = new mailObject(); // ************************************************************************************************************************************* // recuperation de l'idHistoriqueEvenement Courant pour le renvoyer en tant que idHistoriquePrecedent a la fin de la modification ( visualisation de l'administrateur de l'ancien evenement) // ************************************************************************************************************************************* $reqIdHistoriqueEvenementAvantModif = "\n SELECT he1.idHistoriqueEvenement as idHistoriqueEvenementAvantModif\n FROM historiqueEvenement he2,historiqueEvenement he1\n\n WHERE he2.idEvenement = he1.idEvenement\n AND he1.idEvenement = '" . $id . "'\n GROUP BY he1.idEvenement,he1.idHistoriqueEvenement\n HAVING he1.idHistoriqueEvenement=max(he2.idHistoriqueEvenement)\n "; $resIdHistoriqueEvenementAvantModif = $this->connexionBdd->requete($reqIdHistoriqueEvenementAvantModif); $fetchIdHistoriqueEvenementAvantModif = mysql_fetch_assoc($resIdHistoriqueEvenementAvantModif); $idHistoriqueEvenementAvantModif = $fetchIdHistoriqueEvenementAvantModif['idHistoriqueEvenementAvantModif']; // ************************************************************************************************************************************* //$idHistoriqueEvenementAvantModif =$id; // ************************************************************************************************************************************* $idHistoriqueEvenementNouveau = 0; // cette variable va contenir le nouvel idHistoriqueEvenement une fois celui ci créé $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($aAuthentification->getIdUtilisateur()); if (!$formulaire->estChiffre($id)) { $this->erreurs->ajouter('Modification d\'un événement : l\'identifiant est incorrect !'); } if ($aAuthentification->estConnecte() != true) { $this->erreurs->ajouter('Modification d\'un événement : vous n\'etes pas connecté !'); } elseif (isset($this->variablesPost['evenementSimple'])) { // evenementSimple correspond au nom du bouton submit du formulaire, on enregistre les modifications // modification de l'evnement $afficheFormulaire = true; $tabForm = $this->getEvenementFields('nouveauDossier'); // memes champs qu'un ajout $erreur = $formulaire->getArrayFromPost($tabForm); if (count($erreur) == 0) { $this->connexionBdd->getLock(array('evenements')); $ajoutOk = true; $nouvelEnregistrement = false; $nouvelleLiaison = false; $tabAncien = $this->recupTableauTravail($id); //$tabForm['idEvenement']['value'] // **************************************************************************************** // ici on va chercher s'il existe des differences entre l'enregistrement de l'evenement précédent et les nouvelles données, // s'il n'y a pas de différences , on ne modifie rien // s'il y a des différences , on ajoute un nouvel historique a l'evenement existant // **************************************************************************************** $tabDesChampEntrainantNouveauEvenement = array('titre', 'description', 'dateDebut', 'dateFin', 'source', 'typeStructure', 'typeEvenement', 'nbEtages', 'ISMH', 'MH', 'isDateDebutEnviron', 'numeroArchive'); foreach ($tabDesChampEntrainantNouveauEvenement as $champ) { if ($tabForm[$champ]['value'] != $tabAncien[$champ]['value']) { $nouvelEnregistrement = true; } } // **************************************************************************************** // ici on cherche s'il y a des différences au niveau des tables qui sont liées // **************************************************************************************** $tabDesChampDeLiaison = array('courant', 'personnes'); //'adresses', 'evenements' foreach ($tabDesChampDeLiaison as $champ) { if (is_array($tabForm[$champ]['value'])) { $taille_intersection = count(array_intersect($tabForm[$champ]['value'], $tabAncien[$champ]['value'])); $taille_ancien = count($tabAncien[$champ]['value']); $taille_nouveau = count($tabForm[$champ]['value']); if ($taille_intersection != $taille_ancien or $taille_intersection != $taille_nouveau) { $isModifLiaison[$champ] = 1; $nouvelleLiaison = true; } } } if ($nouvelEnregistrement == true) { //******************************************** //** AJOUT d'un nouvel historique a l'evenement existant ** //******************************************** $titre = mysql_escape_string($tabForm['titre']['value']); $description = mysql_escape_string($tabForm['description']['value']); $dateDebut = $this->date->toBdd($this->date->convertYears($tabForm['dateDebut']['value'])); if ($idProfilUtilisateur == 3 || $idProfilUtilisateur == 2 || $idProfilUtilisateur == 1) { //$dateFin = $this->date->toBdd($tabAncien['dateFin']['value']); $idSource = $tabAncien['source']['value']; $nbEtages = $tabAncien['nbEtages']['value']; } else { //$dateFin = $this->date->toBdd($this->date->convertYears($tabForm['dateFin']['value'])); $idSource = $tabForm['source']['value']; $nbEtages = $tabForm['nbEtages']['value']; } $dateFin = $this->date->toBdd($this->date->convertYears($tabForm['dateFin']['value'])); $idUtilisateur = $aAuthentification->getIdUtilisateur(); $idTypeStructure = $tabForm['typeStructure']['value']; $idTypeEvenement = $tabForm['typeEvenement']['value']; $ISMH = $tabForm['ISMH']['value']; $MH = $tabForm['MH']['value']; $isDateDebutEnviron = $tabForm['isDateDebutEnviron']['value']; $numeroArchive = $tabForm['numeroArchive']['value']; debug($idHistoriqueEvenementNouveau); // debug if ($nbEtages == '') { $nbEtages = 0; } $idEvenement = $id; //$tabForm['idEvenement']['value']; $sqlHistoriqueEvenement = "INSERT INTO evenements ( titre, description, dateDebut, dateFin, idSource, idUtilisateur, idTypeStructure, idTypeEvenement, dateCreationEvenement,nbEtages, ISMH , MH, isDateDebutEnviron,numeroArchive)\n\t\t\t\t\t\t\tVALUES (\"" . $titre . "\", \"" . $description . "\", '" . $dateDebut . "', '" . $dateFin . "', " . $idSource . ", " . $idUtilisateur . ", '" . $idTypeStructure . "', '" . $idTypeEvenement . "', NOW(),'" . $nbEtages . "','" . $ISMH . "','" . $MH . "','" . $isDateDebutEnviron . "',\"" . $numeroArchive . "\")"; $sqlHistoriqueEvenement = "\n\t\t\t\t\t\t\tUPDATE evenements\n\t\t\t\t\t\t\tSET titre= '" . $titre . "',\n\t\t\t\t\t\t\tdescription = '" . $description . "',\n\t\t\t\t\t\t\tdateDebut = '" . $dateDebut . "',\n\t\t\t\t\t\t\tdateFin = '" . $dateFin . "',\n\t\t\t\t\t\t\tidSource = '" . $idSource . "',\n\t\t\t\t\t\t\tidUtilisateur = '" . $idUtilisateur . "',\n\t\t\t\t\t\t\tidTypeStructure = '" . $idTypeStructure . "',\n\t\t\t\t\t\t\tidTypeEvenement = '" . $idTypeEvenement . "',\n\t\t\t\t\t\t\tdateCreationEvenement = NOW(),\n\t\t\t\t\t\t\tnbEtages = '" . $nbEtages . "',\n\t\t\t\t\t\t\tISMH ='" . $ISMH . "',\n\t\t\t\t\t\t\tMH = '" . $MH . "',\n\t\t\t\t\t\t\tisDateDebutEnviron='" . $isDateDebutEnviron . "',\n\t\t\t\t\t\t\tnumeroArchive='" . $numeroArchive . "'\n\t\t\t\t\t\t\tWHERE idEvenement = " . $idEvenement . "\n\n\n\t\t\t\t\t\t\t"; $this->connexionBdd->requete($sqlHistoriqueEvenement); $requeteNouvelIdHistoriqueEvenement = "\n\t\t\t\t\t\t\tSELECT idHistoriqueEvenement\n\t\t\t\t\t\t\tFROM historiqueEvenement\n\t\t\t\t\t\t\tWHERE idEvenement = " . $idEvenement . "\n\t\t\t\t\t\t\tORDER BY idHistoriqueEvenement DESC\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t"; $resNouvelIdHistoEvt = $this->connexionBdd->requete($requeteNouvelIdHistoriqueEvenement); $fetchIdHistoEvt = mysql_fetch_assoc($resNouvelIdHistoEvt); $idHistoriqueEvenementNouveau = $fetchIdHistoEvt['idHistoriqueEvenement']; debug(array($sqlHistoriqueEvenement, $sqlHistoriqueEvenement, $requeteNouvelIdHistoriqueEvenement)); // recuperation de l'idEvenementGroupeAdresse $idEvGA = $this->getIdEvenementGroupeAdresseFromIdEvenement($idEvenement); // mise a jour des positions (la fonction verifiera d'abord si la date a ete changé avant de mettre a jour , sinon c'est pas la peine $this->majPositionsEvenements(array("idEvenementGroupeAdresse" => $idEvGA, "idEvenementModifie" => $idEvenement)); } /*if ($nouvelleLiaison == true) {*/ $idEvenement = $id; //$tabForm['idEvenement']['value']; // ******************************************************************************************************** // GESTION DES COURANTS ARCHITECTURAUX if (is_array($tabForm['courant']['value']) && count($tabForm['courant']['value']) > 0) { $sqlNettoyeCourantArchitectural = 'DELETE FROM _evenementCourantArchitectural WHERE idEvenement=' . $idEvenement; $sqlEvenementCourantArchitectural = 'INSERT INTO _evenementCourantArchitectural (idCourantArchitectural, idEvenement) VALUES '; foreach (array_unique($tabForm['courant']['value']) as $idCourant) { $sqlEvenementCourantArchitectural .= '(' . $idCourant . ', ' . $idEvenement . '),'; } $sqlEvenementCourantArchitectural = pia_substr($sqlEvenementCourantArchitectural, 0, -1); $this->connexionBdd->requete($sqlNettoyeCourantArchitectural); $this->connexionBdd->requete($sqlEvenementCourantArchitectural); } elseif (isset($tabForm['courant']['value']) && !is_array($tabForm['courant']['value'])) { $sqlNettoyeCourantArchitectural = 'DELETE FROM _evenementCourantArchitectural WHERE idEvenement=' . $idEvenement; $this->connexionBdd->requete($sqlNettoyeCourantArchitectural); } // ******************************************************************************************************** // ******************************************************************************************************** // GESTION DES PERSONNES if ($idProfilUtilisateur == 2 || $idProfilUtilisateur == 1) { // la modif des personnes est authorisee seulement pour les moderateurs et les admins } else { if (is_array($tabForm['personnes']['value']) && count($tabForm['personnes']['value']) > 0) { $sqlNettoyePersonne = 'DELETE FROM _evenementPersonne WHERE idEvenement=' . $idEvenement; $this->connexionBdd->requete($sqlNettoyePersonne); if (isset($tabForm['personnes']['value']) && count($tabForm['personnes']['value']) > 0) { $sqlEvenementPersonne = 'INSERT INTO _evenementPersonne (idPersonne, idEvenement) VALUES '; foreach (array_unique($tabForm['personnes']['value']) as $idPersonne) { $sqlEvenementPersonne .= '(' . $idPersonne . ', ' . $idEvenement . '),'; } $sqlEvenementPersonne = pia_substr($sqlEvenementPersonne, 0, -1); $this->connexionBdd->requete($sqlEvenementPersonne); } } else { // de toute facon on nettoie les valeurs si le champ est vide $sqlNettoyePersonne = 'DELETE FROM _evenementPersonne WHERE idEvenement=' . $idEvenement; $this->connexionBdd->requete($sqlNettoyePersonne); } } // ******************************************************************************************************** /* if (isset($isModifLiaison['adresses'])) { $sqlNettoyeAdresse = 'DELETE FROM _adresseEvenement WHERE idEvenement='.$idEvenement; $this->connexionBdd->requete($sqlNettoyeAdresse); if (!empty($tabForm['adresses']['value'])) { $sqlAdresseEvenement = 'INSERT INTO _adresseEvenement (idAdresse, idEvenement) VALUES '; foreach ( array_unique($tabForm['adresses']['value']) AS $idAdresse) { $sqlAdresseEvenement .= '('.$idAdresse.', '.$idEvenement.'),'; } $sqlAdresseEvenement = pia_substr( $sqlAdresseEvenement, 0, -1); $this->connexionBdd->requete($sqlAdresseEvenement); } } if (isset($isModifLiaison['evenements'])) { $sqlNettoyeEvenement = 'DELETE FROM _evenementEvenement WHERE idEvenement='.$idEvenement; $this->connexionBdd->requete($sqlNettoyeEvenement); if (!empty($tabForm['evenements']['value'])) { $sqlEvenementEvenement = 'INSERT INTO _evenementEvenement (idEvenementAssocie, idEvenement) VALUES '; foreach ( array_unique($tabForm['evenements']['value']) AS $idEvenementParent) { $sqlEvenementEvenement .= '('.$idEvenement.', '.$idEvenementParent.'),'; } $sqlEvenementEvenement = pia_substr( $sqlEvenementEvenement, 0, -1); $this->connexionBdd->requete($sqlEvenementEvenement); } }*/ //} $this->connexionBdd->freeLock(array('historiqueEvenement')); } } elseif (isset($this->variablesPost['evenementGroupeAdresse']) && $this->variablesPost['evenementGroupeAdresse'] != '') { // on est connecté $this->connexionBdd->getLock(array('_adresseEvenement')); // cas d'un groupe d'adresse ( le formulaire d'ou l'on provient ne comporte que des listes d'adresses // on enregistre les adresses liees $idEvenementGroupeAdresse = $this->variablesPost['evenementGroupeAdresse']; // ajout des nouvelles adresses liées if (isset($this->variablesPost['adresses'])) { // on supprime d'abord les anciennes adresses liées $resSupprimer = $this->connexionBdd->requete("delete from _adresseEvenement where idEvenement = '" . $idEvenementGroupeAdresse . "'"); // et on lie les nouvelles adresses foreach ($this->variablesPost['adresses'] as $indice => $idAdresse) { $resInsert = $this->connexionBdd->requete("insert into _adresseEvenement (idEvenement,idAdresse) values ('" . $idEvenementGroupeAdresse . "','" . $idAdresse . "') "); } } $ajoutOk = true; $this->connexionBdd->freeLock(array('_adresseEvenement')); } if ($ajoutOk === true) { // ************************************************************************************************************************************************ // envoi d'un mail a l'auteur de l'adresse // ************************************************************************************************************************************************ $utilisateur = new archiUtilisateur(); $arrayUtilisateurs = $utilisateur->getCreatorsFromAdresseFrom($idHistoriqueEvenementNouveau, 'idHistoriqueEvenement'); $adresse = new archiAdresse(); $intituleAdresse = $adresse->getIntituleAdresseFrom($id, 'idEvenement'); $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdEvenement($id); if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson), false, false)); } $reqAdresses = $adresse->getIdAdressesFromIdEvenement(array('idEvenement' => $id)); $resAdresses = $this->connexionBdd->requete($reqAdresses); $fetchAdresses = mysql_fetch_assoc($resAdresses); foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) { if ($idUtilisateurAdresse != $aAuthentification->getIdUtilisateur()) { $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse); if ($infosUtilisateur['alerteAdresses'] == '1' && $infosUtilisateur['idProfil'] != '4' && $infosUtilisateur['compteActif'] == '1') { $messageDebut = "Un utilisateur a modifié une adresse dont vous êtes l'auteur."; $messageDebut .= "Pour vous rendre sur l'événement : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchAdresses['idAdresse'], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)) . "'>" . $intituleAdresse . "</a><br>"; $messageFin = $this->getMessageDesabonnerAlerteMail(); if ($utilisateur->isMailEnvoiImmediat($idUtilisateurAdresse)) { $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Mise a jour d\'un événement d\'une adresse dont vous êtes l\'auteur. - ' . $intituleAdresse, $messageDebut . $messageFin, true); } else { $utilisateur->ajouteMailEnvoiRegroupes(array('contenu' => $messageDebut, 'idDestinataire' => $idUtilisateurAdresse, 'idTypeMailRegroupement' => 11)); } } } } // ************************************************************************************************************************************************ // $message = "Un événement a été édité.<br> Il concerne l'adresse : {$intituleAdresse}<br> <a href='" . $this->creerUrl('', 'comparaisonEvenement', array('idHistoriqueEvenementNouveau' => $idHistoriqueEvenementNouveau, 'idHistoriqueEvenementAncien' => $idHistoriqueEvenementAvantModif)) . "'>Comparer les deux versions</a></br>"; // recuperation des infos sur l'utilisateur qui fais la modif $utilisateur = new archiUtilisateur(); $arrayInfosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($this->session->getFromSession('utilisateurConnecte' . $this->idSite)); $message .= "<br>" . $arrayInfosUtilisateur['nom'] . " - " . $arrayInfosUtilisateur['prenom'] . " - " . $arrayInfosUtilisateur['mail'] . "<br>"; $mail->sendMailToAdministrators($mail->getSiteMail(), "Edition d'un événement - " . $intituleAdresse, $message, " AND alerteAdresses='1' ", true); $utilisateur->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 11, 'criteres' => " and alerteAdresses='1' ")); // affichage du detail de l'adresse $reqAdresse = $adresse->getIdAdressesFromIdEvenement(array('idEvenement' => $id)); $resAdresse = $this->connexionBdd->requete($reqAdresse); $fetchAdresse = mysql_fetch_assoc($resAdresse); if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson), false, false)); } else { header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchAdresse['idAdresse'], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse), false, false)); } // ************************************************************************************************************************************************************* // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere $u = new archiUtilisateur(); if ($idHistoriqueEvenementNouveau != 0) { $reqAdresses = $adresse->getIdAdressesFromIdEvenement(array('idEvenement' => $id)); $resAdresses = $this->connexionBdd->requete($reqAdresses); $arrayVilles = array(); while ($fetchAdresses = mysql_fetch_assoc($resAdresses)) { $arrayVilles[] = $adresse->getIdVilleFrom($fetchAdresses['idAdresse'], 'idAdresse'); } $arrayVilles = array_unique($arrayVilles); $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteAdresses='1' ")); if (count($arrayListeModerateurs) > 0) { foreach ($arrayListeModerateurs as $indice => $idModerateur) { if ($idModerateur != $this->session->getFromSession('utilisateurConnecte' . $this->idSite)) { if ($u->isMailEnvoiImmediat($idModerateur)) { $mailModerateur = $u->getMailUtilisateur($idModerateur); $mail->sendMail($mail->getSiteMail(), $mailModerateur, "Edition d'un événement - " . $intituleAdresse, $message, true); } else { $u->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $idModerateur, 'idTypeMailRegroupement' => 11)); } } } } } // ************************************************************************************************************************************************************* // on libere l'element $this->connexionBdd->freeLock(array('evenement' . $id), array('idUtilisateur' => $aAuthentification->getIdUtilisateur())); } else { // est ce que l'element est deja en cours d'edition if ($this->connexionBdd->isLocked('evenement' . $id, $aAuthentification->getIdUtilisateur())) { $this->erreurs->ajouter(_("Cet événement est déjà en cours d'édition. Veuillez retenter dans quelques minutes.")); //echo $this->erreurs->afficher(); } else { // reservation de l'element $this->connexionBdd->getLock(array('evenement' . $id), array('minutes' => 10, 'idUtilisateur' => $aAuthentification->getIdUtilisateur())); // affichage du formulaire de modifications // pour eviter les problemes d'affichage d'erreur si l'utilisateur utilise le bouton de retour du navigateur quand l'evenement a été supprimé , on va afficher un message si l'evenement n'existe pas $reqVerif = "SELECT 0 FROM evenements WHERE idEvenement = '{$id}'"; $resVerif = $this->connexionBdd->requete($reqVerif); if (mysql_num_rows($resVerif) > 0) { $tabForm = $this->recupTableauTravail($id); $html .= $this->afficheFormulaire($tabForm, $id); } else { $html .= "L'événement n'existe pas."; } } } return $html; }
public function ajouter() { // ON LOCK LA TABLE historique image pour qu'il n'y ai pas d'ajout d'image qui se chevauche entre utilisateur $this->connexionBdd->getLock(array('historiqueImage')); $dateDuJour = date("Y-m-d"); $listeIdNouvellesImages = array(); // ce tableau contient la liste des idImages des nouvelles photos ajoutée, ce tableau est simplement transmis au formulaire de modification qui s'affiche a la fin de l'ajout $rapportTransfert = array(); // ce tableau contient le resultat du retour de la fonction de redimensionnement , ok ou pas // creation des repertoires datés if (!is_dir($this->getCheminPhysiqueImage("mini") . $dateDuJour)) { mkdir($this->getCheminPhysiqueImage("originaux") . $dateDuJour); chmod($this->getCheminPhysiqueImage("originaux") . $dateDuJour, 0777); mkdir($this->getCheminPhysiqueImage("mini") . $dateDuJour); chmod($this->getCheminPhysiqueImage("mini") . $dateDuJour, 0777); mkdir($this->getCheminPhysiqueImage("moyen") . $dateDuJour); chmod($this->getCheminPhysiqueImage("moyen") . $dateDuJour, 0777); mkdir($this->getCheminPhysiqueImage("grand") . $dateDuJour); chmod($this->getCheminPhysiqueImage("grand") . $dateDuJour, 0777); } // ************************************************************************************************************************************************************************************ if (isset($this->variablesPost['typeAjout']) && $this->variablesPost['typeAjout'] == 'simple') { // ******************************************************************************************************************************************************************************* if (isset($_FILES['fichier']['name']) && $_FILES['fichier']['error'] == UPLOAD_ERR_OK && isset($this->variablesPost['idCourant']) && isset($this->variablesPost['liaisonImage'])) { // on analyse le nom de fichier pour voir s'il y a une date a extraire et a inclure dans la base de données $dateCliche = "0000-00-00"; $dateObj = new dateObject(); $retourAnalyseNomFichier = $dateObj->extractDateFromString($_FILES['fichier']['name']); if ($retourAnalyseNomFichier['isDate']) { $dateCliche = $retourAnalyseNomFichier["dateExtracted"]; } // creation d'un nouvel id d'image // recuperation de l'id le plus haut $this->idImage = $nouveauIdImage = $this->getNewIdImage(); $listeIdNouvellesImages[] = $nouveauIdImage; $authentifie = new archiAuthentification(); if (extension_loaded('gd')) { // nommage de l'image en fonction de l'id // recuperation du type de fichier // et conversion en jpg s'il le faut // ajout d'un nouvel id dans l'historique image $resAjout = $this->connexionBdd->requete(' insert into historiqueImage (idImage, dateUpload, dateCliche, idUtilisateur) values ("' . $nouveauIdImage . '", "' . $dateDuJour . '", "' . $dateCliche . '", "' . $authentifie->getIdUtilisateur() . '") '); $nouvelIdHistoriqueImage = mysql_insert_id(); $erreurRedimension = false; // conversion en jpeg quelque soit le format géré // 1- l'image est sauvegardee tel quel (0 pour le redimensionnement) if (!$this->redimension($_FILES['fichier']['tmp_name'], pia_substr(strtolower($_FILES['fichier']['name']), -3), $this->getCheminPhysiqueImage("originaux") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", 0)) { $erreurRedimension = true; } // 2- redimensionnement au format mini if (!$this->redimension($_FILES['fichier']['tmp_name'], pia_substr(strtolower($_FILES['fichier']['name']), -3), $this->getCheminPhysiqueImage("mini") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageMini())) { $erreurRedimension = true; } // 3- redimensionnement au format moyen if (!$this->redimension($_FILES['fichier']['tmp_name'], pia_substr(strtolower($_FILES['fichier']['name']), -3), $this->getCheminPhysiqueImage("moyen") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageMoyen())) { $erreurRedimension = true; } // 4- redimensionnement au format grand if (!$this->redimension($_FILES['fichier']['tmp_name'], pia_substr(strtolower($_FILES['fichier']['name']), -3), $this->getCheminPhysiqueImage("grand") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageGrand())) { $erreurRedimension = true; } unlink($_FILES['fichier']['tmp_name']); $rapportTransfert[$nouveauIdImage] = array("erreurRedimension" => $erreurRedimension); // ajout a la table _adresseImage switch ($this->variablesPost['liaisonImage']) { case 'adresse': $resLiaison = $this->connexionBdd->requete('insert into _adresseImage (idImage, idAdresse, seSitue, prisDepuis, etage, hauteur) values ("' . $nouveauIdImage . '", "' . $this->variablesPost['idCourant'] . '", 0, 0, 0, 0)'); break; case 'evenement': $resLiaison = $this->connexionBdd->requete('insert into _evenementImage (idImage, idEvenement) values ("' . $nouveauIdImage . '", "' . $this->variablesPost['idCourant'] . '")'); break; default: // cas ou l'on upload simplement dans la bibliotheque des images sans préciser si l'image concerne un evenement ou une adresse break; } } else { echo "Il s'est produit une erreur lors de l'upload, la session est terminée ou la bibliothèque gd n'est pas installé sur le serveur.<br>"; } } else { switch ($_FILES['fichier']['error']) { case 0: echo "Aucune erreur détectée"; break; case 1: echo "Erreur lors de l'upload : archiImage::ajouter() : Taille du fichier trop importante (php.ini)"; break; case 2: echo "Erreur lors de l'upload : archiImage::ajouter() : Taille du fichier trop importante (formulaire html)"; break; case 3: echo "Erreur lors de l'upload : archiImage::ajouter() : Téléchargement partiel."; break; case 4: echo "Erreur lors de l'upload : archiImage::ajouter() : Aucun fichier n'a été téléchargé"; break; case 6: echo "Erreur lors de l'upload : archiImage::ajouter() : Un dossier temporaire est manquant"; break; case 7: echo "Erreur lors de l'upload : archiImage::ajouter() : Echec de l'écriture sur le disque"; break; case 8: echo "Erreur lors de l'upload : archiImage::ajouter() : Une extension PHP a annulé l'upload"; break; default: echo "Erreur lors de l'upload : archiImage::ajouter() "; break; } echo "<br/>"; } // ******************************************************************************************************************************************************************************* } elseif (isset($this->variablesPost['typeAjout']) && $this->variablesPost['typeAjout'] == 'multi') { // ******************************************************************************************************************************************************************************* // traitement des fichiers uploades par FTP if (isset($this->variablesPost['idCourant']) && isset($this->variablesPost['liaisonImage'])) { //echo "cheminUploadMultiple=".$this->variablesPost["cheminUploadMultiple"]."<br>"; //echo "idCourant=".$this->variablesPost["idCourant"]."<br>"; //echo "liaisonImage=".$this->variablesPost["liaisonImage"]."<br>"; $repertoireUpload = $this->variablesPost["cheminUploadMultiple"]; // conversion des noms de fichier en utf8 de tout le repertoire exec("convmv -f iso-8859-1 -t utf-8 -r " . $this->getCheminPhysique() . "/images/uploadMultiple/" . $repertoireUpload . "/* --notest", $retourExec); $authentifie = new archiAuthentification(); $nbSuppression = 0; if ($directory = opendir($this->getCheminPhysique() . "/images/uploadMultiple/" . $repertoireUpload)) { // parcours du repertoire while ($fichier = readdir($directory)) { if ($fichier != "." && $fichier != ".." && !is_dir($fichier)) { // on analyse le nom de fichier pour voir s'il y a une date a extraire et a inclure dans la base de données $dateCliche = "0000-00-00"; $dateObj = new dateObject(); $retourAnalyseNomFichier = $dateObj->extractDateFromString($fichier); if ($retourAnalyseNomFichier['isDate']) { $dateCliche = $retourAnalyseNomFichier["dateExtracted"]; } // recuperation de l'id le plus haut ( on le fait a chaque fois pour etre sur de ne pas $nouveauIdImage = $this->getNewIdImage(); // tableau transmis a la fonction de modifications pour savoir quelles ont ete les nouvelles images ajoutees $listeIdNouvellesImages[] = $nouveauIdImage; if (extension_loaded('gd')) { $resAjout = $this->connexionBdd->requete(' insert into historiqueImage (idImage, dateUpload, dateCliche, idUtilisateur, idSource) values ("' . $nouveauIdImage . '", "' . $dateDuJour . '", "' . $dateCliche . '", "' . $authentifie->getIdUtilisateur() . '", 0) '); $nouvelIdHistoriqueImage = mysql_insert_id(); // on ajoute le chemin de l'image uploadee du repertoire uploadMultiple pour pouvoir regenerer les fichiers a partir de celle ci , au cas ou des images redimensionnees sont corrompues // les images uploadees ne seront donc plus effacees $reqAjoutImageUploadee = "\n INSERT INTO imagesUploadeesPourRegeneration\n (idImage, idHistoriqueImage, cheminImageUploadee)\n VALUES ('" . $nouveauIdImage . "', '" . $nouvelIdHistoriqueImage . "', \"" . $repertoireUpload . "/" . $fichier . "\") "; $resAjoutImageUploadee = $this->connexionBdd->requete($reqAjoutImageUploadee); //redimensionnement //echo "debug ".$fichier." ==> ".pia_substr(strtolower($fichier), -3)."<br>"; // originaux $erreurRedimension = false; if (!$this->redimension($this->getCheminPhysique() . "/images/uploadMultiple/" . $repertoireUpload . "/" . $fichier, pia_substr(strtolower($fichier), -3), $this->getCheminPhysiqueImage("originaux") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", 0)) { $erreurRedimension = true; } //mini if (!$this->redimension($this->getCheminPhysique() . "/images/uploadMultiple/" . $repertoireUpload . "/" . $fichier, pia_substr(strtolower($fichier), -3), $this->getCheminPhysiqueImage("mini") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageMini())) { $erreurRedimension = true; } //moyen if (!$this->redimension($this->getCheminPhysique() . "/images/uploadMultiple/" . $repertoireUpload . "/" . $fichier, pia_substr(strtolower($fichier), -3), $this->getCheminPhysiqueImage("moyen") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageMoyen())) { $erreurRedimension = true; } //grand if (!$this->redimension($this->getCheminPhysique() . "/images/uploadMultiple/" . $repertoireUpload . "/" . $fichier, pia_substr(strtolower($fichier), -3), $this->getCheminPhysiqueImage("grand") . $dateDuJour . "/" . $nouvelIdHistoriqueImage . ".jpg", $this->getFormatImageGrand())) { $erreurRedimension = true; } //unlink($this->getCheminPhysique()."/images/uploadMultiple/".$repertoireUpload."/".$fichier); // suppression des fichiers du repertoire upload , suppression du repertoire $nbSuppression++; $rapportTransfert[$nouveauIdImage] = array("erreurRedimension" => $erreurRedimension); // ajout a la table _adresseImage switch ($this->variablesPost['liaisonImage']) { case 'adresse': $resLiaison = $this->connexionBdd->requete('insert into _adresseImage (idImage, idAdresse, description, seSitue, prisDepuis, etage, hauteur) values ("' . $nouveauIdImage . '", "' . $this->variablesPost['idCourant'] . '", "", 0, 0, 0, 0)'); break; case 'evenement': $resLiaison = $this->connexionBdd->requete('insert into _evenementImage (idImage, idEvenement) values ("' . $nouveauIdImage . '", "' . $this->variablesPost['idCourant'] . '")'); break; default: break; } } } } } if ($nbSuppression > 0) { // on supprime le repertoire (si des fichiers ont ete ajoutés) //rmdir($this->getCheminPhysique()."/images/uploadMultiple/".$repertoireUpload); } } } //$this->afficherListe($id , $type) // on libere la table $this->connexionBdd->freeLock(array('historiqueImage')); // envoi du mail au administrateur $message = "De nouvelles images ont été uploadées : <br>"; $intituleAdresse = ""; switch ($this->variablesPost['liaisonImage']) { case 'evenement': $a = new archiAdresse(); $reqAdresse = $a->getIdAdressesFromIdEvenement(array('idEvenement' => $this->variablesPost['idCourant'])); $resAdresse = $this->connexionBdd->requete($reqAdresse); $fetchAdresse = mysql_fetch_assoc($resAdresse); // on prend la premiere adresse qui vient $intituleAdresse = $a->getIntituleAdresseFrom($fetchAdresse['idAdresse'], 'idAdresse'); foreach ($listeIdNouvellesImages as $idImageNouvelle) { $msgErreur = ""; if ($rapportTransfert[$idImageNouvelle]['erreurRedimension'] == true) { $msgErreur = " ATTENTION : il y a eu un problème avec cette image (format incorrect) "; } $message .= "<a href='" . $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImageNouvelle, 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageNouvelle)))) . "'>Image " . $idImageNouvelle . "</a>{$msgErreur}<br>"; } $evenement = new archiEvenement(); $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesPost['idCourant']); $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'archiIdAdresse' => $fetchAdresse['idAdresse'])) . "'>" . $intituleAdresse . "</a><br>"; break; case 'adresse': $a = new archiAdresse(); $intituleAdresse = $a->getIntituleAdresseFrom($this->variablesPost['idCourant'], 'idAdresse'); foreach ($listeIdNouvellesImages as $idImageNouvelle) { $msgErreur = ""; if ($rapportTransfert[$idImageNouvelle]['erreurRedimension'] == true) { $msgErreur = " ATTENTION : il y a eu un problème avec cette image (format incorrect) "; } $message .= "<a href='" . $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImageNouvelle, 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageNouvelle)))) . "'>Image " . $idImageNouvelle . "</a>{$msgErreur}<br>"; } $arrayUrl = array(); if (isset($idImageNouvelle)) { $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageNouvelle)); $arrayUrl = array('archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse); } $message .= "<a href='" . $this->creerUrl('', '', array_merge($arrayUrl, array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $this->variablesPost['idCourant']))) . "'>" . $intituleAdresse . "</a><br>"; break; default: $message .= "De nouvelle images ont été ajoutées à la bibliothèque :<br>"; foreach ($listeIdNouvellesImages as $idImageNouvelle) { $msgErreur = ""; if ($rapportTransfert[$idImageNouvelle]['erreurRedimension'] == true) { $msgErreur = " ATTENTION : il y a eu un problème avec cette image (format incorrect) "; } $message .= "<a href='" . $this->creerUrl('', 'imageDetail', array('archiIdImage' => $idImageNouvelle, 'archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiRetourIdValue' => $this->getIdEvenementGroupeAdresseFromImage(array('idImage' => $idImageNouvelle)))) . "'>Image " . $idImageNouvelle . "</a>{$msgErreur}<br>"; } break; } $mail = new mailObject(); // recuperation des infos sur l'utilisateur qui fais la modif $utilisateur = new archiUtilisateur(); $arrayInfosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($this->session->getFromSession('utilisateurConnecte' . $this->idSite)); $message .= "<br>" . $arrayInfosUtilisateur['nom'] . " - " . $arrayInfosUtilisateur['prenom'] . " - " . $arrayInfosUtilisateur['mail'] . "<br>"; $mail->sendMailToAdministrators($mail->getSiteMail(), 'Nouvelles images ajoutées - ' . $intituleAdresse, $message, " AND alerteAdresses = '1' ", true); $utilisateur->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 13, 'criteres' => " and alerteAdresses='1' ")); // ************************************************************************************************************************************************ // envoi d'un mail pour l'auteur de l'adresse // ************************************************************************************************************************************************ $mail = new mailObject(); $utilisateur = new archiUtilisateur(); $auth = new archiAuthentification(); $arrayUtilisateurs = $utilisateur->getCreatorsFromAdresseFrom($this->variablesPost['idCourant'], 'idEvenement'); // a modifier quand on pourra ajouter des photos sur une adresse $adresse = new archiAdresse(); $intituleAdresse = $adresse->getIntituleAdresseFrom($this->variablesPost['idCourant'], 'idEvenement'); $evenement = new archiEvenement(); foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) { if ($idUtilisateurAdresse != $auth->getIdUtilisateur()) { $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse); if ($infosUtilisateur['alerteAdresses'] == '1' && $infosUtilisateur['compteActif'] == '1' && $infosUtilisateur['idProfil'] != '4') { $messageIntro = "Un utilisateur a ajouté une ou plusieurs images sur une adresse dont vous êtes l'auteur.<br>"; $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesPost['idCourant']); $adresse = new archiAdresse(); $reqAdresses = $adresse->getIdAdressesFromIdEvenement(array('idEvenement' => $this->variablesPost['idCourant'])); $resAdresses = $this->connexionBdd->requete($reqAdresses); $fetchAdresses = mysql_fetch_assoc($resAdresses); $message = "Pour vous rendre sur l'évènement : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchAdresses['idAdresse'], 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)) . "'>" . $intituleAdresse . "</a><br>"; $messageFin = $this->getMessageDesabonnerAlerteMail(); if ($utilisateur->isMailEnvoiImmediat($idUtilisateurAdresse)) { $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Ajout de photos sur une adresse dont vous êtes l\'auteur.', $messageIntro . $message . $messageFin, true); } else { $utilisateur->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $idUtilisateurAdresse, 'idTypeMailRegroupement' => 13)); } } } } // ************************************************************************************************************************************************ // ************************************************************************************************************************************************************* // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere $u = new archiUtilisateur(); $arrayVilles = array(); $arrayVilles[] = $adresse->getIdVilleFrom($this->variablesPost['idCourant'], 'idEvenement'); $arrayVilles = array_unique($arrayVilles); $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteAdresses='1' ")); if (count($arrayListeModerateurs) > 0) { foreach ($arrayListeModerateurs as $indice => $idModerateur) { if ($idModerateur != $this->session->getFromSession('utilisateurConnecte' . $this->idSite)) { if ($u->isMailEnvoiImmediat($idModerateur)) { $mailModerateur = $u->getMailUtilisateur($idModerateur); $mail->sendMail($mail->getSiteMail(), $mailModerateur, 'Nouvelles images ajoutées -' . $intituleAdresse, $message, true); } else { $u->ajouteMailEnvoiRegroupes(array('contenu' => $message, 'idDestinataire' => $idModerateur, 'idTypeMailRegroupement' => 13)); } } } } // ************************************************************************************************************************************************************* // on appelle le formulaire permettant de mettre a jour les infos concernant les photos echo $this->afficherFormulaireModification(0, '', $listeIdNouvellesImages); }