protected function displayRadioEntryQuestion(InquisitionQuestion $question, array $response_values) { $locale = SwatI18NLocale::get(); echo $this->convertText($question->bodytext); echo '<ul>'; $option_counts = array(); $option_values = array(); $total_count = 0; if (count($response_values) > 0) { foreach ($response_values as $value) { // Optional questions that are unanswered can have rows in the // db with no question options set, so ignore those rows. if ($value->question_option instanceof InquisitionQuestionOption) { $option_text = $value->question_option->title; if (!isset($option_counts[$option_text])) { $option_counts[$option_text] = 0; } $option_counts[$option_text]++; if ($value->text_value != '') { if (!isset($option_values[$option_text])) { $option_values[$option_text] = array(); } $option_values[$option_text][] = $value->text_value; } $total_count++; } } foreach ($question->options as $option) { if (isset($option_counts[$option->title])) { $percent = $option_counts[$option->title] / $total_count; $li_tag = new SwatHtmlTag('li'); $li_tag->setContent(sprintf('%s - %s%% (%s)', $this->convertText($option->title), $locale->formatNumber(round($percent * 1000) / 10), $locale->formatNumber($option_counts[$option->title]))); $li_tag->open(); $li_tag->displayContent(); $this->displayBar($percent); if (isset($option_values[$option->title])) { echo '<ul>'; foreach ($option_values[$option->title] as $text) { $li_tag = new SwatHtmlTag('li'); $li_tag->setContent($this->convertText($text)); $li_tag->display(); } echo '</ul>'; } $li_tag->close(); } } } else { $li_tag = new SwatHtmlTag('li'); $li_tag->setContent(CME::_('There were no responses for this question.')); $li_tag->display(); } echo '</ul>'; }