source: spip-zone/_plugins_/selection_d_objets/trunk/action/ranger.php @ 70480

Last change on this file since 70480 was 70480, checked in by abelass@…, 8 years ago

ouvrir la posibilité d'utiliser l'objet "selection_objet" sans liens vers un autre objet

File size: 4.1 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function action_ranger_dist($arg=null){
6    if (is_null($arg)){
7        $securiser_action = charger_fonction('securiser_action', 'inc');
8        $arg = $securiser_action();
9    }   
10     $verifier_ordre=charger_fonction('verifier_ordre','inc');
11        include_spip("inc/autoriser");
12        include_spip("inc/config");
13
14        list($action,$lang,$id_selection_objet,$ordre,$objet_dest,$id_objet_dest,$load)=explode('-',$arg);
15    $load=_request('load');
16
17    switch($action){
18        case 'supprimer_ordre' :
19            include_spip('formulaires/bouton_article');
20            spip_log('eliminer 1','selection');
21                $where=array(
22                    'id_selection_objet='.$id_selection_objet,
23                    );
24                                           
25                sql_delete("spip_selection_objets",$where);
26                       
27                // on vérifie l'ordre des objets déjà enregistrés et on corrige si beselection_objetin
28                   
29                $where = array(
30                    'id_objet_dest='.$id_objet_dest,
31                    'objet_dest='.sql_quote($objet_dest),
32                    'lang='.sql_quote($lang)   
33                    );
34                   
35                $ordre=$verifier_ordre($where); 
36               
37            break;
38           
39        case 'remonter_ordre':
40            $where = array(             
41            'lang="'.$lang.'"',
42            'objet_dest="'.$objet_dest.'"',
43            'id_objet_dest="'.$id_objet_dest.'"', 
44            'ordre<="'.$ordre.'"',                           
45                );
46       
47            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre DESC",2);
48           
49            while ($row = sql_fetch($result)) {
50                if($id_selection_objet==$row["id_selection_objet"]){
51                    $o =$ordre-1;
52                }
53                else{
54                    $o =$ordre;
55                }
56            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']); 
57            }
58                 $where = array(
59                    'id_objet_dest='.$id_objet_dest,
60                    'objet_dest='.sql_quote($objet_dest),
61                    'lang='.sql_quote($lang)   
62                    );           
63        $ordre=$verifier_ordre($where);     
64            break;
65           
66        case 'descendre_ordre': 
67            $where = array(             
68            'lang="'.$lang.'"',
69            'objet_dest="'.$objet_dest.'"',
70            'id_objet_dest="'.$id_objet_dest.'"', 
71            'ordre>="'.$ordre.'"',                           
72                );
73
74            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre",2);
75           
76            while ($row = sql_fetch($result)) {
77                if($id_selection_objet==$row["id_selection_objet"]){
78                    $o =$ordre+1;
79                }
80                else{
81                    $o =$ordre;
82                }
83            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']); 
84            }
85            $where = array(
86                'id_objet_dest='.$id_objet_dest,
87                'objet_dest='.sql_quote($objet_dest),
88                'lang='.sql_quote($lang)   
89                );           
90            $ordre=$verifier_ordre($where); 
91            break;
92        //drag&drop
93        case 'nouvel_ordre':
94            $nouvel_ordre=explode(',',_request('nouvel_ordre'));
95            $ordre=0;
96            foreach($nouvel_ordre AS $id_selection_objet){
97                $ordre++;
98                sql_updateq("spip_selection_objets", array("ordre" => $ordre),'id_selection_objet='.$id_selection_objet);
99                include_spip('inc/invalideur');
100                suivre_invalideur("id='selection_objet/$id_selection_objet'");   
101            }
102            break;
103        }
104
105    if($load){
106        $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang);
107        echo recuperer_fond($load,$contexte);
108    } 
109return $return;
110}
111
112?>
Note: See TracBrowser for help on using the repository browser.