source: Collectif_Otra/plugins/configuration_reflet/action/reflet_moderation.php @ 2803

Last change on this file since 2803 was 2803, checked in by kent1, 10 years ago

Reflet presque up 2 date (reste les externals)

File size: 2.1 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function action_reflet_moderation_dist() {
6        global $visiteur_session;
7        spip_log('action reflet_moderation',"reflet");
8        $securiser_action = charger_fonction('securiser_action', 'inc');
9        $arg = $securiser_action();
10
11        spip_log($arg,"reflet");
12       
13        list($statut, $id_contrib, $id_admin, $type) = preg_split('/\W/', $arg);
14       
15        $table = table_objet_sql($type);
16        spip_log($table,'reflet');
17       
18        $id_table_objet = id_table_objet($type);
19        spip_log($id_table_objet,'reflet');
20       
21        $row = sql_fetsel("*", $table, "$id_table_objet=".intval($id_contrib));
22       
23        $opts['table'] = $table;
24        $opts['id_table_objet'] = $id_table_objet;
25       
26        if(autoriser('instituer_contribution','reflet',$id_contrib,$visiteur_session,$opts)){
27                spip_log("on a le droit d instituer la contribution et de mettre son statut en $statut","reflet");
28                instituer_une_contribution($statut,$id_contrib,$id_admin,$row,$table,$id_table_objet);
29        }
30        else{
31                spip_log('on n a pas le droit d instituer la contribution',"reflet");
32        }
33}
34
35function instituer_une_contribution($statut,$id_contrib,$id_admin,$row,$table,$id_table_objet){
36        spip_log('Instituer une contribution');
37       
38        // TODO : passer par un truc du genre revision_contribution
39        // exemples dans inc/modifier
40       
41        $old = $row['admin_statut'];
42        sql_updateq($table, array("admin_statut" => $statut),"$id_table_objet=$id_contrib AND admin_statut = '$old'");
43       
44        // Notifier les intéressés du changement de statut du reflet
45        if ($notifications = charger_fonction('notifications', 'inc')) {
46                spip_log('notification reflet_moderation?');
47                $options['statut'] = $statut;
48                $options['id_contrib'] = $id_contrib;
49                $options['table'] = $table;
50                $options['id_table_objet'] = $id_table_objet;
51                $notifications('reflet_moderation',$id_contrib,$options);
52        }
53
54        // Regeneration du xml par exemple
55        pipeline('post_edition',
56                array(
57                        'args' => array(
58                                'table' => $table,
59                                'id_objet' => $id_contrib,
60                                'action' => 'instituer_contribution',
61                                'statut_old' => $row['admin_statut'],
62                                'statut_new' => $statut 
63                        ),
64                        'data' => null
65                )
66        );
67       
68        include_spip('inc/invalideur');
69        suivre_invalideur("id='$id_table_objet/$id_contrib'");
70}
71?>
Note: See TracBrowser for help on using the repository browser.