You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.6 KiB
60 lines
1.6 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
/**
|
|
* Class ch_score
|
|
*/
|
|
class ch_score extends survey_question
|
|
{
|
|
/**
|
|
* @param array $survey_data
|
|
* @param $form_content
|
|
*/
|
|
public function createForm($survey_data, $formData)
|
|
{
|
|
parent::createForm($survey_data, $formData);
|
|
|
|
$this->getForm()->addText('maximum_score', get_lang('MaximumScore'));
|
|
|
|
$config = array('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 = array(), $answers = array())
|
|
{
|
|
$defaults = [];
|
|
foreach ($questionData['options'] as $key => & $value) {
|
|
$options = array();
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|