Example #1
0
 /**
  * Render form controls necessary for responding to a particular question
  *
  * TODO - This needs to be extended to deal with multi-select questions
  *
  * @param  ModelQuestionModel question response controls are being rendered for
  * @return string
  */
 public function renderResponse(ModelQuestionModel $question)
 {
     // if we are dealing with a virtual question, don't output a control
     if ($question->virtualQuestion) {
         return '';
     }
     $result = '';
     switch (substr($question->format, 0, 1)) {
         case 'T':
             $result .= $this->renderText($question);
             break;
         case 'D':
             $result .= $this->renderDate($question);
             break;
         case 'S':
             $result .= $this->renderSingleSelect($question);
             break;
         case '_':
             if ($question->format == '_questionGroup') {
                 return $result;
             }
         default:
             throw new Exception('Unknown question type');
     }
     $result .= '     ';
     $name = "response[{$question->questionID}][requireAttachment]";
     $result .= $this->view->formCheckbox($name, $question->hasAttachmentRequirement(), array('class' => 'requireAttachment'));
     $result .= $this->view->formLabel($name, 'Require Attachment');
     $name = "response[{$question->questionID}][noinclude]";
     $result .= $this->view->formCheckbox($name, $question->hasNoPreference(), array('class' => 'noinclude'));
     $result .= $this->view->formLabel($name, 'Do not include');
     return $result;
 }