diff --git a/redirect_regex.install b/redirect_regex.install new file mode 100644 index 0000000..30b1c2f --- /dev/null +++ b/redirect_regex.install @@ -0,0 +1,38 @@ +getEditable('views.view.redirect'); + + // Update the field type in the default display. + $field_config = &$config->get('display.default.display_options.fields.redirect_source__path'); + if ($field_config && isset($field_config['type'])) { + $field_config['type'] = 'redirect_regex_source'; + $config->set('display.default.display_options.fields.redirect_source__path', $field_config); + $config->save(); + } +} + +/** + * Update redirect view to use regex source formatter. + */ +function redirect_regex_update_10001() { + _redirect_regex_update_view_config(); +} diff --git a/src/Plugin/Field/FieldFormatter/RedirectRegexSourceFormatter.php b/src/Plugin/Field/FieldFormatter/RedirectRegexSourceFormatter.php new file mode 100644 index 0000000..4c08d8e --- /dev/null +++ b/src/Plugin/Field/FieldFormatter/RedirectRegexSourceFormatter.php @@ -0,0 +1,41 @@ + $item) { + $uri = urldecode($item->getUrl()->toString()); + $find = '/regex:'; + if (str_starts_with($uri, $find)) { + $uri = '[RegEx] '. substr($uri, strlen($find)); + } + $elements[$delta] = [ + '#markup' => $uri, + ]; + } + + return $elements; + } + +}