source: spip-zone/_plugins_/selection_d_objets/trunk/formulaires/bouton_objet.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: 3.2 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function formulaires_bouton_objet_charger_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique') {
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        );
59       
60    $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
61    $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
62    $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
63    $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
64
65    return $valeurs;
66}
67
68/* @annotation: Actualisation de la base de donnée */
69function formulaires_bouton_objet_traiter_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique'){
70
71    $valeurs=array();
72    $id_objet_dest=_request('id_objet_dest');
73    $instituer_objet=charger_fonction('instituer_objet_selectionne','action/');
74    $objet_dest=_request('objet_dest');
75    $type_lien=_request('type_lien');
76
77
78    $id_selection_objet=$instituer_objet($id_objet.'-'.$objet.'-'.$langue.'-'.$lang.'-'.$objet_dest.'-'.$id_objet_dest.'-'.$type_lien);
79
80        if($id_selection_objet)$valeurs['message_ok']='ok';
81
82return $valeurs;
83       
84}
85?>
Note: See TracBrowser for help on using the repository browser.