source: spip-zone/_plugins_/selection_d_objets/trunk/formulaires/recherche_objets.php @ 69154

Last change on this file since 69154 was 69154, checked in by abelass@…, 7 years ago
  • permettre d'ajouter un objet depuis la liste des objets sélectionnées
  • recherche autocomplete sur tous les objets actifs
File size: 3.2 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function formulaires_recherche_objets_charger_dist($objet_dest='rubrique',$id_objet_dest,$lang='') {
6    include_spip('inc/config');
7    //Les objets destinataires choisies
8     $special=array('article','rubrique');
9     if(in_array($objet_dest,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet_dest.'_dest',array()),$objet_dest);
10     else $choisies=lire_config('selection_objet/selection_'.$objet_dest.'_dest',array());
11   
12    $lang=$langue?explode(',',$langue):'';
13   
14    //Quelques objets ne sont pas conforme, on adapte
15    $exceptions=charger_fonction('exceptions','inc');
16    $exception_objet=$exceptions('objet');
17   
18    //On grade l'objet original pour la détection des données de l'objet
19    $objet_dest_original=$objet_dest;
20   
21    if($exception_objet[$objet_dest]){
22         $objet_dest=$exception_objet[$objet_dest];
23          $table_dest='spip_'.$objet_dest;
24    }
25    else $table_dest='spip_'.$objet_dest.'s';
26   
27    if($exception_objet[$objet]){
28         $objet=$exception_objet[$objet];
29        }
30   
31    // Les information des objets destinataires
32    $tables=lister_tables_objets_sql();
33    $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
34    $where='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
35    $where_lang='';
36    if($tables[$table_dest]['field']['lang'] and $lang)$where_lang=' AND lang IN ('.sql_quote($lang).')';
37
38    if($choisies)$objets_choisies=tableau_objet($objet_dest_original,'','*',$where.$where_lang,array('titre','id_'.$objet_dest,true));
39   
40    //Les types liens pour l'objet concerné
41    if(!$types=lire_config('selection_objet/type_liens_'.$objet_dest_original,array()))$types=lire_config('selection_objet/type_liens',array());
42   
43   
44    $types_lien=array();
45    foreach($types as $cle => $valeur){
46        $types_lien[$cle]=_T($valeur);
47        }
48    $valeurs = array(
49        "id_objet"      => $id_objet,
50        "objet" => $objet,     
51        "langue"        => $langue,     
52        "objet_dest"=>$objet_dest,
53        "id_objet_dest"=>$id_objet_dest,
54        "table_dest"=>$table_dest,     
55        "titre_objet_dest"=>$titre_objet_dest,
56        'objets_choisies'=>$objets_choisies,
57        'types_lien' =>$types_lien, 
58        'objet_sel' =>'',                               
59        );
60       
61    $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
62    $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
63    $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
64    $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
65
66
67
68    return $valeurs;
69}
70
71
72
73/* @annotation: Actualisation de la base de donnée */
74function formulaires_recherche_objets_traiter_dist($objet_dest='rubrique',$id_objet_dest,$lang=''){
75    $type_lien=_request('type_lien');   
76       
77    $instituer_objet=charger_fonction('instituer_objet_selectionne','action/');
78   
79    list($id_objet,$objet)=explode('-',_request('objet_sel'));
80   
81    $id_selection_objet=$instituer_objet($id_objet.'-'.$objet.'-'.$langue.'-'.$lang.'-'.$objet_dest.'-'.$id_objet_dest.'-'.$type_lien);
82   
83    if($id_selection_objet)$valeurs['message_ok']='ok';
84
85return $valeurs;
86       
87}
88?>
Note: See TracBrowser for help on using the repository browser.