source: spip-zone/_plugins_/liaison_objet/trunk/recherche_objet_fonctions.php @ 112713

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

affichage de la date pour les événements

File size: 2.2 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
14        $champ_date = '';
15        if (!$champ_titre = $exception_objet['titre'][$objet]) {
16                $champ_titre = 'titre';
17        }
18
19
20        $ancien_objet = $objet;
21        $e = trouver_objet_exec($objet);
22        $objet = $e['type'];
23        $id_table_objet = $e['id_table_objet'];
24        if (!$objet) {
25                $objet = $ancien_objet;
26                $id_table_objet = 'id_' . $objet;
27        }
28        $table = table_objet_sql($objet);
29
30        $tables = lister_tables_objets_sql();
31
32        $traduction_nom_objet = _T($tables[$table]['texte_objet']);
33
34        $where = array($champ_titre . ' LIKE ' . sql_quote('%' . _request('term') . '%'));
35        if ($objet == 'document') {
36                $where = array($champ_titre . ' LIKE ' . sql_quote('%' . _request('term') . '%') . ' OR fichier LIKE' . sql_quote('%' . _request('term') . '%'));
37                $champ_titre = 'titre,fichier';
38        }
39
40        if (isset($tables[$table]['statut'][0]['publie']))
41                $statut = $tables[$table]['statut'][0]['publie'];
42        $exceptions_statut = array(
43                'rubrique',
44                'document'
45        );
46        if ($statut AND !in_array($objet, $exceptions_statut))
47                $where[] = 'statut=' . sql_quote($statut);
48        if ($objet == 'auteur')
49                $where[] = 'statut !=' . sql_quote('5poubelle');
50                if (isset($tables[$table]['field']['lang']) AND $lang)
51                $where[] = 'lang IN ("' . implode('","', $lang) . '")';
52
53                if ($objet == 'evenement') {
54                        $champ_date = 'date_debut,date_fin,horaire,';
55                }
56                $d = info_objet($objet, '', $champ_date . $champ_titre . ',' . $id_table_objet, $where);
57
58        $data = array();
59        if (is_array($d)) {
60                foreach ($d as $r) {
61                        $date = '';
62                        if ($objet == 'evenement') {
63                                $date = '(' . agenda_affdate_debut_fin($r['date_debut'], $r['date_fin'], $r['horaire']) . ')';
64                        }
65                        if (!$r['titre']) {
66                                $r['titre'] = titre_objet_sel($objet, $r);
67                        }
68                        if (!isset($exclus[$r[$id_table_objet] . '-' . $objet])) {
69                                $data[] = array(
70                                        'label' => $r[titre] . ' (' . $traduction_nom_objet . ')' . $date,
71                                        'value' => $r[$id_table_objet] . '-' . $objet
72                                );
73                        }
74
75                }
76        }
77        return $data;
78}
79
Note: See TracBrowser for help on using the repository browser.