source: spip-zone/_plugins_/selection_d_objets/branches/1/action/ranger.php @ 70490

Last change on this file since 70490 was 70490, checked in by abelass@…, 7 years ago
  • eviter des erreurs php
  • prendre les variables du contexte
  • langues
File size: 4.2 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    $id=_request('id');
17
18    switch($action){
19        case 'supprimer_ordre' :
20            include_spip('formulaires/bouton_article');
21            spip_log('eliminer 1','selection');
22                $where=array(
23                    'id_selection_objet='.$id_selection_objet,
24                    );
25                                           
26                sql_delete("spip_selection_objets",$where);
27                       
28                // on vérifie l'ordre des objets déjà enregistrés et on corrige si beselection_objetin
29                   
30                $where = array(
31                    'id_objet_dest='.$id_objet_dest,
32                    'objet_dest='.sql_quote($objet_dest),
33                    'lang='.sql_quote($lang)   
34                    );
35                   
36                $ordre=$verifier_ordre($where); 
37               
38            break;
39           
40        case 'remonter_ordre':
41            $where = array(             
42            'lang="'.$lang.'"',
43            'objet_dest="'.$objet_dest.'"',
44            'id_objet_dest="'.$id_objet_dest.'"', 
45            'ordre<="'.$ordre.'"',                           
46                );
47       
48            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre DESC",2);
49           
50            while ($row = sql_fetch($result)) {
51                if($id_selection_objet==$row["id_selection_objet"]){
52                    $o =$ordre-1;
53                }
54                else{
55                    $o =$ordre;
56                }
57            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']); 
58            }
59                 $where = array(
60                    'id_objet_dest='.$id_objet_dest,
61                    'objet_dest='.sql_quote($objet_dest),
62                    'lang='.sql_quote($lang)   
63                    );           
64        $ordre=$verifier_ordre($where);     
65            break;
66           
67        case 'descendre_ordre': 
68            $where = array(             
69            'lang="'.$lang.'"',
70            'objet_dest="'.$objet_dest.'"',
71            'id_objet_dest="'.$id_objet_dest.'"', 
72            'ordre>="'.$ordre.'"',                           
73                );
74
75            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre",2);
76           
77            while ($row = sql_fetch($result)) {
78                if($id_selection_objet==$row["id_selection_objet"]){
79                    $o =$ordre+1;
80                }
81                else{
82                    $o =$ordre;
83                }
84            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']); 
85            }
86            $where = array(
87                'id_objet_dest='.$id_objet_dest,
88                'objet_dest='.sql_quote($objet_dest),
89                'lang='.sql_quote($lang)   
90                );           
91            $ordre=$verifier_ordre($where); 
92            break;
93        //drag&drop
94        case 'nouvel_ordre':
95            $nouvel_ordre=explode(',',_request('nouvel_ordre'));
96            $ordre=0;
97            foreach($nouvel_ordre AS $id_selection_objet){
98                $ordre++;
99                sql_updateq("spip_selection_objets", array("ordre" => $ordre),'id_selection_objet='.$id_selection_objet);
100                include_spip('inc/invalideur');
101                suivre_invalideur("id='selection_objet/$id_selection_objet'");   
102            }
103            break;
104        }
105
106    if($load){
107        include_spip('public/assembler');
108        $cont=calculer_contexte();
109        $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang,'id'=>$id);
110        $contexte=array_merge($cont,$contexte);
111        echo recuperer_fond($load,$contexte);
112    } 
113return $return;
114}
115
116?>
Note: See TracBrowser for help on using the repository browser.