function FundamentalCompatibilityConstraintValidator::findHtmlRestrictorFilterNotAllowingTags

Same name in other branches
  1. 9 core/modules/ckeditor5/src/Plugin/Validation/Constraint/FundamentalCompatibilityConstraintValidator.php \Drupal\ckeditor5\Plugin\Validation\Constraint\FundamentalCompatibilityConstraintValidator::findHtmlRestrictorFilterNotAllowingTags()
  2. 11.x core/modules/ckeditor5/src/Plugin/Validation/Constraint/FundamentalCompatibilityConstraintValidator.php \Drupal\ckeditor5\Plugin\Validation\Constraint\FundamentalCompatibilityConstraintValidator::findHtmlRestrictorFilterNotAllowingTags()

Analyzes a text format to find the filter not allowing required tags.

Parameters

\Drupal\filter\FilterFormatInterface $text_format: A text format whose filters to check for compatibility.

\Drupal\ckeditor5\HTMLRestrictions $required: A set of HTML restrictions, listing required HTML tags.

Return value

\Drupal\filter\Plugin\FilterInterface The filter plugin instance not allowing the required tags.

Throws

\InvalidArgumentException

1 call to FundamentalCompatibilityConstraintValidator::findHtmlRestrictorFilterNotAllowingTags()
FundamentalCompatibilityConstraintValidator::checkHtmlRestrictionsAreCompatible in core/modules/ckeditor5/src/Plugin/Validation/Constraint/FundamentalCompatibilityConstraintValidator.php
Checks that fundamental CKEditor 5 plugins' HTML tags are allowed.

File

core/modules/ckeditor5/src/Plugin/Validation/Constraint/FundamentalCompatibilityConstraintValidator.php, line 289

Class

FundamentalCompatibilityConstraintValidator
Validates fundamental compatibility of CKEditor 5 with the given text format.

Namespace

Drupal\ckeditor5\Plugin\Validation\Constraint

Code

private static function findHtmlRestrictorFilterNotAllowingTags(FilterFormatInterface $text_format, HTMLRestrictions $required) : FilterInterface {
    // Get HTML restrictor filters that actually restrict HTML.
    $filters = static::getFiltersInFormatOfType($text_format, FilterInterface::TYPE_HTML_RESTRICTOR, function (FilterInterface $filter) {
        return $filter->getHTMLRestrictions() !== FALSE;
    });
    foreach ($filters as $filter) {
        // Return any filter not allowing >=1 of the required tags.
        if (!$required->diff(HTMLRestrictions::fromFilterPluginInstance($filter))
            ->allowsNothing()) {
            return $filter;
        }
    }
    throw new \InvalidArgumentException('This text format does not have a "tags allowed" restriction that excludes the required tags.');
}

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