X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Faction%2Finstituer_langue_objet.php;h=4b497512fbc7bc8440f502f2b27da9a92ad0ae70;hb=cc641eb476987612f6d6df1a5417c1c5582a8ab8;hp=4ffac96ddfec19a2e06688d7cbc577d0cf8228bc;hpb=a33c2ba9d919664b3bb0f565f8e9a8b9d8530cdb;p=lhc%2Fweb%2Fclavette_www.git diff --git a/www/ecrire/action/instituer_langue_objet.php b/www/ecrire/action/instituer_langue_objet.php index 4ffac96..4b49751 100644 --- a/www/ecrire/action/instituer_langue_objet.php +++ b/www/ecrire/action/instituer_langue_objet.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2014 * + * Copyright (c) 2001-2016 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -18,25 +18,45 @@ if (!defined('_ECRIRE_INC_VERSION')) return; * @param int $id * @param int $id_rubrique * @param string $changer_lang + * @param string $serveur * @return string */ -function action_instituer_langue_objet_dist($objet,$id, $id_rubrique, $changer_lang) { +function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_lang, $serveur='') { if ($changer_lang) { $table_objet_sql = table_objet_sql($objet); $id_table_objet = id_table_objet($objet); - + $trouver_table = charger_fonction('trouver_table', 'base'); + $desc = $trouver_table($table_objet_sql, $serveur); + + $set = array(); + if (isset($desc['field']['langue_choisie'])){ + $set['langue_choisie'] = 'oui'; + } + if ($changer_lang != "herit") { - sql_updateq($table_objet_sql, array('lang'=>$changer_lang, 'langue_choisie'=>'oui'), "$id_table_objet=".intval($id)); - include_spip('inc/rubriques'); - $langues = calculer_langues_utilisees(); + $set['lang'] = $changer_lang; + sql_updateq($table_objet_sql, $set, "$id_table_objet=" . intval($id),'',$serveur); + include_spip('inc/rubriques'); // pour calculer_langues_rubriques et calculer_langues_utilisees + if ($table_objet_sql == 'spip_rubriques') { + calculer_langues_rubriques(); + } + $langues = calculer_langues_utilisees($serveur); ecrire_meta('langues_utilisees', $langues); } else { $langue_parent = sql_getfetsel("lang", "spip_rubriques", "id_rubrique=" . intval($id_rubrique)); if (!$langue_parent) $langue_parent = $GLOBALS['meta']['langue_site']; - sql_updateq($table_objet_sql, array('lang'=>$langue_parent, 'langue_choisie'=>'non'), "$id_table_objet=".intval($id)); $changer_lang = $langue_parent; + $set['lang'] = $changer_lang; + if (isset($set['langue_choisie'])){ + $set['langue_choisie'] = 'non'; + } + sql_updateq($table_objet_sql, $set, "$id_table_objet=" . intval($id),'',$serveur); + if ($table_objet_sql == 'spip_rubriques') { + include_spip('inc/rubriques'); + calculer_langues_rubriques(); + } } } return $changer_lang;