/** * Creates an array with details on a particular response for display purposes * Used in Print answers, Detailed response view and Detailed admin notification email * * @param mixed $iSurveyID * @param mixed $iResponseID * @param mixed $sLanguageCode * @param boolean $bHonorConditions Apply conditions */ function getFullResponseTable($iSurveyID, $iResponseID, $sLanguageCode, $bHonorConditions = true) { $aFieldMap = createFieldMap($iSurveyID, 'full', false, false, $sLanguageCode); //Get response data $idrow = SurveyDynamic::model($iSurveyID)->findByAttributes(array('id' => $iResponseID)); // Create array of non-null values - those are the relevant ones $aRelevantFields = array(); foreach ($aFieldMap as $sKey => $fname) { if (LimeExpressionManager::QuestionIsRelevant($fname['qid']) || $bHonorConditions == false) { $aRelevantFields[$sKey] = $fname; } } $aResultTable = array(); $oldgid = 0; $oldqid = 0; foreach ($aRelevantFields as $sKey => $fname) { if (!empty($fname['qid'])) { $attributes = getQuestionAttributeValues($fname['qid']); if (getQuestionAttributeValue($attributes, 'hidden') == 1) { continue; } } $question = $fname['question']; $subquestion = ''; if (isset($fname['gid']) && !empty($fname['gid'])) { //Check to see if gid is the same as before. if not show group name if ($oldgid !== $fname['gid']) { $oldgid = $fname['gid']; if (LimeExpressionManager::GroupIsRelevant($fname['gid']) || $bHonorConditions == false) { $aResultTable['gid_' . $fname['gid']] = array($fname['group_name'], QuestionGroup::model()->getGroupDescription($fname['gid'], $sLanguageCode)); } } } if (!empty($fname['qid'])) { if ($oldqid !== $fname['qid']) { $oldqid = $fname['qid']; if (isset($fname['subquestion']) || isset($fname['subquestion1']) || isset($fname['subquestion2'])) { $aResultTable['qid_' . $fname['sid'] . 'X' . $fname['gid'] . 'X' . $fname['qid']] = array($fname['question'], '', ''); } else { $answer = getExtendedAnswer($iSurveyID, $fname['fieldname'], $idrow[$fname['fieldname']], $sLanguageCode); $aResultTable[$fname['fieldname']] = array($question, '', $answer); continue; } } } else { $answer = getExtendedAnswer($iSurveyID, $fname['fieldname'], $idrow[$fname['fieldname']], $sLanguageCode); $aResultTable[$fname['fieldname']] = array($question, '', $answer); continue; } if (isset($fname['subquestion'])) { $subquestion = "[{$fname['subquestion']}]"; } if (isset($fname['subquestion1'])) { $subquestion = "[{$fname['subquestion1']}]"; } if (isset($fname['subquestion2'])) { $subquestion .= "[{$fname['subquestion2']}]"; } $answer = getExtendedAnswer($iSurveyID, $fname['fieldname'], $idrow[$fname['fieldname']], $sLanguageCode); $aResultTable[$fname['fieldname']] = array($question, $subquestion, $answer); } return $aResultTable; }
/** * Creates an array with details on a particular response for display purposes * Used in Print answers (done), Detailed response view (Todo:)and Detailed admin notification email (done) * * @param mixed $iSurveyID * @param mixed $iResponseID * @param mixed $sLanguageCode */ function aGetFullResponseTable($iSurveyID, $iResponseID, $sLanguageCode) { global $connect; $aFieldMap = createFieldMap($iSurveyID, 'full', false, false, $sLanguageCode); //Get response data $idquery = "SELECT * FROM " . db_table_name('survey_' . $iSurveyID) . " WHERE id=" . $iResponseID; $idrow = $connect->GetRow($idquery) or safe_die("Couldn't get entry<br />\n{$idquery}<br />\n" . $connect->ErrorMsg()); //Checked $aResultTable = array(); $oldgid = 0; $oldqid = 0; foreach ($aFieldMap as $sKey => $fname) { if (!empty($fname['qid'])) { $attributes = getQuestionAttributes($fname['qid']); if (getQuestionAttributeValue($attributes, 'hidden') == 1) { continue; } } $question = $fname['question']; $subquestion = ''; if (isset($fname['gid']) && !empty($fname['gid'])) { //Check to see if gid is the same as before. if not show group name if ($oldgid !== $fname['gid']) { $oldgid = $fname['gid']; $aResultTable['gid_' . $fname['gid']] = array($fname['group_name']); } } if (isset($fname['qid']) && !empty($fname['qid'])) { if ($oldqid !== $fname['qid']) { $oldqid = $fname['qid']; if (isset($fname['subquestion']) || isset($fname['subquestion1']) || isset($fname['subquestion2'])) { $aResultTable['qid_' . $fname['sid'] . 'X' . $fname['gid'] . 'X' . $fname['qid']] = array($fname['question'], '', ''); } else { $answer = getextendedanswer($fname['fieldname'], $idrow[$fname['fieldname']]); $aResultTable[$fname['fieldname']] = array($question, '', $answer); continue; } } } else { $answer = getextendedanswer($fname['fieldname'], $idrow[$fname['fieldname']]); $aResultTable[$fname['fieldname']] = array($question, '', $answer); continue; } if (isset($fname['subquestion'])) { $subquestion = "{$fname['subquestion']}"; } if (isset($fname['subquestion1'])) { $subquestion = "{$fname['subquestion1']}"; } if (isset($fname['subquestion2'])) { $subquestion .= "[{$fname['subquestion2']}]"; } $answer = getextendedanswer($fname['fieldname'], $idrow[$fname['fieldname']]); $aResultTable[$fname['fieldname']] = array('', $subquestion, $answer); } return $aResultTable; }