X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fplugins%2Fauto%2Ftradrub%2Fformulaires%2Fdefinir_traduction.php;fp=www%2Fplugins%2Fauto%2Ftradrub%2Fformulaires%2Fdefinir_traduction.php;h=093d5e94696b2b8d10724f7b7d88d909fafae0de;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/plugins/auto/tradrub/formulaires/definir_traduction.php b/www/plugins/auto/tradrub/formulaires/definir_traduction.php new file mode 100644 index 0000000..093d5e9 --- /dev/null +++ b/www/plugins/auto/tradrub/formulaires/definir_traduction.php @@ -0,0 +1,85 @@ + $objet, + 'table' => $table, + '_id_objet' => $_id_objet, + 'id_objet' => $id_objet, + 'id_trad' => $id_trad, + ); + + if ($id_trad and ($id_trad != $id_objet)) { + $env['ids_trad_selecteur'] = "$objet|$id_trad"; + } + + return $env; +} + + +function formulaires_definir_traduction_traiter_dist($objet, $id_objet=0) { + + if (!$id_objet = intval($id_objet)) { + spip_log("Incomprehensible : definir_traduction_traiter n'a pas de id_objet : $id_objet !"); + return array( + 'message_erreur'=>"Identifiant de cette rubrique non transmis dans le traitement !!", + 'editable'=>true + ); + } + $table = table_objet_sql($objet); + $_id_objet = id_table_objet($objet); + include_spip('spip_bonux_fonctions'); + $id_trad = array_shift(picker_selected(_request('ids_trad_selecteur'), $objet)); + include_spip('inc/modifier'); + // deux cas deja ici : + // id_trad > 0, on lie une rubrique + // id_trad = 0 : on delie + + $id_trad_old = sql_getfetsel('id_trad', $table, "$_id_objet = " . sql_quote($id_objet)); + if ($id_trad_old != $id_trad) { + include_spip('inc/modifier'); + modifier_contenu($objet, $id_objet, array('invalideur' => "id='$objet/$id_objet'"), array( + 'id_trad' => $id_trad + )); + + if ($id_trad) { + // indiquer que l'element d'origine possede des traductions... + if (!$id_trad_source = sql_getfetsel('id_trad', $table, 'id_rubrique=' . sql_quote('id_trad') )) { + modifier_contenu($objet, $id_trad, array('invalideur' => "id='$objet/$id_trad'"), array( + 'id_trad' => $id_trad + )); + } + } + + // si la deliaison ou reliaison fait qu'il ne reste plus que la source + // dans le groupe de traduction on lui remet l'id_trad a 0 + if ($id_trad_old) { + if (1 == $nb_dans_groupe = sql_countsel($table, array('id_trad = ' . sql_quote($id_trad_old)))) { + modifier_contenu($objet, $id_trad_old, array('invalideur' => "id='$objet/$id_trad_old'"), array( + 'id_trad' => 0 + )); + } + } + + } + return array( + 'message_ok' => _T('tradrub:enregistrement_de_la_traduction_ok'), + 'editable' => true, + ); +} + +?>