Merge island_settings & island_configuration in profiles

Created on 28 July 2025, 16 days ago

Problem/Motivation

Display builder profile config entity have both island_settings & island_configuration:

    island_settings:
      type: mapping
      label: 'Island settings'
      mapping:
        library:
          type: sequence
          label: 'Library island'
          sequence:
            type: display_builder.island_settings.[%key]
        view:
          type: sequence
          label: 'Library island'
          sequence:
            type: display_builder.island_settings.[%key]
        button:
          type: sequence
          label: 'Library island'
          sequence:
            type: display_builder.island_settings.[%key]
        contextual:
          type: sequence
          label: 'Library island'
          sequence:
            type: display_builder.island_settings.[%key]
        menu:
          type: sequence
          label: 'Library island'
          sequence:
            type: display_builder.island_settings.[%key]
    island_configuration:
      label: 'Island configuration'
      # @todo set this configuration, ignore for now.
      type: ignore

Example:

island_settings:
  view:
    builder:
      enable: true
      weight: '-10'
      options: main
    layers:
      enable: true
      weight: '-9'
      options: main
    preview:
      enable: true
      weight: '-8'
      options: main
  button:
    history:
      enable: true
      weight: '-8'
    state:
      enable: true
      weight: '-7'
  ...
island_configuration:
  history:
    display_clear_button: 1

This is confusing, not enough defined (type: ignore), and may introduce bugs because:

  • island_settings follows to closely the form structure
  • we need to maintain 2 lists with the same keys

Proposed resolution

Can we have a merged flat structure managed by something like Drupal\Component\Plugin\LazyPluginCollection

Proposal:

islands:
  builder:
    enable: true
    weight: -10
    region: main
  layers:
    enable: true
    weight: -9
    region: main
  preview:
    enable: true
    weight: -8
    options: main
  history:
    enable: true
    weight: -8
    settings:
      display_clear_button: 1
  state:
    enable: true
    weight: -7
  ...
📌 Task
Status

Active

Version

1.0

Component

Main / Misc.

Created by

🇫🇷France pdureau Paris

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Production build 0.71.5 2024