comparison core/modules/language/language.module @ 4:a9cd425dd02b

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:11:55 +0000
parents c75dbcec494b
children 12f9dff5fda9
comparison
equal deleted inserted replaced
3:307d7a7fd348 4:a9cd425dd02b
13 use Drupal\Core\Field\FieldItemListInterface; 13 use Drupal\Core\Field\FieldItemListInterface;
14 use Drupal\Core\Form\FormStateInterface; 14 use Drupal\Core\Form\FormStateInterface;
15 use Drupal\Core\Language\LanguageInterface; 15 use Drupal\Core\Language\LanguageInterface;
16 use Drupal\Core\Routing\RouteMatchInterface; 16 use Drupal\Core\Routing\RouteMatchInterface;
17 use Drupal\Core\Session\AccountInterface; 17 use Drupal\Core\Session\AccountInterface;
18 use Drupal\language\ConfigurableLanguageInterface;
19 use Drupal\language\Entity\ContentLanguageSettings; 18 use Drupal\language\Entity\ContentLanguageSettings;
20 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUI; 19 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUI;
21 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl; 20 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl;
22 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrlFallback; 21 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrlFallback;
23 22
203 $config = ContentLanguageSettings::loadByEntityTypeBundle($entity_type_id, $bundle); 202 $config = ContentLanguageSettings::loadByEntityTypeBundle($entity_type_id, $bundle);
204 $config->setDefaultLangcode($form_state->getValue([$element_name, 'langcode'])); 203 $config->setDefaultLangcode($form_state->getValue([$element_name, 'langcode']));
205 $config->setLanguageAlterable($form_state->getValue([$element_name, 'language_alterable'])); 204 $config->setLanguageAlterable($form_state->getValue([$element_name, 'language_alterable']));
206 $config->save(); 205 $config->save();
207 206
208 // Set the form_state languaged with the updated bundle. 207 // Set the form_state language with the updated bundle.
209 $form_state->set('language', $language); 208 $form_state->set('language', $language);
210 } 209 }
211 } 210 }
212 } 211 }
213 212
345 function language_modules_uninstalled($modules) { 344 function language_modules_uninstalled($modules) {
346 language_modules_installed($modules); 345 language_modules_installed($modules);
347 } 346 }
348 347
349 /** 348 /**
350 * Implements hook_ENTITY_TYPE_insert() for 'configurable_language'.
351 */
352 function language_configurable_language_insert(ConfigurableLanguageInterface $language) {
353 if ($language->isLocked()) {
354 return;
355 }
356
357 // Add language to the list of language domains.
358 $config = \Drupal::configFactory()->getEditable('language.negotiation');
359 $domains = $config->get('url.domains');
360 $domains[$language->id()] = '';
361 $config->set('url.domains', $domains)->save();
362 }
363
364 /**
365 * Implements hook_ENTITY_TYPE_delete() for 'configurable_language'.
366 */
367 function language_configurable_language_delete(ConfigurableLanguageInterface $language) {
368 // Remove language from language prefix list.
369 $config = \Drupal::configFactory()->getEditable('language.negotiation');
370 $prefixes = $config->get('url.prefixes');
371 unset($prefixes[$language->id()]);
372 $config->set('url.prefixes', $prefixes)->save();
373
374 // Remove language from language domain list.
375 $config = \Drupal::configFactory()->getEditable('language.negotiation');
376 $domains = $config->get('url.domains');
377 unset($domains[$language->id()]);
378 $config->set('url.domains', $domains)->save();
379 }
380
381 /**
382 * Implements hook_preprocess_HOOK() for block templates. 349 * Implements hook_preprocess_HOOK() for block templates.
383 */ 350 */
384 function language_preprocess_block(&$variables) { 351 function language_preprocess_block(&$variables) {
385 if ($variables['configuration']['provider'] == 'language') { 352 if ($variables['configuration']['provider'] == 'language') {
386 $variables['attributes']['role'] = 'navigation'; 353 $variables['attributes']['role'] = 'navigation';
412 if ($form_object instanceof ContentEntityFormInterface && $form_object->getEntity()->getEntityType()->hasKey('langcode')) { 379 if ($form_object instanceof ContentEntityFormInterface && $form_object->getEntity()->getEntityType()->hasKey('langcode')) {
413 /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */ 380 /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
414 $entity = $form_object->getEntity(); 381 $entity = $form_object->getEntity();
415 $entity_type = $entity->getEntityType(); 382 $entity_type = $entity->getEntityType();
416 $langcode_key = $entity_type->getKey('langcode'); 383 $langcode_key = $entity_type->getKey('langcode');
417 if (isset($form[$langcode_key])) { 384 if (isset($form[$langcode_key]) && $form[$langcode_key]['#access'] !== FALSE) {
418 $language_configuration = ContentLanguageSettings::loadByEntityTypeBundle($entity->getEntityTypeId(), $entity->bundle()); 385 $language_configuration = ContentLanguageSettings::loadByEntityTypeBundle($entity->getEntityTypeId(), $entity->bundle());
419 $form[$langcode_key]['#access'] = $language_configuration->isLanguageAlterable(); 386 $form[$langcode_key]['#access'] = $language_configuration->isLanguageAlterable();
420 } 387 }
421 } 388 }
422 } 389 }