function JsExampleController::showAccordion

Accordion page implementation.

We're allowing a twig template to define our content in this case, which isn't normally how things work, but it's easier to demonstrate the JavaScript this way.

Return value

array A render array.

1 string reference to 'JsExampleController::showAccordion'
js_example.routing.yml in modules/js_example/js_example.routing.yml
modules/js_example/js_example.routing.yml

File

modules/js_example/src/Controller/JsExampleController.php, line 89

Class

JsExampleController
Controller for JavaScript Example description page.

Namespace

Drupal\js_example\Controller

Code

public function showAccordion() {
  // We get all the page content from a theme hook. This is not a good
  // practice, though: Theme hooks should just theme the content they obtain.
  $build['accordion'] = [
    '#theme' => 'js_example_accordion',
    '#title' => $this->t('Click on sections to expand or collapse them.'),
  ];
  // phpcs:disable Drupal.Commenting.InlineComment.InvalidEndChar
  // phpcs:disable Drupal.Commenting.InlineComment.SpacingAfter
  // The usual way to attach a library to a page is adding it to the render
  // array via the #attached property. In this case, we added it via the
  // template file we use. This is why the following lines are commented out.
  //
  // $build['accordion']['#attached']['library'][] = 'js_example/accordion';
  return $build;
}