Chamilo is a learning management system focused on ease of use and accessibility
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.
 
 
 
 
 
 
chamilo-lms/main/survey/ch_yesno.php

81 lines
2.2 KiB

<?php
/* For licensing terms, see /license.txt */
/**
* Class ch_yesno
*/
class ch_yesno extends survey_question
{
/**
* @param array $surveyData
* @param array $formData
*/
public function createForm($surveyData, $formData)
{
parent::createForm($surveyData, $formData);
$options = array(
'horizontal' => get_lang('Horizontal'),
'vertical' => get_lang('Vertical')
);
$this->getForm()->addRadio('horizontalvertical', get_lang('DisplayAnswersHorVert'), $options);
$formData['horizontalvertical'] = isset($formData['horizontalvertical']) ? $formData['horizontalvertical'] : 'horizontal';
$this->getForm()->setDefaults($formData);
// The options
$config = array(
'ToolbarSet' => 'Survey',
'Width' => '100%',
'Height' => '120'
);
$this->getForm()->addHtmlEditor(
'answers[0]',
get_lang('AnswerOptions'),
true,
false,
$config
);
$this->getForm()->addHtmlEditor(
'answers[1]',
null,
true,
false,
$config
);
}
/**
* @param FormValidator $form
* @param array $questionData
* @param array $answers
*/
public function render(FormValidator $form, $questionData = array(), $answers = null)
{
if (is_array($questionData['options'])) {
$class = 'radio-inline';
$labelClass = 'radio-inline';
if ($questionData['display'] == 'vertical') {
$class = 'radio-vertical';
}
$name = 'question'.$questionData['question_id'];
$radioAttributes = ['radio-class' => $class, 'label-class' => $labelClass];
if (!empty($questionData['is_required'])) {
$radioAttributes['required'] = 'required';
}
$form->addRadio(
$name,
null,
$questionData['options'],
$radioAttributes
);
if (!empty($answers)) {
$form->setDefaults([$name => is_array($answers) ? current($answers) : $answers]);
}
}
}
}