class RelToAbs in Relative Path to Absolute URLs 8
Provides a filter to convert relative paths to absolute URLs.
Plugin annotation
@Filter(
id = "rel_to_abs",
title = @Translation("Convert relative paths to absolute URLs"),
type = Drupal\filter\Plugin\FilterInterface::TYPE_TRANSFORM_REVERSIBLE
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\filter\Plugin\FilterBase implements FilterInterface
- class \Drupal\rel_to_abs\Plugin\Filter\RelToAbs
- class \Drupal\filter\Plugin\FilterBase implements FilterInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of RelToAbs
1 file declares its use of RelToAbs
- RelToAbsTest.php in src/
Tests/ RelToAbsTest.php
File
- src/
Plugin/ Filter/ RelToAbs.php, line 17
Namespace
Drupal\rel_to_abs\Plugin\FilterView source
class RelToAbs extends FilterBase {
/**
* {@inheritdoc}
*/
public function process($text, $langcode) {
$base_url = \Drupal::url('<front>', array(), array(
'absolute' => TRUE,
'language' => \Drupal::getContainer()
->get('language_manager')
->getLanguage($langcode),
));
$text = $this
->absoluteUrl($text, $base_url);
return new FilterProcessResult($text);
}
/**
* Absolute url callback.
*
* @param string $txt
* Text to be parsed.
* @param string $base_url
* Base url of the site to prefix.
*
* @return string
* Processed text.
*/
public function absoluteUrl($txt, $base_url) {
$needles = array(
'href="',
'src="',
'background="',
);
$new_txt = '';
if (substr($base_url, -1) != '/') {
$base_url .= '/';
}
$new_base_url = $base_url;
// Check if Drupal installed in subdirectory.
$sub_dir = FALSE;
$parts = parse_url($new_base_url);
if ($parts['path'] !== '/') {
$sub_dir = $parts['path'];
}
foreach ($needles as $needle) {
while ($pos = strpos($txt, $needle)) {
$pos += strlen($needle);
if (substr($txt, $pos, 7) != 'http://' && substr($txt, $pos, 8) != 'https://' && substr($txt, $pos, 6) != 'ftp://' && substr($txt, $pos, 7) != 'mailto:' && substr($txt, $pos, 2) != '//' && substr($txt, $pos, 1) != '#' && substr($txt, $pos, 4) != 'tel:') {
$new_txt .= substr($txt, 0, $pos) . $new_base_url;
}
else {
$new_txt .= substr($txt, 0, $pos);
}
$txt = substr($txt, $pos);
// Remove leading sub-directory prefix if site installed in subdir.
if ($sub_dir) {
if (substr($txt, 0, strlen($sub_dir)) == $sub_dir) {
$txt = substr($txt, strlen($sub_dir));
}
}
}
$txt = $new_txt . $txt;
$new_txt = '';
}
return $txt;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FilterBase:: |
public | property | The name of the provider that owns this filter. | |
FilterBase:: |
public | property | An associative array containing the configured settings of this filter. | |
FilterBase:: |
public | property | A Boolean indicating whether this filter is enabled. | |
FilterBase:: |
public | property | The weight of this filter compared to others in a filter collection. | |
FilterBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
1 |
FilterBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
|
FilterBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
FilterBase:: |
public | function |
Returns the administrative description for this filter plugin. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Returns HTML allowed by this filter's configuration. Overrides FilterInterface:: |
4 |
FilterBase:: |
public | function |
Returns the administrative label for this filter plugin. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Returns the processing type of this filter plugin. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Prepares the text for processing. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
1 |
FilterBase:: |
public | function |
Generates a filter's settings form. Overrides FilterInterface:: |
3 |
FilterBase:: |
public | function |
Generates a filter's tip. Overrides FilterInterface:: |
9 |
FilterBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
4 |
FilterInterface:: |
constant | HTML tag and attribute restricting filters to prevent XSS attacks. | ||
FilterInterface:: |
constant | Non-HTML markup language filters that generate HTML. | ||
FilterInterface:: |
constant | Irreversible transformation filters. | ||
FilterInterface:: |
constant | Reversible transformation filters. | ||
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
RelToAbs:: |
public | function | Absolute url callback. | |
RelToAbs:: |
public | function |
Performs the filter processing. Overrides FilterInterface:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |