From f6a710af14490a9fb0aad9669268366e51e4d6c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EB=B0=B1=ED=98=B8?= Date: Wed, 24 Sep 2025 21:52:19 +0000 Subject: [PATCH] style: add regex redirect formatter --- redirect_regex.install | 38 +++++++++++++++++ .../RedirectRegexSourceFormatter.php | 41 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 redirect_regex.install create mode 100644 src/Plugin/Field/FieldFormatter/RedirectRegexSourceFormatter.php 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; + } + +}