diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 4441db1..7df41ef 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -261,12 +261,15 @@ function language_configuration_element_process($element, &$form_state, &$form) // They will be used, in the submit handler, to generate the names of the // variables that will store the settings. // @todo: #cofig is maybe not a very good key name... - if (isset($element['#config']['entity_type'])) { - $form['#language_configuration_elements'][$element['#name']]['entity_type'] = $element['#config']['entity_type']; - } - if (isset($element['#config']['bundle'])) { - $form['#language_configuration_elements'][$element['#name']]['bundle'] = $element['#config']['bundle']; + if (!isset($form['#language_configuration_elements'])) { + $form['#language_configuration_elements'] = array(); } + $form['#language_configuration_elements'] += array( + $element['#name'] => array( + 'entity_type' => $element['#config']['entity_type'], + 'bundle' => $element['#config']['bundle'], + ), + ); return $element; } diff --git a/core/modules/node/node.install b/core/modules/node/node.install index c373862..79ec118 100644 --- a/core/modules/node/node.install +++ b/core/modules/node/node.install @@ -605,11 +605,11 @@ function node_update_8004() { function node_update_8005() { $types = db_query('SELECT type FROM {node_type}')->fetchCol(); foreach ($types as $type) { - $language_default = variable_get('node_type_language_default_' . $type, NULL); - $language_hidden = variable_get('node_type_language_hidden_' . $type, NULL); + $language_default = update_variable_get('node_type_language_default_' . $type, NULL); + $language_hidden = update_variable_get('node_type_language_hidden_' . $type, NULL); if (isset($language_default) || isset($language_hidden)) { $values = array('language' => $language_default, 'language_hidden' => $language_hidden); - config('language.settings')->set('language_default_configuration.node.' . $type, $values); + config('language.settings')->set('language_default_configuration.node.' . $type, $values)->save(); } } } diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/VocabularyFormController.php b/core/modules/taxonomy/lib/Drupal/taxonomy/VocabularyFormController.php index cfec39e..410a75a 100644 --- a/core/modules/taxonomy/lib/Drupal/taxonomy/VocabularyFormController.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/VocabularyFormController.php @@ -90,6 +90,7 @@ class VocabularyFormController extends EntityFormController { // the submit buttons has custom submit handlers... if (module_exists('language')) { array_unshift($actions['submit']['#submit'],'language_configuration_element_submit'); + array_unshift($actions['submit']['#submit'], array($this, 'languageConfigurationSubmit')); } return $actions; } @@ -119,6 +120,17 @@ class VocabularyFormController extends EntityFormController { } /** + * Submit handler to update the bundle for the default language configuration. + * + */ + public function languageConfigurationSubmit(array &$form, array &$form_state) { + // Because the bundle is not yet known and moreover, it can be changed for a + // vocabulary, we have to also update the language_configuration_elements in + // order to have the correct bundle value. + $form['#language_configuration_elements']['default_language']['bundle'] = $form_state['values']['machine_name']; + } + + /** * Overrides Drupal\entity\EntityFormController::submit(). */ public function submit(array $form, array &$form_state) {