function BlockSettings::transform

Same name in other branches
  1. 8.9.x core/modules/block/src/Plugin/migrate/process/BlockSettings.php \Drupal\block\Plugin\migrate\process\BlockSettings::transform()
  2. 10 core/modules/block/src/Plugin/migrate/process/BlockSettings.php \Drupal\block\Plugin\migrate\process\BlockSettings::transform()
  3. 11.x core/modules/block/src/Plugin/migrate/process/BlockSettings.php \Drupal\block\Plugin\migrate\process\BlockSettings::transform()

Set the block configuration.

Overrides ProcessPluginBase::transform

File

core/modules/block/src/Plugin/migrate/process/BlockSettings.php, line 24

Class

BlockSettings
Plugin annotation @MigrateProcessPlugin( id = "block_settings" )

Namespace

Drupal\block\Plugin\migrate\process

Code

public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
    [
        $plugin,
        $delta,
        $old_settings,
        $title,
    ] = $value;
    $settings = [];
    $settings['label'] = $title;
    if ($title && $title !== '<none>') {
        $settings['label_display'] = BlockPluginInterface::BLOCK_LABEL_VISIBLE;
    }
    else {
        $settings['label_display'] = '0';
    }
    switch ($plugin) {
        case 'aggregator_feed_block':
            [
                ,
                $id,
            ] = explode('-', $delta);
            $settings['block_count'] = $old_settings['aggregator']['item_count'];
            $settings['feed'] = $id;
            break;
        case 'book_navigation':
            $settings['block_mode'] = $old_settings['book']['block_mode'];
            break;
        case 'forum_active_block':
        case 'forum_new_block':
            $settings['block_count'] = $old_settings['forum']['block_num'];
            break;
        case 'statistics_popular_block':
            $settings['top_day_num'] = $old_settings['statistics']['statistics_block_top_day_num'];
            $settings['top_all_num'] = $old_settings['statistics']['statistics_block_top_all_num'];
            $settings['top_last_num'] = $old_settings['statistics']['statistics_block_top_last_num'];
            break;
        case 'views_block:who_s_new-block_1':
            $settings['items_per_page'] = $old_settings['user']['block_whois_new_count'];
            break;
        case 'views_block:who_s_online-who_s_online_block':
            $settings['items_per_page'] = $old_settings['user']['max_list_count'];
            break;
    }
    return $settings;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.