Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
drupal
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Custom Issue Tracker
Custom Issue Tracker
Labels
Merge Requests
292
Merge Requests
292
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
project
drupal
Commits
1003490b
Commit
1003490b
authored
Apr 28, 2016
by
catch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue
#2707261
by alexpott, jhodgdon: Calling moduleInvokeAll in Help block is wrong
parent
942c1cff
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
8 deletions
+65
-8
core/modules/help/src/Plugin/Block/HelpBlock.php
core/modules/help/src/Plugin/Block/HelpBlock.php
+12
-7
core/modules/help/src/Tests/HelpBlockTest.php
core/modules/help/src/Tests/HelpBlockTest.php
+7
-1
core/modules/help/tests/modules/help_page_test/help_page_test.module
...s/help/tests/modules/help_page_test/help_page_test.module
+2
-0
core/modules/help/tests/modules/help_page_test/help_page_test.routing.yml
...p/tests/modules/help_page_test/help_page_test.routing.yml
+7
-0
core/modules/help/tests/modules/help_page_test/src/HelpPageTestController.php
...sts/modules/help_page_test/src/HelpPageTestController.php
+10
-0
core/modules/help/tests/modules/more_help_page_test/more_help_page_test.info.yml
.../modules/more_help_page_test/more_help_page_test.info.yml
+7
-0
core/modules/help/tests/modules/more_help_page_test/more_help_page_test.module
...ts/modules/more_help_page_test/more_help_page_test.module
+20
-0
No files found.
core/modules/help/src/Plugin/Block/HelpBlock.php
View file @
1003490b
...
...
@@ -88,14 +88,19 @@ public function build() {
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
;
}
...
...
core/modules/help/src/Tests/HelpBlockTest.php
View file @
1003490b
...
...
@@ -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 @@ public function testHelp() {
$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.'
);
}
}
core/modules/help/tests/modules/help_page_test/help_page_test.module
View file @
1003490b
...
...
@@ -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
...
...
core/modules/help/tests/modules/help_page_test/help_page_test.routing.yml
View file @
1003490b
...
...
@@ -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'
core/modules/help/tests/modules/help_page_test/src/HelpPageTestController.php
View file @
1003490b
...
...
@@ -27,4 +27,14 @@ public function noHelp() {
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().'
];
}
}
core/modules/help/tests/modules/more_help_page_test/more_help_page_test.info.yml
0 → 100644
View file @
1003490b
name
:
'
More
Help
Page
Test'
type
:
module
description
:
'
Module
to
test
the
help
page.'
package
:
Testing
version
:
VERSION
core
:
8.x
hidden
:
true
core/modules/help/tests/modules/more_help_page_test/more_help_page_test.module
0 → 100644
View file @
1003490b
<?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.'
];
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment