public function enregistreCommentaireEvenement() { $auth = new archiAuthentification(); $fieldsCommentaires = $this->getCommentairesFields(); $formulaire = new formGenerator(); if ($auth->estConnecte()) { unset($fieldsCommentaires['captcha']); } $error = $formulaire->getArrayFromPost($fieldsCommentaires); if (count($error) == 0) { $idUtilisateur = 0; if ($auth->estConnecte()) { $idUtilisateur = $auth->getIdUtilisateur(); // suite au SPAM mise en place d'un champ CommentaireValide 0/1 (by fabien 13/01/2012) $CommentaireValide = 1; $user = new archiUtilisateur(); $userInfos = $user->getArrayInfosFromUtilisateur($idUtilisateur); } else { $CommentaireValide = 0; } // enregistrement du nouveau commentaire //$req = "insert into commentaires (nom,prenom,email,commentaire,idEvenementGroupeAdresse,date,idUtilisateur) values (\"".addslashes(strip_tags($this->variablesPost['nom']))."\",\"".addslashes(strip_tags($this->variablesPost['prenom']))."\",\"".addslashes(strip_tags($this->variablesPost['email']))."\",\"".addslashes(strip_tags($this->variablesPost['commentaire']))."\",'".$this->variablesPost['idEvenementGroupeAdresse']."',now(),'".$idUtilisateur."')"; $nom = $auth->estConnecte() ? $userInfos["nom"] : $this->variablesPost['nom']; $prenom = $auth->estConnecte() ? $userInfos["prenom"] : $this->variablesPost['prenom']; $email = $auth->estConnecte() ? $user->getMailUtilisateur($idUtilisateur) : $this->variablesPost['email']; $uniqid = uniqid(null, true); //$req = "insert into commentaires (nom,prenom,email,commentaire,idEvenementGroupeAdresse,date,idUtilisateur) values (\"".addslashes(strip_tags($this->variablesPost['nom']))."\",\"".addslashes(strip_tags($this->variablesPost['prenom']))."\",\"".addslashes(strip_tags($this->variablesPost['email']))."\",\"".addslashes(strip_tags($this->variablesPost['commentaire']))."\",'".$this->variablesPost['idEvenementGroupeAdresse']."',now(),'".$idUtilisateur."')"; $req = "INSERT INTO commentairesEvenement (nom,prenom,email,commentaire, idEvenement, date, idUtilisateur, CommentaireValide)\n\t\t\t\t\tVALUES (\"" . addslashes(strip_tags($this->variablesPost['nom'])) . "\",\"" . addslashes(strip_tags($this->variablesPost['prenom'])) . "\",\"" . addslashes(strip_tags($this->variablesPost['email'])) . "\",'" . mysql_real_escape_string(strip_tags($this->variablesPost['commentaire'])) . "', '" . mysql_real_escape_string($this->variablesPost['idEvenementGroupeAdresse']) . "', now(), '" . mysql_real_escape_string($idUtilisateur) . "'," . mysql_real_escape_string($CommentaireValide) . ")"; $res = $this->connexionBdd->requete($req); // retour a l'affichage de l'adresse $idAdresse = $this->variablesPost['idEvenementGroupeAdresse']; $idEvenement = $this->variablesPost['idEvenementGroupeAdresse']; $idEvenementGroupeAdresse = $this->getIdEvenementGroupeAdresseFromIdEvenement($idEvenement); $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($idEvenementGroupeAdresse); $idCommentaire = mysql_insert_id(); // ************************************************************************************************************************************************ // envoi d'un mail a tous les participants pour le groupe d'adresse // ************************************************************************************************************************************************ $mail = new mailObject(); $utilisateur = new archiUtilisateur(); $arrayUtilisateurs = $utilisateur->getParticipantsCommentairesEvenement($this->variablesPost['idEvenementGroupeAdresse']); //$arrayCreatorAdresse = $utilisateur->getCreatorsFromAdresseFrom($this->variablesPost['idEvenementGroupeAdresse'],'idEvenementGroupeAdresse'); //$arrayUtilisateurs = array_merge($arrayUtilisateurs,$arrayCreatorAdresse); $arrayUtilisateurs = array_unique($arrayUtilisateurs); $intituleAdresse = $this->getIntituleAdresseFrom($idEvenement, 'idEvenement'); if (empty($intituleAdresse)) { $intituleAdresse = 'Voir le commentaire'; } $idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse); //$idAdresse = $this->getIdEvenementFromIdHistoriqueEvenement($this->variablesPost['idEvenementGroupeAdresse']); foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) { if ($idUtilisateurAdresse != $auth->getIdUtilisateur()) { $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse); if ($infosUtilisateur['alerteCommentaires'] == '1' && $infosUtilisateur['compteActif'] == '1' && $infosUtilisateur['idProfil'] != '4') { $message = "Un utilisateur a ajouté un commentaire sur un evenement que vous avez créé."; if ($idPerson) { $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => 'personne', 'id' => $idPerson)) . '#commentaireEvenement' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>"; } else { $message .= "Pour vous rendre sur l'adresse : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse)) . '#commentaireEvenement' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>"; } $message .= $this->getMessageDesabonnerAlerteMail(); $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Ajout d\'un commentaire sur une adresse sur laquelle vous avez participé.', $message, true); } } } // ************************************************************************************************************************************************ // envoi d'un mail aux administrateur pour la moderation $message = "Merci d'avoir laissé un commentaire sur Archi-Strasbourg.<br>"; $message .= "Afin qu'il soit publié, merci de le valider en cliquant sur "; $message .= "<a href='" . $this->getUrlRacine() . "script/validateEmail.php?uniqid=" . urlencode($uniqid) . "'>ce lien</a>.<br>"; $message .= "<br/>Cordialement,</br>"; $mail = new mailObject(); $envoyeur['envoyeur'] = $mail->getSiteMail(); $envoyeur['replyTo'] = strip_tags($this->variablesPost['email']); $u = new archiUtilisateur(); if (!$CommentaireValide) { $mail->sendMail($envoyeur['envoyeur'], $this->variablesPost['email'], 'Votre commentaire sur Archi-Strasbourg', $message, true); } else { $message = "Un utilisateur a ajouté un commentaire sur archiV2 : <br>"; $message .= "nom ou pseudo : " . strip_tags($this->variablesPost['nom']) . "<br>"; $message .= "prenom : " . strip_tags($this->variablesPost['prenom']) . "<br>"; $message .= "email : " . strip_tags($this->variablesPost['email']) . "<br>"; $message .= "commentaire : " . stripslashes(strip_tags($this->variablesPost['commentaire'])) . "<br>"; $idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse); if ($idPerson) { $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => 'personne', 'id' => $idPerson)) . '#commentaireEvenement' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>"; } else { $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'archiIdAdresse' => $idAdresse)) . '#commentaireEvenement' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>"; } $mail->sendMailToAdministrators($envoyeur, 'Un utilisateur a ajouté un commentaire', $message, " AND alerteCommentaires='1' ", true, true); // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere $arrayVilles = array(); $arrayVilles[] = $this->getIdVilleFrom($idEvenement, 'idEvenement'); $arrayVilles = array_unique($arrayVilles); $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteCommentaires='1' ")); if (count($arrayListeModerateurs) > 0) { foreach ($arrayListeModerateurs as $indice => $idModerateur) { if ($auth->getIdUtilisateur() != $idModerateur) { $mailModerateur = $u->getMailUtilisateur($idModerateur); $mail->sendMail($mail->getSiteMail(), $mailModerateur, 'Un utilisateur a ajouté un commentaire', $message, true); } } } } // remise a zero des variables en post sinon on va reafficher les infos $_POST['commentaire'] = ""; $_POST['email'] = ""; $_POST['nom'] = ""; $_POST['prenom'] = ""; $idGroupeEvenement = $this->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesPost['idEvenementGroupeAdresse']); $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($idGroupeEvenement); $adresse = new archiAdresse(); $this->messages->addConfirmation("Commentaire enregistré !"); switch ($this->variablesPost['type']) { case 'evenement': header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idGroupeEvenement), false, false) . '#commentaireEvenement' . $idCommentaire); break; case 'personne': $e = new archiEvenement(); $idEvenementGA = $e->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesPost['idEvenementGroupeAdresse']); header("Location: " . $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => archiPersonne::isPerson($idEvenementGA))) . '#commentaireEvenement' . $idCommentaire); break; default: header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idGroupeEvenement), false, false) . '#commentaireEvenement' . $idCommentaire); } } else { header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idGroupeEvenement), false, false)); $this->erreurs->ajouter('Il y a une erreur dans le formulaire.'); echo $this->erreurs->afficher(); echo $this->getFormComment($this->variablesPost['idEvenementGroupeAdresse'], $fieldsCommentaires, 'evenement'); echo $this->getListCommentairesEvenements($this->variablesPost['idEvenementGroupeAdresse']); } }