Update to Drupal 8.1.1. For more information, see https://www.drupal.org/node/2718713
This commit is contained in:
parent
c0a0d5a94c
commit
9eae24d844
669 changed files with 3873 additions and 1553 deletions
|
@ -114,7 +114,7 @@ class HelpController extends ControllerBase {
|
|||
public function helpPage($name) {
|
||||
$build = array();
|
||||
if ($this->moduleHandler()->implementsHook($name, 'help')) {
|
||||
$module_name = $this->moduleHandler()->getName($name);
|
||||
$module_name = $this->moduleHandler()->getName($name);
|
||||
$build['#title'] = $module_name;
|
||||
|
||||
$info = system_get_info('module', $name);
|
||||
|
|
|
@ -88,14 +88,19 @@ class HelpBlock extends BlockBase implements ContainerFactoryPluginInterface {
|
|||
return [];
|
||||
}
|
||||
|
||||
$help = $this->moduleHandler->invokeAll('help', array($this->routeMatch->getRouteName(), $this->routeMatch));
|
||||
$implementations = $this->moduleHandler->getImplementations('help');
|
||||
$build = [];
|
||||
|
||||
// Remove any empty strings from $help.
|
||||
foreach (array_filter($help) as $item) {
|
||||
// Convert strings to #markup render arrays so that they will XSS admin
|
||||
// filtered.
|
||||
$build[] = is_array($item) ? $item : ['#markup' => $item];
|
||||
$args = [
|
||||
$this->routeMatch->getRouteName(),
|
||||
$this->routeMatch,
|
||||
];
|
||||
foreach ($implementations as $module) {
|
||||
// Don't add empty strings to $build array.
|
||||
if ($help = $this->moduleHandler->invoke($module, 'help', $args)) {
|
||||
// Convert strings to #markup render arrays so that they will XSS admin
|
||||
// filtered.
|
||||
$build[] = is_array($help) ? $help : ['#markup' => $help];
|
||||
}
|
||||
}
|
||||
return $build;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ class HelpBlockTest extends WebTestBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['help', 'help_page_test', 'block'];
|
||||
public static $modules = ['help', 'help_page_test', 'block', 'more_help_page_test'];
|
||||
|
||||
/**
|
||||
* The help block instance.
|
||||
|
@ -39,6 +39,12 @@ class HelpBlockTest extends WebTestBase {
|
|||
$this->drupalGet('help_page_test/no_help');
|
||||
// The help block should not appear when there is no help.
|
||||
$this->assertNoText($this->helpBlock->label());
|
||||
|
||||
// Ensure that if two hook_help() implementations both return a render array
|
||||
// the output is as expected.
|
||||
$this->drupalGet('help_page_test/test_array');
|
||||
$this->assertText('Help text from more_help_page_test_help module.');
|
||||
$this->assertText('Help text from help_page_test_help module.');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -51,12 +51,12 @@ class HelpTest extends WebTestBase {
|
|||
* Logs in users, tests help pages.
|
||||
*/
|
||||
public function testHelp() {
|
||||
// Login the root user to ensure as many admin links appear as possible on
|
||||
// Log in the root user to ensure as many admin links appear as possible on
|
||||
// the module overview pages.
|
||||
$this->drupalLogin($this->rootUser);
|
||||
$this->verifyHelp();
|
||||
|
||||
// Login the regular user.
|
||||
// Log in the regular user.
|
||||
$this->drupalLogin($this->anyUser);
|
||||
$this->verifyHelp(403);
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@ function help_page_test_help($route_name, RouteMatchInterface $route_match) {
|
|||
return t('Read the <a href=":url">online documentation for the Help Page Test module</a>.', [':url' => 'http://www.example.com']);
|
||||
case 'help_page_test.has_help':
|
||||
return t('I have help!');
|
||||
case 'help_page_test.test_array':
|
||||
return ['#markup' => 'Help text from help_page_test_help module.'];
|
||||
}
|
||||
|
||||
// Ensure that hook_help() can return an empty string and not cause the block
|
||||
|
|
|
@ -11,3 +11,10 @@ help_page_test.no_help:
|
|||
_controller: '\Drupal\help_page_test\HelpPageTestController::noHelp'
|
||||
requirements:
|
||||
_access: 'TRUE'
|
||||
|
||||
help_page_test.test_array:
|
||||
path: '/help_page_test/test_array'
|
||||
defaults:
|
||||
_controller: '\Drupal\help_page_test\HelpPageTestController::testArray'
|
||||
requirements:
|
||||
_access: 'TRUE'
|
||||
|
|
|
@ -27,4 +27,14 @@ class HelpPageTestController {
|
|||
return ['#markup' => 'A route without help.'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides a route which has multiple array returns from hook_help().
|
||||
*
|
||||
* @return array
|
||||
* A render array.
|
||||
*/
|
||||
public function testArray() {
|
||||
return ['#markup' => 'A route which has multiple array returns from hook_help().'];
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
name: 'More Help Page Test'
|
||||
type: module
|
||||
description: 'Module to test the help page.'
|
||||
package: Testing
|
||||
version: VERSION
|
||||
core: 8.x
|
||||
hidden: true
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* More Help Page Test module to test the help blocks.
|
||||
*/
|
||||
|
||||
use \Drupal\Core\Routing\RouteMatchInterface;
|
||||
|
||||
/**
|
||||
* Implements hook_help().
|
||||
*/
|
||||
function more_help_page_test_help($route_name, RouteMatchInterface $route_match) {
|
||||
|
||||
switch ($route_name) {
|
||||
// Return help for the same route as the help_page_test module.
|
||||
case 'help_page_test.test_array':
|
||||
return ['#markup' => 'Help text from more_help_page_test_help module.'];
|
||||
}
|
||||
}
|
Reference in a new issue