public function enregistreCommentaire() { $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, CommentaireValide, uniqid) VALUES ('" . mysql_real_escape_string(strip_tags($nom)) . "', '" . mysql_real_escape_string(strip_tags($prenom)) . "', '" . mysql_real_escape_string(strip_tags($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) . ", '" . mysql_real_escape_string($uniqid) . "')"; $res = $this->connexionBdd->requete($req); $idCommentaire = mysql_insert_id(); // retour a l'affichage de l'adresse $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesPost['idEvenementGroupeAdresse']); // ************************************************************************************************************************************************ // envoi d'un mail a tous les participants pour le groupe d'adresse // ************************************************************************************************************************************************ $mail = new mailObject(); $utilisateur = new archiUtilisateur(); $arrayUtilisateurs = $utilisateur->getParticipantsCommentaires($this->variablesPost['idEvenementGroupeAdresse']); $arrayCreatorAdresse = $utilisateur->getCreatorsFromAdresseFrom($this->variablesPost['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse'); $arrayUtilisateurs = array_merge($arrayUtilisateurs, $arrayCreatorAdresse); $arrayUtilisateurs = array_unique($arrayUtilisateurs); $intituleAdresse = $this->getIntituleAdresseFrom($idAdresse, 'idAdresse'); 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 une adresse ou vous avez participé."; $message .= "Pour vous rendre sur l'adresse : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'])) . '#commentaireAdresse' . $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>"; $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'], 'archiIdAdresse' => $idAdresse)) . '#commentaireAdresse' . $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($idAdresse, 'idAdresse'); $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'] = ""; $this->variablesGet['archiIdEvenementGroupeAdresse'] = $this->variablesPost['idEvenementGroupeAdresse']; $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresse']); $this->messages->addConfirmation("Commentaire enregistré !"); $this->messages->display(); header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresse']), false, false) . '#commentaireAdresse' . $idCommentaire); } else { $this->messages->addError("Il y a une erreur dans le formulaire."); $this->messages->display(); echo $this->getListeCommentaires($this->variablesPost['idEvenementGroupeAdresse']); echo $this->getFormulaireCommentaires($this->variablesPost['idEvenementGroupeAdresse'], $fieldsCommentaires); } }