source: spip-zone/_plugins_/tradrub/branches/210/formulaires/definir_traduction.php @ 60101

Last change on this file since 60101 was 60101, checked in by cedric@…, 9 years ago

Compatibilite PHP 5.4. Appliquer reset, array_shift et array_pop sur une variable uniquement

File size: 2.5 KB
Line 
1<?php
2/**
3 * Plugin tradrub
4 * Licence GPL (c) 2008-2010 Stephane Laurent (Bill), Matthieu Marcillaud
5 *
6 */
7
8function 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
34function 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 = picker_selected(_request('ids_trad_selecteur'), $objet);
47        $id_trad = array_shift($id_trad);
48        include_spip('inc/modifier');
49        // deux cas deja ici :
50        // id_trad > 0, on lie une rubrique
51        // id_trad = 0 : on delie
52       
53        $id_trad_old = sql_getfetsel('id_trad', $table, "$_id_objet = " . sql_quote($id_objet));
54        if ($id_trad_old != $id_trad) {
55                include_spip('inc/modifier');
56                modifier_contenu($objet, $id_objet, array('invalideur' => "id='$objet/$id_objet'"), array(
57                        'id_trad' => $id_trad
58                ));
59
60                if ($id_trad) {
61                        // indiquer que l'element d'origine possede des traductions...
62                        if (!$id_trad_source = sql_getfetsel('id_trad', $table, 'id_rubrique=' . sql_quote('id_trad') )) {     
63                                modifier_contenu($objet, $id_trad, array('invalideur' => "id='$objet/$id_trad'"), array(
64                                        'id_trad' => $id_trad
65                                ));
66                        }
67                }
68               
69                // si la deliaison ou reliaison fait qu'il ne reste plus que la source
70                // dans le groupe de traduction on lui remet l'id_trad a 0
71                if ($id_trad_old) {
72                        if (1 == $nb_dans_groupe = sql_countsel($table, array('id_trad = ' . sql_quote($id_trad_old)))) {
73                                modifier_contenu($objet, $id_trad_old, array('invalideur' => "id='$objet/$id_trad_old'"), array(
74                                        'id_trad' => 0
75                                ));                             
76                        }
77                }
78               
79        }
80        return array(
81                'message_ok' => _T('tradrub:enregistrement_de_la_traduction_ok'),
82                'editable' => true,
83        );
84}
85
86?>
Note: See TracBrowser for help on using the repository browser.