source: spip-zone/_plugins_/selection_d_objets/trunk/selection_objet_pipelines.php @ 69176

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

Ajout de drag and drop pour le rangement de liste

File size: 5.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function selection_objet_affiche_gauche($flux) {
6    include_spip('inc/config');
7    $objet = $flux["args"]["exec"];
8    $args=$flux['args'];
9   
10    $objets_selection=lire_config('selection_objet/selection_rubrique_objet',array());
11    $exceptions=charger_fonction('exceptions','inc');
12    $exception_objet=$exceptions('objet');
13    if($exception_objet[$objet]){
14         $objet=$exception_objet[$objet];
15         $table='spip_'.$objet;
16        }
17    else $table='spip_'.$objet.'s';
18   
19    $contexte['id_objet']=$flux["args"]['id_'.$objet]?$flux["args"]['id_'.$objet]:_request('id_'.$objet); 
20
21    if(in_array($objet,$objets_selection)){
22        $contexte['objet']=$objet;
23        $objets_cibles=lire_config('selection_objet/objets_cible',array());
24        if($objet=='rubrique' OR $objet=='article'){
25            $contexte['langue']=sql_getfetsel('lang',$table,'id_'.$objet.'='.$contexte['id_objet']);
26            $contexte['lang'] = $contexte['langue'];
27            }
28        if($objet=='rubrique'){
29            if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
30            elseif(!$contexte['langue']){
31                if(!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
32                } 
33            }
34        $contexte['objet_dest']=$objet_dest;
35        $contexte['objets_cibles']=$objets_cibles;               
36        $flux["data"].= recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
37        }
38     
39    return $flux;
40}
41
42function selection_objet_affiche_milieu ($flux="") {
43    include_spip('inc/config');
44    $objet = $flux["args"]["exec"];
45    $args=$flux["args"];
46    $objets_cibles=lire_config('selection_objet/objets_cible',array());
47
48    if(in_array($objet,$objets_cibles)){
49        //Les tables non conforme
50        $exceptions=charger_fonction('exceptions','inc');
51        $exception_objet=$exceptions('objet');
52        if($exception_objet[$objet]){
53             $objet=$exception_objet[$objet];
54            }       
55        $id_objet=$args['id_'.$objet];
56        $data = $flux["data"];
57        $special=array('article','rubrique');
58        if(in_array($objet,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet.'_dest',array()),$objet);
59        else $choisies=lire_config('selection_objet/selection_'.$objet.'_dest',array());
60       
61        if(in_array($id_objet,$choisies)){
62           $contexte = array('id_objet_dest'=>$id_objet,'objet_dest'=>$objet);
63           $flux["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
64            }
65        }
66        return $flux;
67    }
68
69function selection_objet_formulaire_charger($flux){
70    $form=$flux['args']['form'];
71    if($form == 'configurer_selection_objet'){
72 //emprunté de a2a  preparé les type_liens pour le formulaire     
73    include_spip('inc/config');
74    if(!$cfg['type_liens']=_request('type_liens')){
75        $types_lien=lire_config('selection_objet/type_liens',array());
76            $flux['data']['type_liens']='';
77            foreach ($types_lien as $key => $value) {
78                if($key)$flux['data']['type_liens'].="$key,$value\n";
79            }
80       
81    }
82
83    //également les  type_liens_OBJET   
84 
85    $objets_cibles=lire_config('selection_objet/objets_cible',array());
86   
87    foreach($objets_cibles as $objet){
88        if($types_lien=lire_config('selection_objet/type_liens_'.objet)){
89            $flux['data']['type_liens_'.$objet]='';
90            foreach ($types_lien as $key => $value) {
91                if($key)$flux['data']['type_liens_'.$objet].="$key,$value\n";
92                }
93            }
94           
95        }
96    }
97    return $flux;   
98}
99
100
101function selection_objet_formulaire_traiter($flux){
102    // Si on est sur le formulaire client qui est sur la page identification
103    $form=$flux['args']['form'];
104    if($form == 'configurer_selection_objet'){
105         include_spip('inc/config');
106        $cfg=lire_config('selection_objet');
107        $cfg['type_liens']  = types_liaisons2array(_request('type_liens'));
108       
109    if(!$objets_cibles=$cfg['objets_cible'])$objets_cibles=array();
110   
111    foreach($objets_cibles as $objet){
112        if(_request('type_liens_'.$objet))$cfg['type_liens_'.$objet]  = types_liaisons2array(_request('type_liens_'.$objet));
113        }
114       
115    ecrire_config('selection_objet',$cfg);
116    }
117    return $flux;
118}
119
120function selection_objet_jqueryui_plugins($scripts){
121   $scripts[] = 'jquery.ui.autocomplete';
122   $scripts[] = "jquery.ui.widget";
123   $scripts[] = "jquery.ui.mouse";
124   $scripts[] = "jquery.ui.sortable";
125   return $scripts;
126}
127
128function types_liaisons2array($type){
129    $tableau    = array();
130    $lignes     = explode("\n",$type);
131    foreach ($lignes as $l){
132        $donnees= explode(',',$l);
133        if ($donnees[1])
134            $tableau[trim($donnees[0])] = trim ($donnees[1]);
135        else
136            $tableau[trim($donnees[0])] = '';
137    }
138
139    return $tableau;
140}
141?>
Note: See TracBrowser for help on using the repository browser.