diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 0938b57..aa76705 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -1263,7 +1263,7 @@ function theme_invoke($hook, &$args = array()) { foreach ($theme_keys as $theme_key) { $function = $theme_key . '_' . $hook; if (function_exists($function)) { - return call_user_func_array($function, $args); + call_user_func_array($function, $args); } } } diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemePrepareTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemePrepareTest.php index 089ab48..9614924 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemePrepareTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemePrepareTest.php @@ -36,31 +36,162 @@ function setUp() { function testThemePrepare() { $this->drupalGet('theme-test/prepare'); - $this->assertRaw('
moduleVariable1: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleVariable2: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleVariableSuggestion1: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleVariableSuggestion2: Drupal\theme_test\ThemeTestController::prepare|theme_test_theme_prepare_theme_test_prepare__implemented|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|test_theme_theme_prepare_theme_test_prepare__implemented|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter|theme_test_theme_prepare_theme_test_prepare__implemented_alter
'); - $this->assertRaw('moduleVariableSuggestion3: Drupal\theme_test\ThemeTestController::prepare|theme_test_theme_prepare_theme_test_prepare__implemented__extended|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|test_theme_theme_prepare_theme_test_prepare__implemented__extended|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter|theme_test_theme_prepare_theme_test_prepare__implemented__extended_alter
'); - $this->assertRaw('moduleElement1: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable1: theme_test_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('themeInjectedVariable1: test_theme_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleElementSuggestion1: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable1: theme_test_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('themeInjectedVariable1: test_theme_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleElementSuggestion2: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable1: theme_test_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('themeInjectedVariable1: test_theme_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleElementSuggestion3: Drupal\theme_test\ThemeTestController::prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable1: theme_test_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('themeInjectedVariable1: test_theme_theme_prepare|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); - $this->assertRaw('moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter|test_theme_theme_prepare|test_theme_theme_prepare_theme_test_prepare|theme_test_theme_prepare_alter|test_theme_theme_prepare_alter
'); + + $this->assertRaw('moduleVariable1: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleVariable2: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleVariableSuggestion1: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleVariableSuggestion2: Drupal\theme_test\ThemeTestController::prepare
+theme_test_theme_prepare_theme_test_prepare__implemented
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+test_theme_theme_prepare_theme_test_prepare__implemented
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
+theme_test_theme_prepare_theme_test_prepare__implemented_alter
moduleVariableSuggestion3: Drupal\theme_test\ThemeTestController::prepare
+theme_test_theme_prepare_theme_test_prepare__implemented__extended
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+test_theme_theme_prepare_theme_test_prepare__implemented__extended
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
+theme_test_theme_prepare_theme_test_prepare__implemented__extended_alter
moduleElement1: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable1: theme_test_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
themeInjectedVariable1: test_theme_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleElementSuggestion1: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable1: theme_test_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
themeInjectedVariable1: test_theme_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleElementSuggestion2: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable1: theme_test_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
themeInjectedVariable1: test_theme_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleElementSuggestion3: Drupal\theme_test\ThemeTestController::prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable1: theme_test_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable2: theme_test_theme_prepare_theme_test_prepare_element
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
themeInjectedVariable1: test_theme_theme_prepare
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter
moduleInjectedVariable3: theme_test_theme_prepare_theme_test_prepare_element_alter
+test_theme_theme_prepare
+test_theme_theme_prepare_theme_test_prepare
+theme_test_theme_prepare_alter
+test_theme_theme_prepare_alter