You are here

function quiz_node_load in Quiz 8.4

Implements hook_node_load().

File

./quiz.module, line 1379
Quiz Module

Code

function quiz_node_load($nodes) {
  foreach ($nodes as $nid => $node) {
    if ($node
      ->getType() == 'quiz') {

      // Fetching defaults.
      $default_additions = _quiz_get_node_defaults();

      // Fetching node settings.
      $query = db_select('quiz_node_properties', 'qnp');
      foreach (array_keys($default_additions) as $field) {
        $query
          ->addField('qnp', $field);
      }
      $query
        ->condition('vid', $node
        ->getRevisionId());
      $query
        ->condition('nid', $node
        ->id());
      $fetched_additions = (array) $query
        ->execute()
        ->fetch();
      $additions = $fetched_additions ? (object) ($fetched_additions += $default_additions) : NULL;

      // Fetching result options.
      $query = db_select('quiz_node_result_options', 'qnro');
      $query
        ->fields('qnro');
      $query
        ->condition('nid', $node
        ->id());
      $query
        ->condition('vid', $node
        ->getRevisionId());
      $options = $query
        ->execute();
      foreach ($options as $option) {
        $additions->resultoptions[$option->option_id] = (array) $option;
      }
      foreach ($additions as $property => &$value) {
        $node->{$property} = $value;
      }
    }
  }
}