Mercurial > hg > cmmr2012-drupal-site
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 } |