class BlockSettings

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

Determines the block settings.

Hierarchy

Expanded class hierarchy of BlockSettings

1 file declares its use of BlockSettings
BlockSettingsTest.php in core/modules/block/tests/src/Unit/Plugin/migrate/process/BlockSettingsTest.php

File

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

Namespace

Drupal\block\Plugin\migrate\process
View source
class BlockSettings extends ProcessPluginBase implements ContainerFactoryPluginInterface {
    
    /**
     * The block manager service.
     *
     * @var \Drupal\Core\Block\BlockManagerInterface
     */
    protected readonly BlockManagerInterface $blockManager;
    public function __construct(array $configuration, $plugin_id, $plugin_definition, ?BlockManagerInterface $blockManager = NULL) {
        if (empty($blockManager)) {
            @trigger_error('Calling ' . __METHOD__ . '() without the $blockManager parameter is deprecated in drupal:11.2.0 and must be provided in drupal:12.0.0. See https://www.drupal.org/node/3522023', E_USER_DEPRECATED);
            $blockManager = \Drupal::service(BlockManagerInterface::class);
        }
        $this->blockManager = $blockManager;
        parent::__construct($configuration, $plugin_id, $plugin_definition);
    }
    
    /**
     * {@inheritdoc}
     */
    public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) : static {
        return new static($configuration, $plugin_id, $plugin_definition, $container->get(BlockManagerInterface::class));
    }
    
    /**
     * {@inheritdoc}
     *
     * Set the block configuration.
     */
    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;
        }
        // Let the block plugin fill in any missing settings.
        $settings = $this->blockManager
            ->createInstance($plugin, $settings)
            ->getConfiguration();
        return $settings;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
BlockSettings::$blockManager protected property The block manager service.
BlockSettings::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
BlockSettings::transform public function Set the block configuration. Overrides ProcessPluginBase::transform
BlockSettings::__construct public function
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 7
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 3
ProcessPluginBase::$stopPipeline protected property Determines if processing of the pipeline is stopped.
ProcessPluginBase::isPipelineStopped public function Determines if the pipeline should stop processing. Overrides MigrateProcessInterface::isPipelineStopped
ProcessPluginBase::multiple public function Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface::multiple 3
ProcessPluginBase::reset public function Resets the internal data of a plugin. Overrides MigrateProcessInterface::reset
ProcessPluginBase::stopPipeline protected function Stops pipeline processing after this plugin finishes.

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