diff --git a/core/modules/block/block.module b/core/modules/block/block.module index f54f9587c8e..c217c9ff89f 100644 --- a/core/modules/block/block.module +++ b/core/modules/block/block.module @@ -7,6 +7,7 @@ use Drupal\block\BlockInterface; use Drupal\Component\Plugin\Exception\PluginException; +use Drupal\language\Entity\Language; use Symfony\Cmf\Component\Routing\RouteObjectInterface; /** @@ -444,16 +445,16 @@ function block_menu_delete($menu) { } /** - * Implements hook_language_delete(). + * Implements hook_ENTITY_TYPE_delete() for 'language_entity'. * * Delete the potential block visibility settings of the deleted language. */ -function block_language_delete($language) { +function block_language_entity_delete(Language $language) { // Remove the block visibility settings for the deleted language. foreach (entity_load_multiple('block') as $block) { $visibility = $block->get('visibility'); - if (isset($visibility['language']['langcodes'][$language->id])) { - unset($visibility['language']['langcodes'][$language->id]); + if (isset($visibility['language']['langcodes'][$language->id()])) { + unset($visibility['language']['langcodes'][$language->id()]); $block->set('visibility', $visibility); $block->save(); } diff --git a/core/modules/language/language.api.php b/core/modules/language/language.api.php index 415faac38fa..b074113df1c 100644 --- a/core/modules/language/language.api.php +++ b/core/modules/language/language.api.php @@ -77,53 +77,6 @@ function hook_language_negotiation_info_alter(array &$negotiation_info) { } } -/** - * React to a language about to be added or updated in the system. - * - * @param $language - * A language object. - */ -function hook_language_presave($language) { - if ($language->default) { - // React to a new default language. - example_new_default_language($language); - } -} - -/** - * React to a language that was just added to the system. - * - * @param $language - * A language object. - */ -function hook_language_insert($language) { - example_refresh_permissions(); -} - -/** - * React to a language that was just updated in the system. - * - * @param $language - * A language object. - */ -function hook_language_update($language) { - example_refresh_permissions(); -} - -/** - * Allow modules to react before the deletion of a language. - * - * @param $language - * The language object of the language that is about to be deleted. - */ -function hook_language_delete($language) { - // On nodes with this language, unset the language - db_update('node') - ->fields(array('language' => '')) - ->condition('language', $language->id) - ->execute(); -} - /** * Allow modules to alter the language fallback candidates. * diff --git a/core/modules/language/language.module b/core/modules/language/language.module index c6168370374..4d825089a45 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -9,6 +9,7 @@ use Drupal\Component\PhpStorage\PhpStorageFactory; use Drupal\Core\Language\Language; use Drupal\language\ConfigurableLanguageManager; use Drupal\language\ConfigurableLanguageManagerInterface; +use Drupal\language\Entity\Language as LanguageEntity; use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUI; use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl; use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrlFallback; @@ -448,9 +449,6 @@ function language_save($language) { } $language->is_new = $language_entity->isNew(); - // Let other modules modify $language before saved. - \Drupal::moduleHandler()->invokeAll('language_presave', array($language)); - // Assign language properties to language entity. $language_entity->label = isset($language->name) ? $language->name : ''; $language_entity->direction = isset($language->direction) ? $language->direction : '0'; @@ -462,11 +460,9 @@ function language_save($language) { $language_entity->save(); $t_args = array('%language' => $language->name, '%langcode' => $language->id); if ($language->is_new) { - \Drupal::moduleHandler()->invokeAll('language_insert', array($language)); watchdog('language', 'The %language (%langcode) language has been created.', $t_args); } else { - \Drupal::moduleHandler()->invokeAll('language_update', array($language)); watchdog('language', 'The %language (%langcode) language has been updated.', $t_args); } @@ -510,8 +506,6 @@ function language_delete($langcode) { if (isset($languages[$langcode]) && !$languages[$langcode]->locked) { $language = $languages[$langcode]; - \Drupal::moduleHandler()->invokeAll('language_delete', array($language)); - // Remove the language. entity_delete_multiple('language_entity', array($language->id)); @@ -637,31 +631,31 @@ function language_modules_uninstalled($modules) { } /** - * Implements hook_language_insert(). + * Implements hook_ENTITY_TYPE_insert() for 'language_entity'. */ -function language_language_insert($language) { +function language_language_entity_insert(LanguageEntity $language) { if (!empty($language->locked)) { return; } // Add language to the list of language domains. $domains = language_negotiation_url_domains(); - $domains[$language->id] = ''; + $domains[$language->id()] = ''; language_negotiation_url_domains_save($domains); } /** - * Implements hook_language_delete(). + * Implements hook_ENTITY_TYPE_delete() for 'language_entity'. */ -function language_language_delete($language) { +function language_language_entity_delete(LanguageEntity $language) { // Remove language from language prefix list. $prefixes = language_negotiation_url_prefixes(); - unset($prefixes[$language->id]); + unset($prefixes[$language->id()]); language_negotiation_url_prefixes_save($prefixes); // Remove language from language domain list. $domains = language_negotiation_url_domains(); - unset($domains[$language->id]); + unset($domains[$language->id()]); language_negotiation_url_domains_save($domains); } diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module index 68a4d1d6419..51de85f0f8f 100644 --- a/core/modules/locale/locale.module +++ b/core/modules/locale/locale.module @@ -13,6 +13,7 @@ use Drupal\Component\Utility\Json; use Drupal\Core\Cache\Cache; use Drupal\Core\Language\Language; +use Drupal\language\Entity\Language as LanguageEntity; use Drupal\Component\Utility\Crypt; /** @@ -240,48 +241,48 @@ function locale_stream_wrappers() { } /** - * Implements hook_language_insert(). + * Implements hook_ENTITY_TYPE_insert() for 'language_entity'. */ -function locale_language_insert($language) { +function locale_language_entity_insert(LanguageEntity $language) { // @todo move these two cache clears out. See http://drupal.org/node/1293252 // Changing the language settings impacts the interface. \Drupal::cache('page')->deleteAll(); // Force JavaScript translation file re-creation for the new language. - _locale_invalidate_js($language->id); + _locale_invalidate_js($language->id()); } /** - * Implements hook_language_update(). + * Implements hook_ENTITY_TYPE_update() for 'language_entity'. */ -function locale_language_update($language) { +function locale_language_entity_update(LanguageEntity $language) { // @todo move these two cache clears out. See http://drupal.org/node/1293252 // Changing the language settings impacts the interface. \Drupal::cache('page')->deleteAll(); // Force JavaScript translation file re-creation for the modified language. - _locale_invalidate_js($language->id); + _locale_invalidate_js($language->id()); } /** - * Implements hook_language_delete(). + * Implements hook_ENTITY_TYPE_delete() for 'language_entity'. */ -function locale_language_delete($language) { +function locale_language_entity_delete(LanguageEntity $language) { // Remove translations. - \Drupal::service('locale.storage')->deleteTranslations(array('language' => $language->id)); + \Drupal::service('locale.storage')->deleteTranslations(array('language' => $language->id())); // Remove interface translation files. module_load_include('inc', 'locale', 'locale.bulk'); - locale_translate_delete_translation_files(array(), array($language->id)); + locale_translate_delete_translation_files(array(), array($language->id())); // Remove translated configuration objects. - \Drupal\locale\Locale::config()->deleteLanguageTranslations($language->id); + \Drupal\locale\Locale::config()->deleteLanguageTranslations($language->id()); // Changing the language settings impacts the interface: - _locale_invalidate_js($language->id); + _locale_invalidate_js($language->id()); \Drupal::cache('page')->deleteAll(); // Clear locale translation caches. - locale_translation_status_delete_languages(array($language->id)); - \Drupal::cache()->delete('locale:' . $language->id); + locale_translation_status_delete_languages(array($language->id())); + \Drupal::cache()->delete('locale:' . $language->id()); } /** diff --git a/core/modules/node/node.module b/core/modules/node/node.module index a226e592c9b..0c0c99df508 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -21,6 +21,7 @@ use Drupal\Core\Entity\Display\EntityViewDisplayInterface; use Drupal\Core\Entity\Display\EntityFormDisplayInterface; use Drupal\Core\Template\Attribute; use Drupal\file\Entity\File; +use Drupal\language\Entity\Language as LanguageEntity; use Symfony\Cmf\Component\Routing\RouteObjectInterface; /** @@ -1810,13 +1811,13 @@ function node_file_download_access($field, EntityInterface $entity, File $file) } /** - * Implements hook_language_delete(). + * Implements hook_ENTITY_TYPE_delete() for 'language_entity'. */ -function node_language_delete($language) { +function node_language_entity_delete(LanguageEntity $language) { // On nodes with this language, unset the language. db_update('node_revision') ->fields(array('langcode' => '')) - ->condition('langcode', $language->id) + ->condition('langcode', $language->id()) ->execute(); }