function &fetchQuestionResultList($asObject = false, $persistent = true) { $rows = eZPersistentObject::fetchObjectList(eZSurveyQuestionResult::definition(), null, array('result_id' => $this->attribute('id')), false, null, $asObject); if ($asObject) { return $rows; } $extraResultArray = array(); if ($persistent === true) { $extraResults = eZPersistentObject::fetchObjectList(eZSurveyQuestionMetaData::definition(), null, array('result_id' => $this->attribute('id')), false, null, $asObject); if (count($extraResults) > 0) { foreach ($extraResults as $extraResult) { $extraResultArray[$extraResult['question_id']] = $extraResult; } } } $resultRows = array(); foreach ($rows as $row) { if (!isset($resultRows[(string) $row['question_id']])) { $resultRows[(string) $row['question_id']] = array(); } $resultRows[(string) $row['question_id']]['content'][$row['text']] = $row['text']; $resultRows[(string) $row['question_id']]['text'] = $row['text']; if (isset($extraResultArray[(string) $row['question_id']])) { $resultRows[(string) $row['question_id']]['extra_info'] = $extraResultArray[(string) $row['question_id']]; } } return $resultRows; }
function &fetchResultItem($question, $result_id, $metadata = false) { $labelArray = array(); foreach ($question->Options as $option) { $labelArray[$option['value']] = $option['label']; } $result = eZPersistentObject::fetchObjectList(eZSurveyQuestionResult::definition(), 'text', array('question_id' => $question->attribute('id'), 'result_id' => $result_id), array(), null, false); $extraResult = eZPersistentObject::fetchObjectList(eZSurveyQuestionMetaData::definition(), 'text', array('question_id' => $question->attribute('id'), 'result_id' => $result_id), array(), null, false); $resultArray = array(); foreach (array_keys($result) as $key) { $label = ''; $extraValue = ''; if (isset($result[$key]['text']) and isset($labelArray[$result[$key]['text']])) { $label = $labelArray[$result[$key]['text']]; } if (isset($extraResult[0]['name']) and $extraResult[0]['name'] == $result[$key]['text']) { $extraValue = $extraResult[0]['value']; $label = $question->ExtraInfo['extra_info']['label']; } $resultArray[] = array('value' => $result[$key]['text'], 'label' => $label, 'extra_value' => $extraValue); } $result = array('result' => $resultArray); return $result; }
static function instance($resultID, $questionID, $questionOriginalID, $name = false, $value = false) { $rows = array('result_id' => $resultID, 'question_id' => $questionID, 'question_original_id' => $questionOriginalID); $surveyResult = eZPersistentObject::fetchObject(eZSurveyQuestionMetaData::definition(), null, array('result_id' => $resultID, 'question_id' => $questionID, 'question_original_id' => $questionOriginalID)); if ($surveyResult) { if ($name !== false) { $surveyResult->setAttribute('name', $name); } if ($value !== false) { $surveyResult->setAttribute('value', $value); } return $surveyResult; } if ($name !== false) { $rows['name'] = $name; } if ($value !== false) { $rows['value'] = $value; } return new eZSurveyQuestionMetaData($rows); }