public function CourseViewBuilder::build in Course 8.3
Same name and namespace in other branches
- 8.2 src/View/CourseViewBuilder.php \Drupal\course\View\CourseViewBuilder::build()
- 3.x src/View/CourseViewBuilder.php \Drupal\course\View\CourseViewBuilder::build()
Builds an entity's view; augments entity defaults.
This function is assigned as a #pre_render callback in ::view().
It transforms the renderable array for a single entity to the same structure as if we were rendering multiple entities, and then calls the default ::buildMultiple() #pre_render callback.
Parameters
array $build: A renderable array containing build information and context for an entity view.
Return value
array The updated renderable array.
Overrides EntityViewBuilder::build
See also
\Drupal\Core\Render\RendererInterface::render()
File
- src/
View/ CourseViewBuilder.php, line 13
Class
Namespace
Drupal\course\ViewCode
public function build(array $build) {
$build = parent::build($build);
/* @var $course Course */
$course = $build['#course'];
$account = \Drupal::currentUser();
$enrollment = $course
->getEnrollment($account);
if ($enrollment && $enrollment->status) {
// User is already in course. Check take access.
$access = $course
->access('take', $account, TRUE);
}
else {
// User not in course. Check enroll access.
$access = $course
->access('enroll', $account, TRUE);
}
if (!$access
->isAllowed()) {
$build['course_messages']['#markup'] = '<div class="course-restriction">' . "<h2>" . 'Access denied' . "</h2>" . '<div class="course-restriction-message">' . $access
->getReason() . '</div></div>';
}
else {
// Render take course button.
$build['course'] = [
'#theme' => 'course_take_course_button',
'#course' => $course,
];
}
return $build;
}