function system_update_8006
Place branding blocks in every theme.
File
-
core/
modules/ system/ system.install, line 1836
Code
function system_update_8006() {
// When block module is not installed, there is nothing that could be done
// except showing a warning.
if (!\Drupal::moduleHandler()->moduleExists('block')) {
return t('Block module is not enabled so site branding elements, which have been converted to a block, are not visible anymore.');
}
/** @var \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler */
$theme_handler = \Drupal::service('theme_handler');
$custom_themes_installed = FALSE;
$message = NULL;
$langcode = \Drupal::service('language_manager')->getCurrentLanguage()
->getId();
$site_branding_default_settings = [
'plugin' => 'system_branding_block',
'region' => 'content',
'settings.label' => 'Site branding',
'settings.label_display' => 0,
'visibility' => [],
'weight' => 0,
'langcode' => $langcode,
];
foreach ($theme_handler->listInfo() as $theme) {
$theme_name = $theme->getName();
switch ($theme_name) {
case 'bartik':
$name = 'block.block.bartik_branding';
$values = [
'id' => 'bartik_branding',
'region' => 'header',
] + $site_branding_default_settings;
_system_update_create_block($name, $theme_name, $values);
break;
case 'stark':
$name = 'block.block.stark_branding';
$values = [
'id' => 'stark_branding',
'region' => 'header',
] + $site_branding_default_settings;
_system_update_create_block($name, $theme_name, $values);
break;
case 'seven':
case 'classy':
case 'stable':
// Don't place any blocks or trigger custom themes installed warning.
break;
default:
$custom_themes_installed = TRUE;
$name = sprintf('block.block.%s_branding', $theme_name);
$values = [
'id' => sprintf('%s_branding', $theme_name),
'region' => 'content',
'weight' => '-50',
] + $site_branding_default_settings;
_system_update_create_block($name, $theme_name, $values);
break;
}
}
if ($custom_themes_installed) {
$message = t('Because your site has custom theme(s) installed, we had to set the branding block into the content region. Please manually review the block configuration and remove the site name, slogan, and logo variables from your templates.');
}
return $message;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.