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

Last change on this file since 69181 was 69181, checked in by abelass@…, 7 years ago
  • dans le moteur de recherche ne pas proposer les objets déjà sélectionnés
  • établir la bonnelangue du contexte
File size: 5.4 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             $table='spip_'.$objet;
55            } 
56       else $table='spip_'.$objet.'s';   
57               
58        $id_objet=$args['id_'.$objet];
59        $data = $flux["data"];
60        $special=array('article','rubrique');
61        if(in_array($objet,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet.'_dest',array()),$objet);
62        else $choisies=lire_config('selection_objet/selection_'.$objet.'_dest',array());
63       
64        if(in_array($id_objet,$choisies)){
65           $contexte = array('id_objet_dest'=>$id_objet,'objet_dest'=>$objet);
66            $contexte['langue']=array(sql_getfetsel('lang',$table,'id_'.$objet.'='.$id_objet));
67           
68        if($objet=='rubrique'){
69            if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
70            elseif(!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
71               
72            }           
73           $flux["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
74            }
75        }
76        return $flux;
77    }
78
79function selection_objet_formulaire_charger($flux){
80    $form=$flux['args']['form'];
81    if($form == 'configurer_selection_objet'){
82 //emprunté de a2a  preparé les type_liens pour le formulaire     
83    include_spip('inc/config');
84    if(!$cfg['type_liens']=_request('type_liens')){
85        $types_lien=lire_config('selection_objet/type_liens',array());
86            $flux['data']['type_liens']='';
87            foreach ($types_lien as $key => $value) {
88                if($key)$flux['data']['type_liens'].="$key,$value\n";
89            }
90       
91    }
92
93    //également les  type_liens_OBJET   
94 
95    $objets_cibles=lire_config('selection_objet/objets_cible',array());
96   
97    foreach($objets_cibles as $objet){
98        if($types_lien=lire_config('selection_objet/type_liens_'.objet)){
99            $flux['data']['type_liens_'.$objet]='';
100            foreach ($types_lien as $key => $value) {
101                if($key)$flux['data']['type_liens_'.$objet].="$key,$value\n";
102                }
103            }
104           
105        }
106    }
107    return $flux;   
108}
109
110
111function selection_objet_formulaire_traiter($flux){
112    // Si on est sur le formulaire client qui est sur la page identification
113    $form=$flux['args']['form'];
114    if($form == 'configurer_selection_objet'){
115         include_spip('inc/config');
116        $cfg=lire_config('selection_objet');
117        $cfg['type_liens']  = types_liaisons2array(_request('type_liens'));
118       
119    if(!$objets_cibles=$cfg['objets_cible'])$objets_cibles=array();
120   
121    foreach($objets_cibles as $objet){
122        if(_request('type_liens_'.$objet))$cfg['type_liens_'.$objet]  = types_liaisons2array(_request('type_liens_'.$objet));
123        }
124       
125    ecrire_config('selection_objet',$cfg);
126    }
127    return $flux;
128}
129
130function selection_objet_jqueryui_plugins($scripts){
131   $scripts[] = 'jquery.ui.autocomplete';
132   $scripts[] = "jquery.ui.widget";
133   $scripts[] = "jquery.ui.mouse";
134   $scripts[] = "jquery.ui.sortable";
135   return $scripts;
136}
137
138function types_liaisons2array($type){
139    $tableau    = array();
140    $lignes     = explode("\n",$type);
141    foreach ($lignes as $l){
142        $donnees= explode(',',$l);
143        if ($donnees[1])
144            $tableau[trim($donnees[0])] = trim ($donnees[1]);
145        else
146            $tableau[trim($donnees[0])] = '';
147    }
148
149    return $tableau;
150}
151?>
Note: See TracBrowser for help on using the repository browser.