Loading src/TokenOrTokensPreAlter.php +3 −4 Original line number Diff line number Diff line Loading @@ -40,8 +40,6 @@ class TokenOrTokensPreAlter { $match_clean = substr(substr($match, 1), 0, -1); $sub_tokens = explode('|', $match_clean); $multi_token_matches = []; foreach ($sub_tokens as $sub_token) { if (substr($sub_token, 0, 1) === '"' && substr($sub_token, -1, 1) === '"') { // This is a string replacement. Loading @@ -52,10 +50,11 @@ class TokenOrTokensPreAlter { $result = \Drupal::token()->replace('[' . $sub_token . ']', $data, $options); } if ($result) { $multi_token_matches[] = $result; $text = str_replace($match, $result, $text); break; } } $text = $multi_token_matches ? str_replace($match, $multi_token_matches[0], $text) : ''; $text = str_replace($match, '', $text); } } } Loading tests/src/Kernel/TokenOrTest.php +9 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,15 @@ class TokenOrTest extends KernelTestBase { $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]'); $this->assertEmpty($value); $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]/[token_or:test]'); $this->assertEquals('/test', $value); $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]/[token_or:empty|token_or:test]/[token_or:test2]'); $this->assertEquals('/test/test2', $value); $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]/[token_or:empty2|token_or:empty]/[token_or:test2]'); $this->assertEquals('//test2', $value); } /** Loading Loading
src/TokenOrTokensPreAlter.php +3 −4 Original line number Diff line number Diff line Loading @@ -40,8 +40,6 @@ class TokenOrTokensPreAlter { $match_clean = substr(substr($match, 1), 0, -1); $sub_tokens = explode('|', $match_clean); $multi_token_matches = []; foreach ($sub_tokens as $sub_token) { if (substr($sub_token, 0, 1) === '"' && substr($sub_token, -1, 1) === '"') { // This is a string replacement. Loading @@ -52,10 +50,11 @@ class TokenOrTokensPreAlter { $result = \Drupal::token()->replace('[' . $sub_token . ']', $data, $options); } if ($result) { $multi_token_matches[] = $result; $text = str_replace($match, $result, $text); break; } } $text = $multi_token_matches ? str_replace($match, $multi_token_matches[0], $text) : ''; $text = str_replace($match, '', $text); } } } Loading
tests/src/Kernel/TokenOrTest.php +9 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,15 @@ class TokenOrTest extends KernelTestBase { $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]'); $this->assertEmpty($value); $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]/[token_or:test]'); $this->assertEquals('/test', $value); $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]/[token_or:empty|token_or:test]/[token_or:test2]'); $this->assertEquals('/test/test2', $value); $value = $this->tokenService->replace('[token_or:empty|token_or:empty2]/[token_or:empty2|token_or:empty]/[token_or:test2]'); $this->assertEquals('//test2', $value); } /** Loading