public function CourseBookEventSubscriber::onRequest in Course 8.2
Same name and namespace in other branches
- 8.3 modules/course_book/src/EventSubscriber/CourseBookEventSubscriber.php \Drupal\course_book\EventSubscriber\CourseBookEventSubscriber::onRequest()
- 3.x modules/course_book/src/EventSubscriber/CourseBookEventSubscriber.php \Drupal\course_book\EventSubscriber\CourseBookEventSubscriber::onRequest()
If the current node is a course object, fulfill it for the current user.
Parameters
GetResponseEvent $event:
File
- modules/
course_book/ src/ EventSubscriber/ CourseBookEventSubscriber.php, line 25
Class
Namespace
Drupal\course_book\EventSubscriberCode
public function onRequest(GetResponseEvent $event) {
$route_match = Drupal::routeMatch();
if ($route_match
->getRouteName() == 'entity.node.canonical') {
$node = $route_match
->getParameter('node');
$account = Drupal::currentUser();
$type = $node
->bundle();
if (book_type_is_allowed($type)) {
$search = !empty($node->book['bid']) ? $node->book['bid'] : $node
->id();
if ($courseObject = course_get_course_object('book', $search)) {
$options = array();
// Mark this node as fulfillment in course_book's fulfillment tracking.
if (!empty($node->book['nid'])) {
$options['book_fulfillment'][$node->book['nid']] = TRUE;
$courseObject
->getFulfillment($account)
->addOptions($options)
->save();
}
// "Grade" the book based on previous book page views.
$courseObject
->grade($account);
}
}
}
}