diff --git a/ecrire/action/instituer_langue_objet.php b/ecrire/action/instituer_langue_objet.php index 6dd8a328f4e9f32119eaa3b66efe80001cb3a294..76b12f7ceeb9f2c98c0bc8e9f18e60576f348606 100644 --- a/ecrire/action/instituer_langue_objet.php +++ b/ecrire/action/instituer_langue_objet.php @@ -27,16 +27,20 @@ if (!defined('_ECRIRE_INC_VERSION')) { * @param int $id * @param int $id_rubrique * @param string $changer_lang + * @param bool $langue_choisie : la table à modifier dispose-t-elle d'un champ 'langue_choisie' * @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, $langue_choisie = true) { if ($changer_lang) { $table_objet_sql = table_objet_sql($objet); $id_table_objet = id_table_objet($objet); - + if ($changer_lang != "herit") { - sql_updateq($table_objet_sql, array('lang' => $changer_lang, 'langue_choisie' => 'oui'), - "$id_table_objet=" . intval($id)); + $champs = array('lang' => $changer_lang); + if ($langue_choisie) { + $champs['langue_choisie'] = 'oui'; + } + sql_updateq($table_objet_sql, $champs, "$id_table_objet=" . intval($id)); include_spip('inc/rubriques'); if ($table_objet_sql == 'spip_rubriques') { calculer_langues_rubriques(); @@ -48,8 +52,11 @@ function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_ 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)); + $champs = array('lang' => $langue_parent); + if ($langue_choisie) { + $champs['langue_choisie'] = 'non'; + } + sql_updateq($table_objet_sql, $champs, "$id_table_objet=" . intval($id)); $changer_lang = $langue_parent; if ($table_objet_sql == 'spip_rubriques') { include_spip('inc/rubriques'); diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php index 51d7dfb0fb819ae6957609b5ebbebad6b9b589e0..ae368fe0aad6906a6984ef71a1e4efdcb6120528 100644 --- a/ecrire/inc/modifier.php +++ b/ecrire/inc/modifier.php @@ -202,7 +202,7 @@ function objet_modifier_champs($objet, $id_objet, $options, $c = null, $serveur $id_rubrique = sql_getfetsel($parent, $spip_table_objet, "$id_table_objet=" . intval($id_objet)); } $instituer_langue_objet = charger_fonction('instituer_langue_objet', 'action'); - $champs['lang'] = $instituer_langue_objet($objet, $id_objet, $id_rubrique, $changer_lang); + $champs['lang'] = $instituer_langue_objet($objet, $id_objet, $id_rubrique, $changer_lang, isset($desc['langue_choisie'])); } // on laisse 'lang' dans $champs, // ca permet de passer dans le pipeline post_edition et de journaliser