12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /* For licensing terms, see /license.txt */
- /**
- * Class ch_score.
- */
- class ch_score extends survey_question
- {
- /**
- * @param array $survey_data
- * @param array $formData
- */
- public function createForm($survey_data, $formData)
- {
- parent::createForm($survey_data, $formData);
- $this->getForm()->addText('maximum_score', get_lang('Score'));
- $config = ['ToolbarSet' => 'Survey', 'Width' => '100%', 'Height' => '120'];
- if (is_array($formData['answers'])) {
- foreach ($formData['answers'] as $key => $value) {
- $this->getForm()->addHtmlEditor(
- 'answers['.$key.']',
- null,
- false,
- false,
- $config
- );
- }
- }
- parent::addRemoveButtons($formData);
- }
- /**
- * @param FormValidator $form
- * @param array $questionData
- * @param array $answers
- */
- public function render(FormValidator $form, $questionData = [], $answers = [])
- {
- $defaults = [];
- foreach ($questionData['options'] as $key => &$value) {
- $options = [
- '--' => '--',
- ];
- for ($i = 1; $i <= $questionData['maximum_score']; $i++) {
- $options[$i] = $i;
- }
- $name = 'question'.$questionData['question_id'].'['.$key.']';
- $form->addSelect(
- $name,
- $value,
- $options
- );
- if (!empty($answers)) {
- if (in_array($key, array_keys($answers))) {
- $defaults[$name] = $answers[$key];
- }
- }
- }
- if (!empty($defaults)) {
- $form->setDefaults($defaults);
- }
- }
- }
|