id: d6_block
label: Blocks
migration_tags:
  - Drupal 6
  - Configuration
source:
  plugin: block
process:
  # Block status is not a thing in Drupal 8, so this is how we skip over
  # disabled blocks.
  status:
    plugin: skip_on_empty
    method: row
    source: status
  id:
    # We need something unique, so aggregator, aggregator_1 etc will do.
    plugin: make_unique_entity_field

    entity_type: block
    field: id
    postfix: _
    length: 29
    source: module
  plugin:
    -
      plugin: static_map
      bypass: true
      source:
        - module
        - delta
      map:
        book:
          0: book_navigation
        comment:
          0: views_block:comments_recent-block_1
        forum:
          0: forum_active_block
          1: forum_new_block
        locale:
          0: language_block
        node:
          0: node_syndicate_block
        search:
          0: search_form_block
        statistics:
          0: statistics_popular_block
        system:
          0: system_powered_by_block
        user:
          0: user_login_block
          1: system_menu_block:tools
          2: views_block:who_s_new-block_1
          3: views_block:who_s_online-who_s_online_block
    -
      plugin: block_plugin_id
    -
      plugin: skip_on_empty
      method: row
  theme:
    plugin: block_theme
    source:
      - theme
      - default_theme
      - admin_theme
  region:
    plugin: block_region
    source:
      - theme
      - '@theme'
      - region
    map:
      garland:
        bartik:
          # Garland 6.x --> Bartik 8.x
          header: header
          footer: footer_fifth
          left: sidebar_first
          right: sidebar_second
    # If mapping fails, put the block in the content region.
    default_value: content
  weight: weight
  settings:
    plugin: block_settings
    source:
      - '@plugin'
      - delta
      - settings
      - title
  visibility:
    plugin: block_visibility
    source:
      - visibility
      - pages
      - roles
    # If the block uses PHP visibility, don't migrate it unless the PHP module
    # is enabled.
    skip_php: true
destination:
  plugin: entity:block
migration_dependencies:
  required:
    - menu
    - d6_custom_block
    - d6_user_role
