Ignore:
Timestamp:
Oct 31, 2008, 11:10:38 AM (13 years ago)
Author:
prigent.yohann@…
Message:

On s'adapte à http://trac.rezo.net/trac/spip/changeset/13080

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/moderation_moderee/fonctions_mod.php

    r22750 r23821  
    11<?php
    2 function 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');
     2$GLOBALS['spip_pipeline']['pre_edition'] .= '|moderation_vip';
    63
    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;
     4function moderation_vip($flux){
     5        if ($flux['args']['table']=='spip_forum'
     6          AND $flux['args']['action']=='instituer'){
     7         
     8          // Pour publier direct les auteurs configurés par modération modérés
     9          if ($flux['data']['statut'] == 'publie'){
     10                // si c'est un message bourre de liens, on le modere
     11                global $visiteur_session;
     12                if ($visiteur_session) {
     13                $moderation_plug_admin=$GLOBALS['meta']["moderation_plug_admin"];
     14                $moderation_plug_redac=$GLOBALS['meta']["moderation_plug_redac"];
     15                $moderation_plug_visit=$GLOBALS['meta']["moderation_plug_visit"];
     16                $autstat = $visiteur_session['statut'];
     17                if ($autstat == '0minirezo' AND $moderation_plug_admin == 'oui') {
     18                        $flux['data']['statut']='publie';
     19                }
     20                else if ($autstat == '1comite' AND $moderation_plug_redac == 'oui') {
     21                        $flux['data']['statut']='publie';               }
     22                else if ($autstat == '6forum' AND $moderation_plug_visit == 'oui')  {
     23                                $flux['data']['statut']='publie';               }
     24                }
     25               
     26          }
     27               
    1128        }
    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
    38 global $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;
     29        return $flux;
    8830}
    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
    9231?>
Note: See TracChangeset for help on using the changeset viewer.