Drupal 8 Moduler, Extrauppgifter – Tisdag 17 Maj

Uppgift 1

Lägg till ännu en route med valfri title och path där du istället för det tidigare hello world exemplet returnerar följande array från en ny metod (funktion) i din existerande HelloWorldController fil.

Detta betyder alltså att du måste lägga till en ny route i din routing.yml fil, du kommer behöva skapa en ny metod i din controller klass.

Din nya route som du lägger till måste ha ett unikt namn.

För mer information om route och controllers så kan ni läsa på Drupals hemsida här.

$content = [];

$content['foo'] = [
 '#type' => 'markup',
 '#markup' => $this->t('Foo'),
 ];
$content['bar'] = [
 '#type' => 'markup',
 '#markup' => $this->t('Bar'),
 ];

$content['baz'] = [
 '#type' => 'markup',
 '#markup' => $this->t('Baz'),
 ];

return $content;

Uppgift 2

Skapa en ny route i eran routing.yml fil med valfri title och path som går till en ny metod du lägger till i din controller-fil. Lägg i samma kontroller-metod även till en drupal_set_message som visar ett meddelande när du går till sidan.

För mer information om hur drupal_set_message fungerar kan ni gå till dokumentationen för funktionen här.

Returnera följande i din metod efter att du satt meddelandet.

return [
  '#type' => 'markup',
  '#markup' => $this->t('I am message!'),
];

Uppgift 3

Skapa ännu en ny route i din routing.yml fil som du döper till din_modul.my_colors.

Sätt titeln för routen till My colors och din path till /my-colors.

Skapa sedan en ny metod i din controller vid namn myColors. Glöm inte att använda samma namn för metoden i din routing.yml fil.

Som innehåll i din metod lägg till följande.

public function myColors() {
  $colors = ['Black', 'Blue', 'Green', 'Red'];

  $build = [];

  foreach ($colors as $color) {
    $build[] = [
      '#type' => 'markup',
      '#markup' => $this->t($color),
    ];
  }

  return $build;
}
0 votes