source: spip-zone/_plugins_/liaison_objet/trunk/liaison_objet_pipelines.php @ 107932

Last change on this file since 107932 was 107932, checked in by abelass@…, 18 months ago

Migration configurations

  • bonne variable
  • migrer aussi les champs qui changent de nom
  • non de variable plus cohérente
  • autoincrement

adaptation chaines de langue
lien correct stylesheet
corriger oublis/error de renommage
un pue de formatage du code

File size: 5.4 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION"))
4        return;
5
6function liaison_objet_header_prive($flux) {
7        $flux .= '<link rel="stylesheet" href="' . _DIR_PLUGIN_LIAISON_OBJET . 'css/lo_admin.css" type="text/css" media="all" />';
8        return $flux;
9}
10
11function liaison_objet_affiche_gauche($flux) {
12        include_spip('inc/config');
13        $exec = $flux["args"]["exec"];
14
15        $args = $flux['args'];
16
17        $objets_liaison = lire_config('liaison_objet/objets_liaison', array());
18
19        if (in_array($exec, $objets_liaison)) {
20                $e = trouver_objet_exec($exec);
21                $objet = $e['type'];
22                $id_table_objet = $e['id_table_objet'];
23                if (!$objet) {
24                        $objet = $exec;
25                        $id_table_objet = 'id_' . objet;
26                }
27                $table = table_objet_sql($objet);
28                $contexte['id_objet'] = $flux["args"][$id_table_objet] ? $flux["args"][$id_table_objet] : _request($id_table_objet);
29                $contexte['objet'] = $objet;
30                $objets_cibles = lire_config('liaison_objet/objets_cible', array());
31
32                $contexte['langue'] = array($args['lang']);
33                if ($objet == 'rubrique' OR $objet == 'article') {
34                        $contexte['langue'] = sql_getfetsel('lang', $table, $id_table_objet . '=' . $contexte['id_objet']);
35                }
36                if ($objet == 'rubrique') {
37                        if (!$trad_rub = test_plugin_actif('tradrub'))
38                                $contexte['langue'] = lire_config('langues_multilingue');
39                        elseif (!$contexte['langue']) {
40                                if (!$trad_rub = test_plugin_actif('tradrub'))
41                                        $contexte['langue'] = lire_config('langues_multilingue');
42                        }
43                }
44                $contexte['objets_cibles'] = $objets_cibles;
45                $flux["data"] .= recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
46        }
47
48        return $flux;
49}
50
51function liaison_objet_affiche_milieu($flux = "") {
52        include_spip('inc/config');
53        $exec = $flux["args"]["exec"];
54        //Exception pour les documents
55        if ($exec == 'document_edit')
56                $exec = 'document';
57        $objets_cibles = lire_config('liaison_objet/objets_cible', array());
58
59        if (in_array($exec, $objets_cibles)) {
60                $e = trouver_objet_exec($exec);
61                $objet = $e['type'];
62                $id_table_objet = $e['id_table_objet'];
63                if (!$objet) {
64                        $objet = $exec;
65                        $id_table_objet = 'id_' . objet;
66                }
67
68                $table = table_objet_sql($objet);
69                $args = $flux["args"];
70
71                $tables = lister_tables_objets_sql();
72
73                $id_objet = $args['id_' . $objet];
74                if ($objet == 'site')
75                        $id_objet = $args['id_syndic'];
76                $data = $flux["data"];
77                $special = array(
78                        'article',
79                        'rubrique'
80                );
81                if (in_array($objet, $special)) {
82                        $choisies = picker_selected(lire_config('liaison_objet/liaison_' . $objet . '_dest', array()), $objet);
83                }
84                else {
85                        $choisies = lire_config('liaison_objet/liaison_' . $objet . '_dest', array());
86                }
87                if (in_array($id_objet, $choisies) OR !$choisies) {
88                        $contexte = array(
89                                'id_objet_dest' => $id_objet,
90                                'objet_dest' => $objet
91                        );
92
93                        $contexte['langue'] = array($args['lang']);
94
95                        if ($tables[$table]['field']['lang']) {
96                                $contexte['langue'] = array(sql_getfetsel('lang', $table, 'id_' . $objet . '=' . $id_objet));
97                        }
98                        elseif ($objet == 'document') {
99                                $contexte['langue'] = array();
100                        }
101                        if ($objet == 'rubrique') {
102                                if (!$trad_rub = test_plugin_actif('tradrub')) {
103                                        if ($langues_multilingue = lire_config('langues_multilingue')) {
104                                                $contexte['langue'] = explode(',', lire_config('langues_multilingue'));
105                                        }
106                                        else {
107                                                $contexte['langue'] = array($args['lang']);
108                                        }
109                                }
110                        }
111                        if ($objet == 'auteur') {
112                                $contexte['langue'] = '';
113                        }
114
115                        $flux["data"] .= recuperer_fond('prive/objets/liste/liaison_interface', $contexte);
116                }
117        }
118        return $flux;
119}
120
121function liaison_objet_formulaire_charger($flux) {
122        $form = $flux['args']['form'];
123        if ($form == 'configurer_liaison_objet') {
124                //emprunté de a2a  preparé les type_liens pour le formulaire
125                include_spip('inc/config');
126                if (!$cfg['type_liens'] = _request('type_liens')) {
127                        $types_lien = lire_config('liaison_objet/type_liens', array());
128                        $flux['data']['type_liens'] = '';
129                        foreach ($types_lien as $key => $value) {
130                                if ($key)
131                                        $flux['data']['type_liens'] .= "$key,$value\n";
132                        }
133
134                }
135
136                //également les  type_liens_OBJET
137
138                $objets_cibles = lire_config('liaison_objet/objets_cible', array());
139
140                foreach ($objets_cibles as $objet) {
141                        if ($types_lien = lire_config('liaison_objet/type_liens_' . $objet)) {
142                                $flux['data']['type_liens_' . $objet] = '';
143                                foreach ($types_lien as $key => $value) {
144                                        if ($key)
145                                                $flux['data']['type_liens_' . $objet] .= "$key,$value\n";
146                                }
147                        }
148
149                }
150        }
151        return $flux;
152}
153
154function liaison_objet_formulaire_traiter($flux) {
155        // intervenir sur la configuration du plugin
156        $form = $flux['args']['form'];
157        if ($form == 'configurer_liaison_objet') {
158                include_spip('inc/config');
159                $cfg = lire_config('liaison_objet');
160                $cfg['type_liens'] = types_liaisons2array(_request('type_liens'));
161
162                if (!$objets_cibles = $cfg['objets_cible'])
163                        $objets_cibles = array();
164
165                foreach ($objets_cibles as $objet) {
166                        if (_request('type_liens_' . $objet))
167                                $cfg['type_liens_' . $objet] = types_liaisons2array(_request('type_liens_' . $objet));
168                }
169
170                ecrire_config('liaison_objet', $cfg);
171        }
172        return $flux;
173}
174
175function liaison_objet_jqueryui_plugins($scripts) {
176        $scripts[] = 'jquery.ui.autocomplete';
177        $scripts[] = "jquery.ui.widget";
178        $scripts[] = "jquery.ui.mouse";
179        $scripts[] = "jquery.ui.sortable";
180        return $scripts;
181}
182
183function types_liaisons2array($type) {
184        $tableau = array();
185        $lignes = explode("\n", $type);
186        foreach ($lignes as $l) {
187                $donnees = explode(',', $l);
188                if ($donnees[1])
189                        $tableau[trim($donnees[0])] = trim($donnees[1]);
190                else
191                        $tableau[trim($donnees[0])] = '';
192        }
193
194        return $tableau;
195}
196?>
Note: See TracBrowser for help on using the repository browser.