Newer
Older
<?php
include_ecrire('inc_texte.php3');
include_ecrire('inc_filtres.php3');
include_ecrire('inc_mail.php3');
if (file_exists("inc-urls.php3")) { include_local ("inc-urls.php3"); }
else {include_local ("inc-urls-dist.php3"); }
// Ce fichier inclus par inc-public a un comportement special
// Voir commentaires dans celui-ci et dans inc-forum
$retour_forum = rawurldecode($retour);
$forum_id_article = intval($forum_id_article);
$forum_id_rubrique = intval($forum_id_rubrique);
$forum_id_parent = intval($forum_id_parent);
$forum_id_breve = intval($forum_id_breve);
$forum_id_syndic = intval($forum_id_syndic);
$slash_texte = addslashes($texte);
$slash_titre = addslashes($titre);
$slash_nom_site_forum = addslashes($nom_site_forum);
$slash_url_site = addslashes($url_site);
$id_message = intval($id_message);
// Nature du forum
if (!$id_auteur)
$id_auteur = $GLOBALS['auteur_session']['id_auteur'];
if ($forum_id_article) {
if ($s = spip_query("SELECT accepter_forum FROM spip_articles
WHERE id_article=$forum_id_article") AND
$obj = spip_fetch_array($s))
$forums_publics = $obj['accepter_forum'];
else
$forums_publics = lire_meta("forums_publics");
} else {
$forums_publics = substr(lire_meta("forums_publics"),0,3);
if ($forums_publics == "abo") {
if ($auteur_session) {
$statut = $auteur_session['statut'];
if (!$statut OR $statut == '5poubelle') {
die ("<h4>"._T('forum_acces_refuse'). "</h4>" .
_T('forum_cliquer_retour', array('retour_forum' => $retour_forum)).
"<p>");
}
}
else {
die ("<h4>"._T('forum_non_inscrit'). "</h4>" .
_T('forum_cliquer_retour', array('retour_forum' => $retour_forum)).
"<p>");
}
// Ne pas autoriser de changement de nom si forum sur abonnement
$auteur = $auteur_session['nom'];
$email_auteur = $auteur_session['email'];
}
$slash_auteur = addslashes($auteur);
$slash_email_auteur = addslashes($email_auteur);
if ((strlen($slash_texte) + strlen($slash_titre) + strlen($slash_nom_site_forum) + strlen($slash_url_site) + strlen($slash_auteur) + strlen($slash_email_auteur)) > 20 * 1024) {
die ("<h4>"._T('forum_message_trop_long')."</h4>\n" .
_T('forum_cliquer_retour', array('retour_forum' => $retour_forum)).
"<p>");
spip_query("DELETE FROM spip_mots_forum WHERE id_forum='$id_message'");
if ($ajouter_mot) {
for (reset($ajouter_mot);$key=key($ajouter_mot);next($ajouter_mot))
$les_mots .= ",".join($ajouter_mot[$key],",");
$les_mots = explode(",", $les_mots);
for ($index = 0; $index < count($les_mots); $index++){
$le_mot = $les_mots[$index];
if ($le_mot > 0)
spip_query("INSERT INTO spip_mots_forum (id_mot, id_forum)
VALUES ('$le_mot', '$id_message')");
$validation_finale = (strlen($confirmer) > 0 OR
($afficher_texte=='non' AND $ajouter_mot));
$statut = ((!$validation_finale) ? 'redac' :
(($forums_publics == 'non') ? 'off' :
(($forums_publics == 'pri') ? 'prop' : 'publie')));
spip_query("UPDATE spip_forum SET id_parent = $forum_id_parent,
id_rubrique =$forum_id_rubrique,
id_article = $forum_id_article,
id_breve = $forum_id_breve,
id_syndic = \"$forum_id_syndic\",
id_auteur = \"$id_auteur\",
date_heure = NOW(),
titre = \"$slash_titre\",
texte = \"$slash_texte\",
nom_site = \"$slash_nom_site_forum\",
url_site = \"$slash_url_site\",
auteur = \"$slash_auteur\",
email_auteur = \"$slash_email_auteur\",
ip = \"$REMOTE_ADDR\",
statut = \"$statut\"
if ($validation_finale) {
include_ecrire("inc_admin.php3");
if (!(verifier_action_auteur("ajout_forum $forum_id_rubrique".
" $forum_id_parent $forum_id_article $forum_id_breve".
" $forum_id_syndic $alea", $hash))) {
header("Status: 404");
exit;
} else {
// Poser un cookie pour ne pas retaper le nom / email
$cookie_user = array('nom' => $auteur, 'email' => $email_auteur);
spip_setcookie('spip_forum_user', serialize($cookie_user));
//
// INVALIDATION DES CACHES LIES AUX FORUMS
//
include_ecrire('inc_invalideur.php3');
include_ecrire('inc_forum.php3');
suivre_invalideur ("id='id_forum/" .
calcul_index_forum($forum_id_article,
$forum_id_syndic) . "'");
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
}
$redirect = $retour_forum;
//
// Envoi d'un mail aux auteurs
//
$prevenir_auteurs = lire_meta("prevenir_auteurs");
if ($prevenir_auteurs == "oui" AND $afficher_texte != "non") {
if ($id_article = $forum_id_article) {
$url = ereg_replace('^/', '', generer_url_article($id_article));
$adresse_site = lire_meta("adresse_site");
$nom_site_spip = lire_meta("nom_site");
$url = "$adresse_site/$url";
$courr = _T('form_forum_message_auto')."\n\n";
$parauteur = '';
if (strlen($auteur) > 2) {
$parauteur = " "._T('forum_par_auteur',
array('auteur' => $auteur));
if ($email_auteur)
$parauteur .= " <$email_auteur>";
}
$courr .= _T('forum_poste_par',
array('parauteur' => $parauteur))."\n";
$courr .= _T('forum_ne_repondez_pas')."\n";
$courr .= "$url\n";
$courr .= "\n\n".$titre."\n\n".textebrut(propre($texte)).
"\n\n$nom_site_forum\n$url_site\n";
$sujet = "[$nom_site_spip] ["._T('forum_forum')."] $titre";
$query = "SELECT auteurs.* FROM spip_auteurs AS auteurs,
spip_auteurs_articles AS lien
WHERE lien.id_article='$id_article'
AND auteurs.id_auteur=lien.id_auteur";
$result = spip_query($query);
while ($row = spip_fetch_array($result)) {
$email_auteur = trim($row["email"]);
if (strlen($email_auteur) < 3) continue;
envoyer_mail($email_auteur, $sujet, $courr);
}
}
}
}
}