FilterSettings.php

Same filename in other branches
  1. 8.9.x core/modules/filter/src/Plugin/migrate/process/FilterSettings.php
  2. 10 core/modules/filter/src/Plugin/migrate/process/FilterSettings.php
  3. 11.x core/modules/filter/src/Plugin/migrate/process/FilterSettings.php

Namespace

Drupal\filter\Plugin\migrate\process

File

core/modules/filter/src/Plugin/migrate/process/FilterSettings.php

View source
<?php

namespace Drupal\filter\Plugin\migrate\process;

use Drupal\migrate\ProcessPluginBase;
use Drupal\migrate\MigrateExecutableInterface;
use Drupal\migrate\Row;

/**
 * Adds the default allowed attributes to filter_html's allowed_html setting.
 *
 * E.g. map '<a>' to '<a href hreflang dir>'.
 *
 * @MigrateProcessPlugin(
 *   id = "filter_settings",
 *   handle_multiples = TRUE
 * )
 */
class FilterSettings extends ProcessPluginBase {
    
    /**
     * Default attributes for migrating filter_html's 'allowed_html' setting.
     *
     * @var string[]
     */
    protected $allowedHtmlDefaultAttributes = [
        '<a>' => '<a href hreflang>',
        '<blockquote>' => '<blockquote cite>',
        '<ol>' => '<ol start type>',
        '<ul>' => '<ul type>',
        '<img>' => '<img src alt height width>',
        '<h2>' => '<h2 id>',
        '<h3>' => '<h3 id>',
        '<h4>' => '<h4 id>',
        '<h5>' => '<h5 id>',
        '<h6>' => '<h6 id>',
    ];
    
    /**
     * {@inheritdoc}
     */
    public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
        // Only the filter_html filter's settings have a changed format.
        if ($row->getDestinationProperty('id') === 'filter_html') {
            if (!empty($value['allowed_html'])) {
                $value['allowed_html'] = str_replace(array_keys($this->allowedHtmlDefaultAttributes), array_values($this->allowedHtmlDefaultAttributes), $value['allowed_html']);
            }
        }
        elseif ($row->getDestinationProperty('id') === 'filter_null') {
            $value = [];
        }
        return $value;
    }

}

Classes

Title Deprecated Summary
FilterSettings Adds the default allowed attributes to filter_html's allowed_html setting.

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