Skip to content
Snippets Groups Projects

Issue #3051664: Allow the GUI of regex_redirect to support targets without a pattern.

1 file
+ 1
5
Compare changes
  • Side-by-side
  • Inline
@@ -75,7 +75,7 @@ class RegexRedirectForm extends ContentEntityForm {
@@ -75,7 +75,7 @@ class RegexRedirectForm extends ContentEntityForm {
$this->t('Enter an internal url regex path with named captures. For example: page\/old\/(?P<nr>[0-9a-z]+). Please be aware that certain characters such as "$" need to be escaped due to it being part of a replacement string.');
$this->t('Enter an internal url regex path with named captures. For example: page\/old\/(?P<nr>[0-9a-z]+). Please be aware that certain characters such as "$" need to be escaped due to it being part of a replacement string.');
$form['regex_redirect_source']['widget'][0]['path']['#size'] = 120;
$form['regex_redirect_source']['widget'][0]['path']['#size'] = 120;
$form['redirect_redirect']['widget'][0]['uri']['#description'] =
$form['redirect_redirect']['widget'][0]['uri']['#description'] =
$this->t('Enter an internal url path with a leading slash and named capture variables between angular brackets. For example: /page/new/<nr>.');
$this->t('Enter an internal URL path with a leading slash and named capture variables between angular brackets. For example: /page/new/<nr>. You can enter any internal page. If you use <nr>, it will be replaced from the source.');
$form['redirect_redirect']['widget'][0]['uri']['#size'] = 120;
$form['redirect_redirect']['widget'][0]['uri']['#size'] = 120;
$form['status_code'] = [
$form['status_code'] = [
'#type' => 'select',
'#type' => 'select',
@@ -217,14 +217,10 @@ class RegexRedirectForm extends ContentEntityForm {
@@ -217,14 +217,10 @@ class RegexRedirectForm extends ContentEntityForm {
// Set the regex delimiter in code to avoid issues with leading slash.
// Set the regex delimiter in code to avoid issues with leading slash.
$delimiter = '/';
$delimiter = '/';
$source_regex = $delimiter . trim($source_path) . $delimiter;
$source_regex = $delimiter . trim($source_path) . $delimiter;
$redirect_regex = str_replace('internal:', '', $redirect_uri);
if (preg_match($source_regex, '') === FALSE) {
if (preg_match($source_regex, '') === FALSE) {
$form_state->setErrorByName('regex_redirect_source', $this->t('The regex redirect source must be a regex pattern.'));
$form_state->setErrorByName('regex_redirect_source', $this->t('The regex redirect source must be a regex pattern.'));
}
}
if (preg_match('/<(.*?)>/', $redirect_regex) !== 1) {
$form_state->setErrorByName('redirect_redirect', $this->t('The regex redirect redirect must contain a named capture (value between <> brackets).'));
}
try {
try {
$source_url = Url::fromUri('internal:/' . $source_path);
$source_url = Url::fromUri('internal:/' . $source_path);
Loading