public function ShurlyFilter::process in ShURLy 8
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
- src/
Plugin/ Filter/ ShurlyFilter.php, line 19
Class
- ShurlyFilter
- Plugin annotation @Filter( id = "shurly_filter", title = @Translation("Shorten all outgoing URL's"), description = @Translation("All links starting with http or https will be replaced."), type = …
Namespace
Drupal\shurly\Plugin\FilterCode
public function process($text, $langcode) {
preg_match_all('/<a[^>]*href="(http[^"]*)"[^>]*>/i', $text, $links);
if (!empty($links)) {
$links = $links[1];
foreach ($links as $key => $link) {
$short_url = shurly_shorten($link);
if ($short_url['success'] === TRUE) {
$text = str_replace('"' . $link . '"', '"' . $short_url['shortUrl'] . '"', $text);
}
}
}
return new FilterProcessResult($text);
}