diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc
index ee3dbd1..008e462 100644
--- a/core/modules/language/language.admin.inc
+++ b/core/modules/language/language.admin.inc
@@ -779,95 +779,6 @@ function language_content_settings_page() {
}
/**
- * Form constructor for the content language settings form.
- *
- * @param array $supported
- * Entity types with language support.
- *
- * @see language_content_settings_form_submit()
- *
- * @ingroup forms
- */
-function language_content_settings_form(array $form, array $form_state, array $supported) {
- $entity_info = entity_get_info();
- $labels = array();
- $default = array();
-
- foreach ($supported as $entity_type) {
- $labels[$entity_type] = isset($entity_info[$entity_type]['label']) ? $entity_info[$entity_type]['label'] : $entity_type;
- $default[$entity_type] = FALSE;
-
- // Check whether we have any custom setting.
- foreach (entity_get_bundles($entity_type) as $bundle => $bundle_info) {
- $conf = language_get_default_configuration($entity_type, $bundle);
- if (!empty($conf['language_show']) || $conf['langcode'] != 'site_default') {
- $default[$entity_type] = $entity_type;
- }
- $language_configuration[$entity_type][$bundle] = $conf;
- }
- }
-
- asort($labels);
-
- $path = drupal_get_path('module', 'language');
- $form = array(
- '#labels' => $labels,
- '#attached' => array(
- 'css' => array($path . '/css/language.admin.css'),
- ),
- );
-
- $form['entity_types'] = array(
- '#title' => t('Custom language settings'),
- '#type' => 'checkboxes',
- '#options' => $labels,
- '#default_value' => $default,
- );
-
- $form['settings'] = array('#tree' => TRUE);
-
- foreach ($labels as $entity_type => $label) {
- $info = $entity_info[$entity_type];
-
- $form['settings'][$entity_type] = array(
- '#title' => $label,
- '#type' => 'container',
- '#entity_type' => $entity_type,
- '#theme' => 'language_content_settings_table',
- '#bundle_label' => isset($info['bundle_label']) ? $info['bundle_label'] : $label,
- '#states' => array(
- 'visible' => array(
- ':input[name="entity_types[' . $entity_type . ']"]' => array('checked' => TRUE),
- ),
- ),
- );
-
- foreach (entity_get_bundles($entity_type) as $bundle => $bundle_info) {
- $form['settings'][$entity_type][$bundle]['settings'] = array(
- '#type' => 'item',
- '#label' => $bundle_info['label'],
- 'language' => array(
- '#type' => 'language_configuration',
- '#entity_information' => array(
- 'entity_type' => $entity_type,
- 'bundle' => $bundle,
- ),
- '#default_value' => $language_configuration[$entity_type][$bundle],
- ),
- );
- }
- }
-
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Save'),
- );
-
- return $form;
-}
-
-/**
* Implements hook_preprocess_HOOK() for theme_language_content_settings_table().
*/
function template_preprocess_language_content_settings_table(&$variables) {
@@ -927,17 +838,3 @@ function template_preprocess_language_content_settings_table(&$variables) {
function theme_language_content_settings_table($variables) {
return '
' . $variables['build']['#title'] . '
' . drupal_render($variables['build']);
}
-
-/**
- * Form submission handler for language_content_settings_form().
- */
-function language_content_settings_form_submit(array $form, array &$form_state) {
- $entity_types = $form_state['values']['entity_types'];
- $settings = &$form_state['values']['settings'];
- foreach ($settings as $entity_type => $entity_settings) {
- foreach ($entity_settings as $bundle => $bundle_settings) {
- language_save_default_configuration($entity_type, $bundle, $bundle_settings['settings']['language']);
- }
- }
- drupal_set_message(t('Settings successfully updated.'));
-}
diff --git a/core/modules/language/lib/Drupal/language/Form/ContentLanguageSettingsForm.php b/core/modules/language/lib/Drupal/language/Form/ContentLanguageSettingsForm.php
index 5b7d165..ba80748 100644
--- a/core/modules/language/lib/Drupal/language/Form/ContentLanguageSettingsForm.php
+++ b/core/modules/language/lib/Drupal/language/Form/ContentLanguageSettingsForm.php
@@ -7,12 +7,51 @@
namespace Drupal\language\Form;
+use Drupal\Core\Config\ConfigFactory;
+use Drupal\Core\Config\Context\ContextInterface;
+use Drupal\Core\Controller\ControllerInterface;
+use Drupal\Core\Entity\EntityManager;
use Drupal\system\SystemConfigFormBase;
+use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Configure the content language settings for this site.
*/
-class ContentLanguageSettingsForm extends SystemConfigFormBase {
+class ContentLanguageSettingsForm extends SystemConfigFormBase implements ControllerInterface {
+
+ /**
+ * The entity manager.
+ *
+ * @var \Drupal\Core\Entity\EntityManager
+ */
+ protected $entityManager;
+
+ /**
+ * Constructs a ContentLanguageSettingsForm object.
+ *
+ * @param \Drupal\Core\Config\ConfigFactory $config_factory
+ * The config factory.
+ * @param \Drupal\Core\Config\Context\ContextInterface $context
+ * The configuration context to use.
+ * @param \Drupal\Core\Entity\EntityManager $entity_manager
+ * The entity manager.
+ */
+ public function __construct(ConfigFactory $config_factory, ContextInterface $context, EntityManager $entity_manager) {
+ parent::__construct($config_factory, $context);
+
+ $this->entityManager = $entity_manager;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public static function create(ContainerInterface $container) {
+ return new static(
+ $container->get('config.factory'),
+ $container->get('config.context.free'),
+ $container->get('plugin.manager.entity')
+ );
+ }
/**
* Return a list of entity types for which language settings are supported.
@@ -21,7 +60,7 @@ class ContentLanguageSettingsForm extends SystemConfigFormBase {
* A list of entity types which are translatable.
*/
protected function entitySupported() {
- foreach (entity_get_info() as $entity_type => $info) {
+ foreach ($this->entityManager->getDefinitions() as $entity_type => $info) {
if (!empty($info['translatable'])) {
$supported[$entity_type] = $entity_type;
}
@@ -40,7 +79,7 @@ public function getFormID() {
* {@inheritdoc}
*/
public function buildForm(array $form, array &$form_state) {
- $entity_info = entity_get_info();
+ $entity_info = $this->entityManager->getDefinitions();
$labels = array();
$default = array();
@@ -123,11 +162,16 @@ public function buildForm(array $form, array &$form_state) {
* {@inheritdoc}
*/
public function submitForm(array &$form, array &$form_state) {
- $entity_types = $form_state['values']['entity_types'];
$settings = &$form_state['values']['settings'];
foreach ($settings as $entity_type => $entity_settings) {
foreach ($entity_settings as $bundle => $bundle_settings) {
- language_save_default_configuration($entity_type, $bundle, $bundle_settings['settings']['language']);
+ $this->configFactory->get('language.settings')
+ ->set(language_get_default_configuration_settings_key($entity_type, $bundle),
+ array(
+ 'langcode' => $bundle_settings['settings']['language']['langcode'],
+ 'language_show' => $bundle_settings['settings']['langcode']['language_show'],
+ )
+ );
}
}
parent::submitForm($form, $form_state);