function HelpTwigExtension::getTopicLink
Same name and namespace in other branches
- 10 core/modules/help/src/HelpTwigExtension.php \Drupal\help\HelpTwigExtension::getTopicLink()
- 9 core/modules/help_topics/src/HelpTwigExtension.php \Drupal\help_topics\HelpTwigExtension::getTopicLink()
- main core/modules/help/src/HelpTwigExtension.php \Drupal\help\HelpTwigExtension::getTopicLink()
Returns a link to a help topic, or the title of the topic.
Parameters
string $topic_id: The help topic ID.
Return value
array A render array with a generated link to the given topic. If the user does not have permission to view the topic, or an exception occurs, such as the topic not being defined due to a module not being installed, a default string is returned.
See also
\Drupal\Core\Template\TwigExtension::getUrl()
File
-
core/
modules/ help/ src/ HelpTwigExtension.php, line 120
Class
- HelpTwigExtension
- Defines and registers Drupal Twig extensions for rendering help topics.
Namespace
Drupal\helpCode
public function getTopicLink(string $topic_id) : array {
assert($this->pluginManager instanceof HelpTopicPluginManagerInterface, "The plugin manager hasn't been set up. Any configuration YAML file with a service directive dealing with the Twig configuration can cause this, most likely found in a recently installed or changed module.");
$bubbles = new BubbleableMetadata();
$bubbles->addCacheableDependency($this->pluginManager);
try {
$plugin = $this->pluginManager
->createInstance($topic_id);
} catch (PluginNotFoundException) {
// Not a topic.
$plugin = FALSE;
}
if ($plugin) {
$parameters = [
'id' => $topic_id,
];
$route = 'help.help_topic';
$build = $this->getRouteLink($plugin->getLabel(), $route, $parameters);
$bubbles->addCacheableDependency($plugin);
}
else {
$build = [
'#markup' => $this->t('Missing help topic %topic', [
'%topic' => $topic_id,
]),
];
}
$bubbles->applyTo($build);
return $build;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.