source: spip-zone/_plugins_/selection_objets/trunk/recherche_objet_fonctions.php @ 94524

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

les modifications de @marcimat rendent le plugin effectivement inutilisable, retour en arrièrre

File size: 1.9 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION'))
4        return;
5
6/*Fournit un tableau avec id_objet=>donnees_objet*/
7
8function tableau_recherche_objet($objet, $exclus, $lang = '') {
9        include_spip('inc/pipelines_ecrire');
10        //Les tables non conforme, faudrait inclure une pipeline
11        $exceptions = charger_fonction('exceptions', 'inc');
12        $exception_objet = $exceptions();
13        if (!$champ_titre = $exception_objet['titre'][$objet])
14                $champ_titre = 'titre';
15
16        $ancien_objet = $objet;
17        $e = trouver_objet_exec($objet);
18        $objet = $e['type'];
19        $id_table_objet = $e['id_table_objet'];
20        if (!$objet) {
21                $objet = $ancien_objet;
22                $id_table_objet = 'id_' . $objet;
23        }
24        $table = table_objet_sql($objet);
25
26        $tables = lister_tables_objets_sql();
27
28        $traduction_nom_objet = _T($tables[$table]['texte_objet']);
29
30        $where = array($champ_titre . ' LIKE ' . sql_quote('%' . _request('term') . '%'));
31        if ($objet == 'document') {
32                $where = array($champ_titre . ' LIKE ' . sql_quote('%' . _request('term') . '%') . ' OR fichier LIKE' . sql_quote('%' . _request('term') . '%'));
33                $champ_titre = 'titre,fichier';
34        }
35
36        if (isset($tables[$table_dest]['statut'][0]['publie']))
37                $statut = $tables[$table_dest]['statut'][0]['publie'];
38        $exceptions_statut = array(
39                'rubrique',
40                'document'
41        );
42        if ($statut AND !in_array($objet, $exceptions_statut))
43                $where[] = 'statut=' . sql_quote($statut);
44        if ($objet == 'auteur')
45                $where[] = 'statut !=' . sql_quote('5poubelle');
46        if (isset($tables[$table_dest]['field']['lang']) AND $lang)
47                $where[] = 'lang IN ("' . implode('","', $lang) . '")';
48        $d = info_objet($objet, '', $champ_titre . ',' . $id_table_objet, $where);
49
50        $data = array();
51        if (is_array($d)) {
52                foreach ($d as $r) {
53                        if (!$r['titre'])
54                                $r['titre'] = titre_objet_sel($objet, $r);
55                        if (!isset($exclus[$r[$id_table_objet] . '-' . $objet]))
56                                $data[] = array(
57                                        'label' => $r[titre] . ' (' . $traduction_nom_objet . ')',
58                                        'value' => $r[$id_table_objet] . '-' . $objet
59                                );
60                }
61        }
62        return $data;
63}
64?>
Note: See TracBrowser for help on using the repository browser.