[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / tradrub / formulaires / definir_traduction.php
1 <?php
2 /**
3 * Plugin tradrub
4 * Licence GPL (c) 2008-2010 Stephane Laurent (Bill), Matthieu Marcillaud
5 *
6 */
7
8 function formulaires_definir_traduction_charger_dist($objet, $id_objet=0) {
9 // pas d'element, pas de traduction
10 if (!$objet or !($id_objet = intval($id_objet))) {
11 return false;
12 }
13
14 $table = table_objet_sql($objet);
15 $_id_objet = id_table_objet($objet);
16 $id_trad = sql_getfetsel('id_trad', $table, "$_id_objet = ". sql_quote($id_objet));
17
18 $env = array(
19 'objet' => $objet,
20 'table' => $table,
21 '_id_objet' => $_id_objet,
22 'id_objet' => $id_objet,
23 'id_trad' => $id_trad,
24 );
25
26 if ($id_trad and ($id_trad != $id_objet)) {
27 $env['ids_trad_selecteur'] = "$objet|$id_trad";
28 }
29
30 return $env;
31 }
32
33
34 function formulaires_definir_traduction_traiter_dist($objet, $id_objet=0) {
35
36 if (!$id_objet = intval($id_objet)) {
37 spip_log("Incomprehensible : definir_traduction_traiter n'a pas de id_objet : $id_objet !");
38 return array(
39 'message_erreur'=>"Identifiant de cette rubrique non transmis dans le traitement !!",
40 'editable'=>true
41 );
42 }
43 $table = table_objet_sql($objet);
44 $_id_objet = id_table_objet($objet);
45 include_spip('spip_bonux_fonctions');
46 $id_trad = array_shift(picker_selected(_request('ids_trad_selecteur'), $objet));
47 include_spip('inc/modifier');
48 // deux cas deja ici :
49 // id_trad > 0, on lie une rubrique
50 // id_trad = 0 : on delie
51
52 $id_trad_old = sql_getfetsel('id_trad', $table, "$_id_objet = " . sql_quote($id_objet));
53 if ($id_trad_old != $id_trad) {
54 include_spip('inc/modifier');
55 modifier_contenu($objet, $id_objet, array('invalideur' => "id='$objet/$id_objet'"), array(
56 'id_trad' => $id_trad
57 ));
58
59 if ($id_trad) {
60 // indiquer que l'element d'origine possede des traductions...
61 if (!$id_trad_source = sql_getfetsel('id_trad', $table, 'id_rubrique=' . sql_quote('id_trad') )) {
62 modifier_contenu($objet, $id_trad, array('invalideur' => "id='$objet/$id_trad'"), array(
63 'id_trad' => $id_trad
64 ));
65 }
66 }
67
68 // si la deliaison ou reliaison fait qu'il ne reste plus que la source
69 // dans le groupe de traduction on lui remet l'id_trad a 0
70 if ($id_trad_old) {
71 if (1 == $nb_dans_groupe = sql_countsel($table, array('id_trad = ' . sql_quote($id_trad_old)))) {
72 modifier_contenu($objet, $id_trad_old, array('invalideur' => "id='$objet/$id_trad_old'"), array(
73 'id_trad' => 0
74 ));
75 }
76 }
77
78 }
79 return array(
80 'message_ok' => _T('tradrub:enregistrement_de_la_traduction_ok'),
81 'editable' => true,
82 );
83 }
84
85 ?>