You are here

public function LanguageSwitchLinksDeriver::getDerivativeDefinitions in Cheeseburger Menu 5.0.x

Gets the definition of all derivatives of a base plugin.

Parameters

array $base_plugin_definition: The definition array of the base plugin.

Return value

array An array of full derivative definitions keyed on derivative id.

Overrides DeriverBase::getDerivativeDefinitions

See also

getDerivativeDefinition()

File

src/Plugin/Deriver/LanguageSwitchLinksDeriver.php, line 44

Class

LanguageSwitchLinksDeriver
Provides a deriver for each language.

Namespace

Drupal\cheeseburger_menu\Plugin\Deriver

Code

public function getDerivativeDefinitions($base_plugin_definition) {
  $plugin_definitions = [];
  $languages = $this->languageManager
    ->getLanguages();
  foreach ($languages as $language) {
    $plugin_id = "language_switch_{$language->getId()}";
    $plugin_definitions[$plugin_id] = [
      'id' => $plugin_id,
      'menu_name' => 'language',
      'class' => '\\Drupal\\cheeseburger_menu\\Plugin\\Menu\\LanguageSwitchMenuLink',
      'provider' => 'cheeseburger_menu',
      'options' => [
        'langcode' => $language
          ->getId(),
      ],
      'metadata' => $language
        ->getId(),
      'weight' => $language
        ->getWeight(),
    ];
  }
  return $plugin_definitions;
}