Initial Drupal 11 with DDEV setup
This commit is contained in:
55
web/core/modules/block/block.post_update.php
Normal file
55
web/core/modules/block/block.post_update.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Post update functions for Block.
|
||||
*/
|
||||
|
||||
use Drupal\block\BlockInterface;
|
||||
use Drupal\Core\Config\Entity\ConfigEntityUpdater;
|
||||
|
||||
/**
|
||||
* Implements hook_removed_post_updates().
|
||||
*/
|
||||
function block_removed_post_updates(): array {
|
||||
return [
|
||||
'block_post_update_disable_blocks_with_missing_contexts' => '9.0.0',
|
||||
'block_post_update_disabled_region_update' => '9.0.0',
|
||||
'block_post_update_fix_negate_in_conditions' => '9.0.0',
|
||||
'block_post_update_replace_node_type_condition' => '10.0.0',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that all block weights are integers.
|
||||
*/
|
||||
function block_post_update_make_weight_integer(array &$sandbox = []): void {
|
||||
\Drupal::classResolver(ConfigEntityUpdater::class)
|
||||
->update($sandbox, 'block', function (BlockInterface $block): bool {
|
||||
$weight = $block->getWeight();
|
||||
if (!is_int($weight)) {
|
||||
$block->setWeight($weight);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the `depth` setting to NULL if it is 0 in any menu blocks.
|
||||
*/
|
||||
function block_post_update_set_menu_block_depth_to_null_if_zero(array &$sandbox = []): void {
|
||||
\Drupal::classResolver(ConfigEntityUpdater::class)
|
||||
->update($sandbox, 'block', function (BlockInterface $block): bool {
|
||||
if ($block->getPlugin()->getBaseId() === 'system_menu_block') {
|
||||
$settings = $block->get('settings');
|
||||
// Use `empty()` to account for either integer 0, or '0'.
|
||||
if (empty($settings['depth'])) {
|
||||
$settings['depth'] = NULL;
|
||||
}
|
||||
$block->set('settings', $settings);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user