source: spip-zone/_plugins_/selection_d_objets/trunk/recherche_objet_fonctions.php @ 69181

Last change on this file since 69181 was 69181, checked in by abelass@…, 7 years ago
  • dans le moteur de recherche ne pas proposer les objets déjà sélectionnés
  • établir la bonnelangue du contexte
File size: 1.7 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) return;
4
5
6/*Fournit un tableau avec id_objet=>donnees_objet*/
7
8function tableau_recherche_objet($objet,$exclus,$lang){
9    //Les tables non conforme, faudrait inclure une pipeline
10    $exceptions=charger_fonction('exceptions','inc');
11    $exception_objet=$exceptions();
12    if(!$champ_titre=$exception_objet['titre'][$objet]) $champ_titre='titre';
13   
14       
15    if($exception_objet[$objet]){
16         $objet=$exception_objet[$objet];
17         $table_dest='spip_'.$objet;
18    }
19    else $table_dest='spip_'.$objet.'s';
20   
21    $tables=lister_tables_objets_sql();
22
23
24    $where_titre=$champ_titre.' LIKE '.sql_quote('%'._request('term').'%');
25   
26  if(isset($tables[$table_dest]['statut'][0]['publie']))$statut=$tables[$table_dest]['statut'][0]['publie'];
27
28   if($statut AND $objet !='rubrique')  $where_statut=' AND statut='.sql_quote($statut);
29   if($objet=='auteur') $where_statut=' AND statut !='.sql_quote('5poubelle');
30    if(isset($tables[$table_dest]['field']['lang'])) $where_lang=' AND lang IN ("'.implode('","',$lang).'")';
31
32    $d=info_objet($objet,'',$champ_titre.',id_'.$objet,$where_titre.$where_statut.$where_lang);
33   
34    if($exception_objet[$objet]){
35         $objet=$exception_objet[$objet];
36    }
37    $data=array();
38    if(is_array($d)){
39        foreach($d as $r){
40            if(!isset($r['titre'])){
41                $r['titre']=$r['nom']?$r['nom']:($r['nom_site']?$r['nom_site']:'objet'.$r['id_'.$objet]);
42                if($r['nom'])unset($r['nom']);
43                if($r['nom_site'])unset($r['nom_site']);
44            }
45            if(!isset($exclus[$r['id_'.$objet].'-'.$objet]))$data[]=array('label'=>$r[titre].' ('.$objet.')','value'=>$r['id_'.$objet].'-'.$objet);
46        }
47    }
48    return $data;
49}
50
51?>
Note: See TracBrowser for help on using the repository browser.