diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 9146e0e..6c39a44 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -226,8 +226,6 @@ function language_process_language_select($element) { if (!isset($element['#options'])) { $element['#options'] = array(); foreach (language_list($element['#languages']) as $langcode => $language) { - // @todo: http://drupal.org/node/1739928#comment-6471438 - // Is this flipped? If it's locked, put it in t() so it can be translated? $element['#options'][$langcode] = $language->locked ? t('- @name -', array('@name' => $language->name)) : $language->name; } } @@ -334,7 +332,7 @@ function language_configuration_element_submit(&$form, &$form_state) { * - language_hidden: if the language element should be hidden or not. */ function language_save_default_configuration($entity_type, $bundle, $values = array()) { - config('language.settings')->set(language_get_default_configuration_settings_path($entity_type, $bundle), array('langcode' => $values['langcode'], 'language_hidden' => $values['language_hidden']))->save(); + config('language.settings')->set(language_get_default_configuration_settings_key($entity_type, $bundle), array('langcode' => $values['langcode'], 'language_hidden' => $values['language_hidden']))->save(); } /** @@ -351,8 +349,7 @@ function language_save_default_configuration($entity_type, $bundle, $values = ar * - language_hidden: if the language element is hidden or not. */ function language_get_default_configuration($entity_type, $bundle) { - // @todo: http://drupal.org/node/1783346 for unresolved CMI issue. - $configuration = config('language.settings')->get(language_get_default_configuration_settings_path($entity_type, $bundle)); + $configuration = config('language.settings')->get(language_get_default_configuration_settings_key($entity_type, $bundle)); if (is_null($configuration)) { $configuration = array(); } @@ -369,7 +366,7 @@ function language_get_default_configuration($entity_type, $bundle) { * A string representing the bundle. */ function language_clear_default_configuration($entity_type, $bundle) { - config('language.settings')->clear(language_get_default_configuration_settings_path($entity_type, $bundle))->save(); + config('language.settings')->clear(language_get_default_configuration_settings_key($entity_type, $bundle))->save(); } /** @@ -386,11 +383,10 @@ function language_clear_default_configuration($entity_type, $bundle) { * @return string * The root name of the variables. */ -function language_get_default_configuration_settings_path($entity_type, $bundle) { - // @todo: http://drupal.org/node/1739928#comment-6471438 - // Since these values are more or less coming in directly from - // $form_state['values'], should there be some sanitization here to ensure - // people aren't putting nonsense like "../../../../" in there? +function language_get_default_configuration_settings_key($entity_type, $bundle) { + // Replace all the caracters that are not letters, numbers or "_" with "_". + $entity_type = preg_replace('/[^0-9a-zA-Z_]/',"_",$entity_type); + $bundle = preg_replace('/[^0-9a-zA-Z_]/',"_",$bundle); return $entity_type . '.' . $bundle . '.language.default_configuration'; } diff --git a/core/modules/node/content_types.inc b/core/modules/node/content_types.inc index b2b5263..3450196 100644 --- a/core/modules/node/content_types.inc +++ b/core/modules/node/content_types.inc @@ -214,9 +214,6 @@ function node_type_form($form, &$form_state, $type = NULL) { '#group' => 'additional_settings', ); - // @todo: http://drupal.org/node/1739928#comment-6471438 - // In taxonomy module, this was wrapped in an if (module_exists('language')) - // check. Why is it not here? $language_configuration = language_get_default_configuration('node', $type->type); $form['language']['language_configuration'] = array( '#type' => 'language_configuration', diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyLanguageTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyLanguageTest.php index f61b9e5..31bbf62 100644 --- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyLanguageTest.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyLanguageTest.php @@ -130,7 +130,7 @@ function testVocabularyDefaultLanguageForTerms() { $this->drupalPost('admin/structure/taxonomy/' . $machine_name . '/edit', $edit, t('Save')); // Check that the old settings are empty. - $old_settings = config('language.settings')->get(language_get_default_configuration_settings_path('vocabulary', $machine_name)); + $old_settings = config('language.settings')->get(language_get_default_configuration_settings_key('vocabulary', $machine_name)); $this->assertNull($old_settings, 'The old vocabulary settings were deleted.'); // Check that we have the new settings. $new_settings = language_get_default_configuration('vocabulary', $new_machine_name);