Digital agency · Beervelde (Gent) · Drupal & WordPress

Alle actieve talen ophalen in Drupal 8

Blog

27 april 2016 · 1 min lezen · door Kristof

Drupal

Met Dependency Injection

De mooie manier van werken is via Dependency Injection voor Drupal 8. Deze manier is de meest uitgebreide, maar zorgt wel voor testbaarheid en beste overdraagbaarheid van je code.

class moduleController extends ControllerBase { protected $languageManager;

public function __construct(LanguageManagerInterface $languageManager) { $this->languageManager = $languageManager; }

public static function create(ContainerInterface $container) { return new static( $container->get(‘language_manager’) ); }

public function my_function() { $languagelist = $this->languageManager->getLanguages(); } }

De quick-and-dirty manier

Wil je geen Dependency Injection gebruiken, dan kan je heel eenvoudig de language-list opvragen door onderstaand regeltje code. We roepen uit de “language_manager”-service direct de functie getLanguages() aan die ons een array met language-objecten teruggeeft.

class moduleController extends ControllerBase { public function my_function() { $languagelist = \Drupal::service(‘language_manager’)->getLanguages(); } }

Beschikbare methods op het language-object

Nadien kan je de volgende methods gebruiken om de info op te halen:

  • getDirection()
  • getId()
  • getName()
  • getWeight();
  • isDefault()
  • isLocked()

Een eenvoudige array maken met als key de taalcode en als value de taal ziet er dan zo uit:

foreach($languagelist as $language) { $languages[$language->getId()] = $language->getName(); }

Lees ook

Hulp nodig bij je website of marketing?

Een vrijblijvend gesprek van 30 minuten: we luisteren naar je doelen, kijken naar je huidige site en vertellen eerlijk wat we zouden doen. Geen verkooppraatje.

Stuur ons een bericht

Waarmee kunnen we helpen?

Vertrouwd door o.a.

Bel onsPlan een gesprek