
| Current Path : /var/www/html/ift/web/core/modules/system/tests/modules/menu_test/src/Theme/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/ift/web/core/modules/system/tests/modules/menu_test/src/Theme/TestThemeNegotiator.php |
<?php
namespace Drupal\menu_test\Theme;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Theme\ThemeNegotiatorInterface;
/**
* Tests the theme negotiation functionality.
*
* Retrieves the theme key of the theme to use for the current request based on
* the theme name provided in the URL.
*/
class TestThemeNegotiator implements ThemeNegotiatorInterface {
/**
* {@inheritdoc}
*/
public function applies(RouteMatchInterface $route_match) {
return (bool) $route_match->getParameter('inherited');
}
/**
* {@inheritdoc}
*/
public function determineActiveTheme(RouteMatchInterface $route_match) {
$argument = $route_match->getParameter('inherited');
// Test using the variable administrative theme.
if ($argument == 'use-admin-theme') {
return \Drupal::config('system.theme')->get('admin');
}
// Test using a theme that exists, but may or may not be installed.
elseif ($argument == 'use-test-theme') {
return 'test_theme';
}
// Test using a theme that does not exist.
elseif ($argument == 'use-fake-theme') {
return 'fake_theme';
}
// For any other value of the URL argument, do not return anything. This
// allows us to test that returning nothing from a theme negotiation
// causes the page to correctly fall back on using the main site theme.
}
}