You are here

public function FilterHtml::process in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/filter/src/Plugin/Filter/FilterHtml.php \Drupal\filter\Plugin\Filter\FilterHtml::process()

Performs the filter processing.

Parameters

string $text: The text string to be filtered.

string $langcode: The language code of the text to be filtered.

Return value

\Drupal\filter\FilterProcessResult The filtered text, wrapped in a FilterProcessResult object, and possibly with associated assets, cacheability metadata and placeholders.

Overrides FilterInterface::process

See also

\Drupal\filter\FilterProcessResult

File

core/modules/filter/src/Plugin/Filter/FilterHtml.php, line 85

Class

FilterHtml
Provides a filter to limit allowed HTML tags.

Namespace

Drupal\filter\Plugin\Filter

Code

public function process($text, $langcode) {
  $restrictions = $this
    ->getHtmlRestrictions();

  // Split the work into two parts. For filtering HTML tags out of the content
  // we rely on the well-tested Xss::filter() code. Since there is no '*' tag
  // that needs to be removed from the list.
  unset($restrictions['allowed']['*']);
  $text = Xss::filter($text, array_keys($restrictions['allowed']));

  // After we've done tag filtering, we do attribute and attribute value
  // filtering as the second part.
  return new FilterProcessResult($this
    ->filterAttributes($text));
}