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

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

langue par défaut, aum lieu de celle du contexte

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