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 storeResult($resultID, $params) { parent::storeResult($resultID, $params); $answerArray = $this->extraInfoAnswer($params); if (count($answerArray) > 0) { foreach ($answerArray as $value => $content) { $questionMetaData = eZSurveyQuestionMetaData::instance($resultID, $this->ID, $this->OriginalID, $value, $content); } } else { $questionMetaData = eZSurveyQuestionMetaData::instance($resultID, $this->ID, $this->OriginalID, '', ''); } $questionMetaData->store(); }
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); }