Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?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");
}
// fichier inclus par inc-public.
// 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);
if (!$id_auteur) $id_auteur = $GLOBALS['auteur_session']['id_auteur'];
if ($forum_id_article) {
if ($obj = spip_fetch_object(spip_query("
SELECT accepter_forum
FROM spip_articles
WHERE id_article=$forum_id_article")))
$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\"
WHERE id_forum = '$id_message'
");
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));
// 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);
}
}
}
// destruction du formulaire (on pourrait leconserver
// car il ne contient rien de spe'cifique (php dynamique)
// mais il est statistiquement peu re'utilise')
// destruction de la page ayant de'clenche' le formulaire si non mode're'
if (file_exists('inc-invalideur.php3'))
{
include('inc-invalideur.php3');
applique_invalideur(($statut == 'publie') ?
array($var_cache, $cache) :
array($var_cache));
}
else // minimum vital
{
@unlink($var_cache);
if ($statut == 'publie') @unlink($cache);
}
}
$redirect = $retour_forum;
}
?>