source: spip-zone/_plugins_/_stable_/moderation_moderee/fonctions_mod.php @ 22750

Last change on this file since 22750 was 22750, checked in by prigent.yohann@…, 13 years ago

<?php oublié !

File size: 4.1 KB
Line 
1<?php
2function forum_insert_base($c, $id_forum, $id_article, $id_breve, $id_syndic, $id_rubrique, $statut, $retour)
3{
4        $afficher_texte = (_request('afficher_texte') <> 'non');
5        $ajouter_mot = _request('ajouter_mot');
6
7        // Antispam : si 'nobot' a ete renseigne, ca ne peut etre qu'un bot
8        if (strlen(_request('nobot'))) {
9                tracer_erreur_forum('champ interdit (nobot) rempli');
10                return false;
11        }
12
13        //  Si forum avec previsu sans bon hash de securite, echec silencieux
14        if ($afficher_texte AND forum_insert_noprevisu()) {
15                return false;
16        }
17
18        if (array_reduce($_POST, 'reduce_strlen', (20 * 1024)) < 0) {
19                ask_php_auth(_T('forum_message_trop_long'),
20                        _T('forum_cliquer_retour',
21                                array('retour_forum' => $retour)));
22        }
23
24        // Entrer le message dans la base
25        $id_message = sql_insertq('spip_forum', array('date_heure'=> 'NOW()'));
26
27        if ($id_forum>0) {
28                $id_thread = sql_getfetsel("id_thread", "spip_forum", "id_forum = $id_forum");
29        }
30        else
31                $id_thread = $id_message; # id_thread oblige INSERT puis UPDATE.
32
33        // id_rubrique est parfois passee pour les articles, on n'en veut pas
34        if ($id_rubrique > 0 AND ($id_article OR $id_breve OR $id_syndic))
35                $id_rubrique = 0;
36
37        // Entrer les cles de jointures et assimilees
38global $visiteur_session;
39        if ($visiteur_session) {
40        $moderation_plug_admin=$GLOBALS['meta']["moderation_plug_admin"];
41        $moderation_plug_redac=$GLOBALS['meta']["moderation_plug_redac"];
42        $moderation_plug_visit=$GLOBALS['meta']["moderation_plug_visit"];
43        $autstat = $visiteur_session['statut'];
44        if ($autstat == '0minirezo' AND $moderation_plug_admin == 'oui') {
45                sql_updateq('spip_forum', array('id_parent' => $id_forum, 'id_rubrique' => $id_rubrique, 'id_article' => $id_article, 'id_breve' => $id_breve, 'id_syndic' => $id_syndic, 'id_thread' => $id_thread, 'statut' => 'publie'), "id_forum = $id_message");
46                }
47        else if ($autstat == '1comite' AND $moderation_plug_redac == 'oui') {
48                sql_updateq('spip_forum', array('id_parent' => $id_forum, 'id_rubrique' => $id_rubrique, 'id_article' => $id_article, 'id_breve' => $id_breve, 'id_syndic' => $id_syndic, 'id_thread' => $id_thread, 'statut' => 'publie'), "id_forum = $id_message");
49        }
50        else if ($autstat == '6forum' AND $moderation_plug_visit == 'oui')  {
51                sql_updateq('spip_forum', array('id_parent' => $id_forum, 'id_rubrique' => $id_rubrique, 'id_article' => $id_article, 'id_breve' => $id_breve, 'id_syndic' => $id_syndic, 'id_thread' => $id_thread, 'statut' => 'publie'), "id_forum = $id_message");
52                }
53        else if (!$autstat) {   
54                sql_updateq('spip_forum', array('id_parent' => $id_forum, 'id_rubrique' => $id_rubrique, 'id_article' => $id_article, 'id_breve' => $id_breve, 'id_syndic' => $id_syndic, 'id_thread' => $id_thread, 'statut' => $statut), "id_forum = $id_message");
55                }
56        else {
57                sql_updateq('spip_forum', array('id_parent' => $id_forum, 'id_rubrique' => $id_rubrique, 'id_article' => $id_article, 'id_breve' => $id_breve, 'id_syndic' => $id_syndic, 'id_thread' => $id_thread, 'statut' => $statut), "id_forum = $id_message");
58        }
59        }
60        // Entrer les mots-cles associes
61        if ($ajouter_mot) mots_du_forum($ajouter_mot, $id_message);
62
63        //
64        // Entree du contenu et invalidation des caches
65        //
66        include_spip('inc/modifier');
67        revision_forum($id_message, $c);
68
69        // Ajouter un document
70        if (isset($_FILES['ajouter_document'])
71        AND $_FILES['ajouter_document']['tmp_name']) {
72                $ajouter_documents = charger_fonction('ajouter_documents', 'inc');
73                $ajouter_documents(
74                        $_FILES['ajouter_document']['tmp_name'],
75                        $_FILES['ajouter_document']['name'], 'forum', $id_message,
76                        'document', 0, $documents_actifs);
77                // supprimer le temporaire et ses meta donnees
78                spip_unlink($_FILES['ajouter_document']['tmp_name']);
79                spip_unlink(preg_replace(',\.bin$,',
80                        '.txt', $_FILES['ajouter_document']['tmp_name']));
81        }
82
83        // Notification
84        if ($notifications = charger_fonction('notifications', 'inc'))
85                $notifications('forumposte', $id_message);
86
87        return $id_message;
88}
89
90// calcul de l'adresse de retour en cas d'echec du POST
91// mais la veritable adresse de retour sera calculee apres insertion
92?>
Note: See TracBrowser for help on using the repository browser.