/** * * @param array $value * @param Zend_View_Interface $view * @return string */ public static function getHtml($value, Zend_View_Interface $view = null) { $value = json_decode($value, true); foreach (self::_getOptions() as $options) { switch ($options['type']) { case 'bool': $html .= $view->formRadio('confValue[' . $options['name'] . ']', $value[$options['id']], null, array('1' => Axis::translate()->__(' Yes'), '0' => Axis::translate()->__(' No'))); break; case 'select': $html .= $view->formSelect('confValue[' . $options['name'] . ']', $value[$options['id']], null, $options['config_options']); break; case 'multiple': $html .= '<br />'; foreach ($options['config_options'] as $key => $dataItem) { $html .= $view->formCheckbox('confValue[' . $options['name'] . '][' . $key . ']', isset($value[$options['name']][$key]) && $value[$options['name']][$key] ? 1 : null, null, array(1, 0)) . " {$dataItem} <br /> "; } break; case 'text': $html .= $view->formTextarea('confValue[' . $options['name'] . ']', $value[$options['id']], array('rows' => 8, 'cols' => 45)); break; default: $html .= $view->formText('confValue[' . $options['name'] . ']', $value[$options['id']], array('size' => '50')); } } return $html; }
/** * 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; }