Skip to content
Snippets Groups Projects
Commit 05dfdaa2 authored by catch's avatar catch
Browse files

Issue #3358402 by totten, lisotton, jensschuppe, larowlan, znerol:...

Issue #3358402 by totten, lisotton, jensschuppe, larowlan, znerol: [regression] route defaults are now automatically route parameters

(cherry picked from commit 75d3d2d1)
parent 60718c0f
No related branches found
No related tags found
27 merge requests!11628Update file MediaLibraryWidget.php,!7564Revert "Issue #3364773 by roshnichordiya, Chris Matthews, thakurnishant_06,...,!5752Issue #3275828 by joachim, quietone, bradjones1, Berdir: document the reason...,!5627Issue #3261805: Field not saved when change of 0 on string start,!5427Issue #3338518: send credentials in ajax if configured in CORS settings.,!5395Issue #3387916 by fjgarlin, Spokje: Each GitLab job exposes user email,!5217Issue #3386607 by alexpott: Improve spell checking in commit-code-check.sh,!5064Issue #3379522 by finnsky, Gauravvvv, kostyashupenko, smustgrave, Chi: Revert...,!5040SDC ComponentElement: Transform slots scalar values to #plain_text instead of throwing an exception,!4958Issue #3392147: Whitelist IP for a Ban module.,!4942Issue #3365945: Errors: The following table(s) do not have a primary key: forum_index,!4894Issue #3280279: Add API to allow sites to opt in to upload SVG images in CKEditor 5,!4857Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!4856Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!4788Issue #3272985: RSS Feed header reverts to text/html when cached,!4716Issue #3362929: Improve 400 responses for broken/invalid image style routes,!4553Draft: Issue #2980951: Permission to see own unpublished comments in comment thread,!4273Add UUID to sections,!4192Issue #3367204: [CKEditor5] Missing dependency on drupal.ajax,!3679Issue #115801: Allow password on registration without disabling e-mail verification,!3106Issue #3017548: "Filtered HTML" text format does not support manual teaser break (<!--break-->),!3066Issue #3325175: Deprecate calling \Drupal\menu_link_content\Form\MenuLinkContentForm::_construct() with the $language_manager argument,!3004Issue #2463967: Use .user.ini file for PHP settings,!2851Issue #2264739: Allow multiple field widgets to not use tabledrag,!1484Exposed filters get values from URL when Ajax is on,!925Issue #2339235: Remove taxonomy hard dependency on node module,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links
......@@ -66,8 +66,10 @@ public function getTitle(Request $request, Route $route) {
$args = [];
if (($raw_parameters = $request->attributes->get('_raw_variables'))) {
foreach ($raw_parameters->all() as $key => $value) {
$args['@' . $key] = $value ?? '';
$args['%' . $key] = $value ?? '';
if (is_scalar($value)) {
$args['@' . $key] = $value;
$args['%' . $key] = $value;
}
}
}
if ($title_arguments = $route->getDefault('_title_arguments')) {
......
......@@ -119,21 +119,24 @@ public function providerTestStaticTitleWithParameter() {
}
/**
* Tests a static title with a NULL value parameter.
* Tests a static title with a non-scalar value parameter.
*
* @see \Drupal\Core\Controller\TitleResolver::getTitle()
*/
public function testStaticTitleWithNullValueParameter() {
$raw_variables = new InputBag(['test' => NULL, 'test2' => 'value']);
public function testStaticTitleWithNullAndArrayValueParameter() {
$raw_variables = new InputBag(['test1' => NULL, 'test2' => ['foo' => 'bar'], 'test3' => 'value']);
$request = new Request();
$request->attributes->set('_raw_variables', $raw_variables);
$route = new Route('/test-route', ['_title' => 'static title %test @test']);
$route = new Route('/test-route', ['_title' => 'static title %test1 @test1 %test2 @test2 %test3 @test3']);
$translatable_markup = $this->titleResolver->getTitle($request, $route);
$this->assertSame('', $translatable_markup->getArguments()['@test']);
$this->assertSame('', $translatable_markup->getArguments()['%test']);
$this->assertSame('value', $translatable_markup->getArguments()['@test2']);
$this->assertSame('value', $translatable_markup->getArguments()['%test2']);
$arguments = $translatable_markup->getArguments();
$this->assertNotContains('@test1', $arguments);
$this->assertNotContains('%test1', $arguments);
$this->assertNotContains('@test2', $arguments);
$this->assertNotContains('%test2', $arguments);
$this->assertSame('value', $translatable_markup->getArguments()['@test3']);
$this->assertSame('value', $translatable_markup->getArguments()['%test3']);
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment