function HelpTopicSection::getPlugins

Same name and namespace in other branches
  1. 9 core/modules/help_topics/src/Plugin/HelpSection/HelpTopicSection.php \Drupal\help_topics\Plugin\HelpSection\HelpTopicSection::getPlugins()
  2. 8.9.x core/modules/help_topics/src/Plugin/HelpSection/HelpTopicSection.php \Drupal\help_topics\Plugin\HelpSection\HelpTopicSection::getPlugins()
  3. 11.x core/modules/help/src/Plugin/HelpSection/HelpTopicSection.php \Drupal\help\Plugin\HelpSection\HelpTopicSection::getPlugins()

Gets the top level help topic plugins.

Return value

\Drupal\help\HelpTopicPluginInterface[] The top level help topic plugins.

2 calls to HelpTopicSection::getPlugins()
HelpTopicSection::getCacheMetadata in core/modules/help/src/Plugin/HelpSection/HelpTopicSection.php
Gets the merged CacheableMetadata for all the top level help topic plugins.
HelpTopicSection::listTopics in core/modules/help/src/Plugin/HelpSection/HelpTopicSection.php
Returns a list of topics to show in the help section.

File

core/modules/help/src/Plugin/HelpSection/HelpTopicSection.php, line 126

Class

HelpTopicSection
Provides the help topics list section for the help page.

Namespace

Drupal\help\Plugin\HelpSection

Code

protected function getPlugins() {
    if (!isset($this->topLevelPlugins)) {
        $definitions = $this->pluginManager
            ->getDefinitions();
        $this->topLevelPlugins = [];
        // Get all the top level topics and merge their list cache tags.
        foreach ($definitions as $definition) {
            if ($definition['top_level']) {
                $this->topLevelPlugins[$definition['id']] = $this->pluginManager
                    ->createInstance($definition['id']);
            }
        }
        // Sort the top level topics by label and, if the labels match, then by
        // plugin ID.
        usort($this->topLevelPlugins, function (HelpTopicPluginInterface $a, HelpTopicPluginInterface $b) {
            $a_label = (string) $a->getLabel();
            $b_label = (string) $b->getLabel();
            if ($a_label === $b_label) {
                return $a->getPluginId() <=> $b->getPluginId();
            }
            return strnatcasecmp($a_label, $b_label);
        });
    }
    return $this->topLevelPlugins;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.