You are here

public static function CourseObjectQuiz::getNodeInstances in Course 8.3

Same name and namespace in other branches
  1. 8.2 modules/course_quiz/src/Plugin/course/CourseObject/CourseObjectQuiz.php \Drupal\course_quiz\Plugin\course\CourseObject\CourseObjectQuiz::getNodeInstances()
  2. 3.x modules/course_quiz/src/Plugin/course/CourseObject/CourseObjectQuiz.php \Drupal\course_quiz\Plugin\course\CourseObject\CourseObjectQuiz::getNodeInstances()

Course node context handler callback.

If this question is part of a quiz in a course, what quizzes do we belong to?

File

modules/course_quiz/src/Plugin/course/CourseObject/CourseObjectQuiz.php, line 204

Class

CourseObjectQuiz
Plugin annotation @CourseObject( id = "quiz", label = "Quiz", handlers = { "fulfillment" = "\Drupal\course_quiz\Plugin\course\CourseObject\CourseObjectQuizFulfillment" } )

Namespace

Drupal\course_quiz\Plugin\course\CourseObject

Code

public static function getNodeInstances($node) {
  $quizzes = array();

  // Finding quizzes this question already belongs to.
  $sql = 'SELECT n.nid, r.parent_vid AS vid, n.title FROM {quiz_node_relationship} r
            JOIN {node} n ON n.nid = r.parent_nid
            WHERE r.child_vid = :child_vid
            ORDER BY r.parent_vid DESC';
  $res = Drupal::database()
    ->query($sql, array(
    ':child_vid' => $node->vid,
  ));
  while ($row = $res
    ->fetch()) {
    $quizzes[] = $row->nid;
  }
  return $quizzes;
}