function QuizResultController::load in Quiz 7.6
Overridden.
In contrast to the parent implementation we factor out query execution, so fetching can be further customized easily.
Overrides EntityAPIController::load
See also
DrupalDefaultEntityController#load($ids, $conditions)
File
- includes/
QuizResultController.class.inc, line 23
Class
Code
function load($ids = array(), $conditions = array()) {
$quiz_results = parent::load($ids, $conditions);
foreach ($quiz_results as $quiz_result) {
$quiz_node_relationships = entity_load('quiz_question_relationship', FALSE, array(
'parent_nid' => $quiz_result->nid,
'parent_vid' => $quiz_result->vid,
));
$relationships = array();
foreach ($quiz_node_relationships as $quiz_node_relationship) {
$relationships[$quiz_node_relationship->child_nid] = $quiz_node_relationship;
}
$quiz_result_answers = entity_load('quiz_result_answer', FALSE, array(
'result_id' => $quiz_result->result_id,
));
if ($quiz_result_answers) {
foreach ($quiz_result_answers as $quiz_result_answer) {
$wrap = entity_metadata_wrapper('quiz_result_answer', $quiz_result_answer);
$type = $wrap->question_nid
->value()->type;
if (!empty($relationships[$quiz_result_answer->question_nid])) {
$relationship = $relationships[$quiz_result_answer->question_nid];
}
$quiz_result->layout[$quiz_result_answer->number] = array(
'display_number' => $quiz_result_answer->number,
'nid' => $quiz_result_answer->question_nid,
'vid' => $quiz_result_answer->question_vid,
'tid' => $quiz_result_answer->tid,
'number' => $quiz_result_answer->number,
'type' => $type,
'qnr_id' => isset($relationship) ? $relationship->qnr_id : NULL,
'qnr_pid' => isset($relationship) ? $relationship->qnr_pid : NULL,
);
}
ksort($quiz_result->layout, SORT_NUMERIC);
}
else {
$quiz_result->layout = array();
}
}
return $quiz_results;
}