source: spip-zone/_plugins_/selection_d_objets/branches/1/formulaires/bouton_objet.php @ 70518

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

il faut prendre l'objet dest

File size: 3.6 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   
8    //Les objets destinataires choisies
9     $special=array('article','rubrique');
10     if(in_array($objet_dest,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet_dest.'_dest',array()),$objet_dest);
11     else $choisies=lire_config('selection_objet/selection_'.$objet_dest.'_dest',array());
12   
13    $lang=$langue?explode(',',$langue):'';
14   
15    //Quelques objets ne sont pas conforme, on adapte
16    $exceptions=charger_fonction('exceptions','inc');
17    $exception_objet=$exceptions('objet');
18   
19    //On grade l'objet original pour la détection des données de l'objet
20    $objet_dest_original=$objet_dest;
21   
22    if($exception_objet[$objet_dest]){
23         $objet_dest=$exception_objet[$objet_dest];
24    }
25   
26    if($exception_objet[$objet]){
27         $objet=$exception_objet[$objet];
28        }
29   
30    // Les information des objets destinataires
31    $table_dest = table_objet_sql($objet_dest);
32    $tables=lister_tables_objets_sql();
33    $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
34   
35    //Préparer la requette
36    $where=array();
37    if(isset($tables[$table_dest]['statut'][0]['publie']))$statut=$tables[$table_dest]['statut'][0]['publie'];
38    if($statut AND $objet_dest !='rubrique')  $where[]='statut='.sql_quote($statut);
39    if($objet=='auteur') $where[]='statut !='.sql_quote('5poubelle');
40    if($choisies)$where[]='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
41    if($tables[$table_dest]['field']['lang'] and $lang){
42        if($objet_dest!='rubrique')$where[l]='lang IN ('.sql_quote($lang).')';
43        elseif(test_plugin_actif('tradrub'))$where[l]='lang IN ('.sql_quote($lang).')';
44        }
45    $objets_choisies=tableau_objet($objet_dest_original,'','*',$where,array('titre','id_'.$objet_dest,true));
46   
47    //Les types liens pour l'objet concerné
48    if(!$types=lire_config('selection_objet/type_liens_'.$objet_dest_original,array()))$types=lire_config('selection_objet/type_liens',array());
49   
50   
51    $types_lien=array();
52    foreach($types as $cle => $valeur){
53        if($valeur)$types_lien[$cle]=_T($valeur);
54        }
55    $valeurs = array(
56        "id_objet"      => $id_objet,
57        "objet" => $objet,     
58        "langue"        => $langue,     
59        "objet_dest"=>$objet_dest,
60        "id_objet_dest"=>$id_objet_dest,
61        "table_dest"=>$table_dest,     
62        "titre_objet_dest"=>$titre_objet_dest,
63        'objets_choisies'=>$objets_choisies,
64        'types_lien' =>$types_lien,                             
65        );
66       
67    $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
68    $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
69    $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
70    $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
71
72    return $valeurs;
73}
74
75/* @annotation: Actualisation de la base de donnée */
76function formulaires_bouton_objet_traiter_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique'){
77    $valeurs=array();
78    $id_objet_dest=_request('id_objet_dest');
79    $instituer_objet=charger_fonction('instituer_objet_selectionne','action/');
80    $objet_dest=_request('objet_dest');
81    $type_lien=_request('type_lien');
82
83
84    $id_selection_objet=$instituer_objet($id_objet.'-'.$objet.'-'.$langue.'-'.$lang.'-'.$objet_dest.'-'.$id_objet_dest.'-'.$type_lien);
85
86        if($id_selection_objet)$valeurs['message_ok']='ok';
87
88return $valeurs;
89       
90}
91?>
Note: See TracBrowser for help on using the repository browser.