source: spip-zone/_plugins_/selection_objets/trunk/formulaires/bouton_objet.php @ 112710

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

format

File size: 3.4 KB
Line 
1<?php
2if (! defined("_ECRIRE_INC_VERSION"))
3        return;
4
5function formulaires_bouton_objet_charger_dist($id_objet, $objet, $langue,
6                $lang = '', $objet_dest = 'rubrique') {
7        include_spip('inc/config');
8        include_spip('inc/presentation');
9        include_spip('inc/layer');
10
11        // Les objets destinataires choisies
12        $special = array(
13                'article',
14                'rubrique'
15        );
16        if (in_array($objet_dest, $special))
17                $choisies = picker_selected(
18                                lire_config('selection_objet/selection_' . $objet_dest . '_dest',
19                                                array()), $objet_dest);
20        else
21                $choisies = lire_config(
22                                'selection_objet/selection_' . $objet_dest . '_dest', array());
23
24        $lang = $langue ? explode(',', $langue) : '';
25
26        // On garde l'objet original pour la détection des données de l'objet
27        $objet_dest_original = $objet_dest;
28
29        $e = trouver_objet_exec($objet_dest);
30
31        $objet_dest = $e['type'] ? $e['type'] : $objet_dest;
32
33        // Les information des objets destinataires
34        $table_dest = table_objet_sql($objet_dest);
35        $tables = lister_tables_objets_sql();
36        $titre_objet_dest = _T($tables[$table_dest]['texte_objet']);
37
38        // Préparer la requette
39        $where = array();
40        if (isset($tables[$table_dest]['statut'][0]['publie']))
41                $statut = $tables[$table_dest]['statut'][0]['publie'];
42        if ($objet == 'auteur')
43                $where[] = 'statut !=' . sql_quote('5poubelle');
44        elseif ($statut and $objet_dest != 'rubrique')
45                $where[] = 'statut=' . sql_quote($statut);
46        if ($choisies)
47                $where[] = 'id_' . $objet_dest . ' IN (' . implode(',', $choisies) . ')';
48        if ($tables[$table_dest]['field']['lang'] and $lang) {
49                if ($objet_dest != 'rubrique')
50                        $where[] = 'lang IN (' . sql_quote($lang) . ')';
51                elseif (test_plugin_actif('tradrub'))
52                        $where[] = 'lang IN (' . sql_quote($lang) . ')';
53        }
54
55        $objets_choisies = tableau_objet($objet_dest_original, '', '*', $where);
56
57        // Les types liens pour l'objet concerné
58        if (! $types = lire_config(
59                        'selection_objet/type_liens_' . $objet_dest_original, array()))
60                $types = lire_config('selection_objet/type_liens', array());
61
62        $types_lien = array();
63        foreach ($types as $cle => $valeur) {
64                if ($valeur)
65                        $types_lien[$cle] = _T($valeur);
66        }
67
68        $valeurs = array(
69                "id_objet" => $id_objet,
70                "objet" => $objet,
71                "langue" => $langue,
72                "objet_dest" => $objet_dest,
73                "objet_dest_original" => $objet_dest_original,
74                "id_objet_dest" => $id_objet_dest,
75                "table_dest" => $table_dest,
76                "titre_objet_dest" => $titre_objet_dest,
77                'objets_choisies' => $objets_choisies,
78                'types_lien' => $types_lien
79        );
80
81        $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
82        $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
83        $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
84        $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
85
86        return $valeurs;
87}
88
89/* @annotation: Actualisation de la base de donnée */
90function formulaires_bouton_objet_traiter_dist($id_objet, $objet, $langue,
91                $lang = '', $objet_dest = 'rubrique') {
92        $valeurs = array();
93        $id_objet_dest = _request('id_objet_dest');
94        $instituer_objet = charger_fonction('instituer_objet_selectionne', 'action/');
95        $objet_dest = _request('objet_dest');
96        $type_lien = _request('type_lien');
97
98        $id_selection_objet = $instituer_objet(
99                        $id_objet . '-' . $objet . '-' . $langue . '-' . $lang . '-' .
100                        $objet_dest . '-' . $id_objet_dest . '-' . $type_lien);
101
102        if ($id_selection_objet)
103                $valeurs['message_ok'] = 'ok';
104
105        return $valeurs;
106}
107?>
Note: See TracBrowser for help on using the repository browser.