You are here

function CourseReportController::objectReports in Course 3.x

Page handler for course object reports.

1 call to CourseReportController::objectReports()
CourseReportController::objectReport in src/Controller/CourseReportController.php
Page handler for course object reports.
1 string reference to 'CourseReportController::objectReports'
course.routing.yml in ./course.routing.yml
course.routing.yml

File

src/Controller/CourseReportController.php, line 62

Class

CourseReportController

Namespace

Drupal\course\Controller

Code

function objectReports(Course $course) {

  // Report navigation.
  $nav = [
    '#id' => 'course-object-reports-content',
    '#attributes' => [
      'valign' => 'top',
    ],
  ];

  // Report content.
  $content = [];

  // Render Array
  $render = array();
  foreach ($course
    ->getObjects() as $courseObject) {
    $items = array();
    if (method_exists($courseObject, 'getReports')) {
      foreach ($courseObject
        ->getReports() as $key => $report) {
        $report['key'] = $key;
        $items[$key] = $this
          ->course_object_single_report_link($courseObject, $report)
          ->toString();
      }
      $nav[$courseObject
        ->id()] = array(
        '#theme' => 'item_list',
        '#title' => $courseObject
          ->getTitle(),
        '#items' => $items,
      );
    }
  }
  if (is_array($content)) {
    $content = Drupal::service('renderer')
      ->render($content);
  }
  $render[0]['nav'] = $nav;
  $render['#type'] = 'table';
  $render['#attributes'] = array(
    'id' => 'course-object-reports',
  );
  return $render;
}