getThirdPartySettings('field_layout'); if (isset($field_layout['id'])) { $field_layout += ['settings' => []]; $display ->enableLayoutBuilder() ->appendSection(new Section($field_layout['id'], $field_layout['settings'])) ->save(); $display_changed = TRUE; } } // Clear the rendered cache to ensure the new layout builder flow is used. // While in many cases the above change will not affect the rendered output, // the cacheability metadata will have changed and should be processed to // prepare for future changes. if ($display_changed) { Cache::invalidateTags(['rendered']); } } /** * Enable Layout Builder for existing entity displays. */ function layout_builder_update_8601(&$sandbox) { $config_factory = \Drupal::configFactory(); if (!isset($sandbox['count'])) { $sandbox['ids'] = $config_factory->listAll('core.entity_view_display.'); $sandbox['count'] = count($sandbox['ids']); } $ids = array_splice($sandbox['ids'], 0, 50); foreach ($ids as $id) { $display = $config_factory->getEditable($id); if ($display->get('third_party_settings.layout_builder')) { $display ->set('third_party_settings.layout_builder.enabled', TRUE) ->save(); } } $sandbox['#finished'] = empty($sandbox['ids']) ? 1 : ($sandbox['count'] - count($sandbox['ids'])) / $sandbox['count']; } /** * Implements hook_schema(). */ function layout_builder_schema() { $schema['inline_block_usage'] = [ 'description' => 'Track where a block_content entity is used.', 'fields' => [ 'block_content_id' => [ 'description' => 'The block_content entity ID.', 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ], 'layout_entity_type' => [ 'description' => 'The entity type of the parent entity.', 'type' => 'varchar_ascii', 'length' => EntityTypeInterface::ID_MAX_LENGTH, 'not null' => FALSE, 'default' => '', ], 'layout_entity_id' => [ 'description' => 'The ID of the parent entity.', 'type' => 'varchar_ascii', 'length' => 128, 'not null' => FALSE, 'default' => 0, ], ], 'primary key' => ['block_content_id'], 'indexes' => [ 'type_id' => ['layout_entity_type', 'layout_entity_id'], ], ]; return $schema; } /** * Create the 'inline_block_usage' table. */ function layout_builder_update_8602() { $inline_block_usage = [ 'description' => 'Track where a block_content entity is used.', 'fields' => [ 'block_content_id' => [ 'description' => 'The block_content entity ID.', 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ], 'layout_entity_type' => [ 'description' => 'The entity type of the parent entity.', 'type' => 'varchar_ascii', 'length' => EntityTypeInterface::ID_MAX_LENGTH, 'not null' => FALSE, 'default' => '', ], 'layout_entity_id' => [ 'description' => 'The ID of the parent entity.', 'type' => 'varchar_ascii', 'length' => 128, 'not null' => FALSE, 'default' => 0, ], ], 'primary key' => ['block_content_id'], 'indexes' => [ 'type_id' => ['layout_entity_type', 'layout_entity_id'], ], ]; Database::getConnection()->schema()->createTable('inline_block_usage', $inline_block_usage); }