You are here

function quiz_load in Quiz 7.5

Same name and namespace in other branches
  1. 5.2 quiz.module \quiz_load()
  2. 5 quiz.module \quiz_load()
  3. 6.6 quiz.module \quiz_load()
  4. 6.2 quiz.module \quiz_load()
  5. 6.3 quiz.module \quiz_load()
  6. 6.4 quiz.module \quiz_load()
  7. 6.5 quiz.module \quiz_load()
  8. 7.6 quiz.module \quiz_load()
  9. 7 quiz.module \quiz_load()
  10. 7.4 quiz.module \quiz_load()

Implements hook_load().

Load up quiz properties onto quiz nodes.

File

./quiz.module, line 1004
quiz.module Main file for the Quiz module.

Code

function quiz_load($nodes) {
  foreach ($nodes as $node) {
    $vids[] = $node->vid;
  }
  $quiz_properties = entity_load('quiz', FALSE, array(
    'vid' => $vids,
  ));
  foreach ($quiz_properties as $qnp_id => $props) {
    $nodes[$props->nid]->quiz = new stdClass();
    foreach ($props as $name => $value) {
      if (!in_array($name, array(
        'uid',
        'nid',
        'vid',
      ))) {
        $nodes[$props->nid]->{$name} = $value;

        // Workaround to expose Quiz to Entity API.
        $nodes[$props->nid]->quiz->{$name} = $value;
      }
    }
  }

  // Fetching result options.
  $query = db_select('quiz_node_result_options', 'qnro');
  $query
    ->fields('qnro');
  $query
    ->condition('vid', $vids);
  $options = $query
    ->execute();
  foreach ($options as $option) {
    $nodes[$option->nid]->resultoptions[$option->option_id] = (array) $option;
    $nodes[$option->nid]->quiz->resultoptions[$option->option_id] = (array) $option;
  }
}