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

Last change on this file since 70193 was 70193, checked in by abelass@…, 7 years ago
  • ne pas confondre la langue del l'objet de destination avec celle de l'environnement
  • ne pas tenir compte de langue de la rubrique si la rubrique n'est pas traduite
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          $table_dest='spip_'.$objet_dest;
25    }
26    else $table_dest='spip_'.$objet_dest.'s';
27   
28    if($exception_objet[$objet]){
29         $objet=$exception_objet[$objet];
30        }
31   
32    // Les information des objets destinataires
33    $tables=lister_tables_objets_sql();
34    $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
35   
36    //Préparer la requette
37    $where=array();
38    if(isset($tables[$table_dest]['statut'][0]['publie']))$statut=$tables[$table_dest]['statut'][0]['publie'];
39    if($statut AND $objet_dest !='rubrique')  $where[]='statut='.sql_quote($statut);
40    if($objet=='auteur') $where[]='statut !='.sql_quote('5poubelle');
41    if($choisies)$where[]='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
42    if($tables[$table_dest]['field']['lang'] and $lang){
43        if($objet_dest!='rubrique')$where[l]='lang IN ('.sql_quote($lang).')';
44        elseif(test_plugin_actif('tradrub'))$where[l]='lang IN ('.sql_quote($lang).')';
45        }
46    $objets_choisies=tableau_objet($objet_dest_original,'','*',$where,array('titre','id_'.$objet_dest,true));
47   
48    //Les types liens pour l'objet concerné
49    if(!$types=lire_config('selection_objet/type_liens_'.$objet_dest_original,array()))$types=lire_config('selection_objet/type_liens',array());
50   
51   
52    $types_lien=array();
53    foreach($types as $cle => $valeur){
54        if($valeur)$types_lien[$cle]=_T($valeur);
55        }
56    $valeurs = array(
57        "id_objet"      => $id_objet,
58        "objet" => $objet,     
59        "langue"        => $langue,     
60        "objet_dest"=>$objet_dest,
61        "id_objet_dest"=>$id_objet_dest,
62        "table_dest"=>$table_dest,     
63        "titre_objet_dest"=>$titre_objet_dest,
64        'objets_choisies'=>$objets_choisies,
65        'types_lien' =>$types_lien,                             
66        );
67       
68    $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
69    $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
70    $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
71    $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
72
73    return $valeurs;
74}
75
76/* @annotation: Actualisation de la base de donnée */
77function formulaires_bouton_objet_traiter_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique'){
78    $valeurs=array();
79    $id_objet_dest=_request('id_objet_dest');
80    $instituer_objet=charger_fonction('instituer_objet_selectionne','action/');
81    $objet_dest=_request('objet_dest');
82    $type_lien=_request('type_lien');
83
84
85    $id_selection_objet=$instituer_objet($id_objet.'-'.$objet.'-'.$langue.'-'.$lang.'-'.$objet_dest.'-'.$id_objet_dest.'-'.$type_lien);
86
87        if($id_selection_objet)$valeurs['message_ok']='ok';
88
89return $valeurs;
90       
91}
92?>
Note: See TracBrowser for help on using the repository browser.