diff --git a/public/main/inc/lib/UnserializeApi.php b/public/main/inc/lib/UnserializeApi.php index c1460c091c..6153174bf9 100644 --- a/public/main/inc/lib/UnserializeApi.php +++ b/public/main/inc/lib/UnserializeApi.php @@ -101,13 +101,13 @@ class UnserializeApi } if ($ignoreErrors) { - return unserialize( + return @unserialize( $serialized, ['allowed_classes' => $allowedClasses] ); } - return unserialize( + return @unserialize( $serialized, ['allowed_classes' => $allowedClasses] ); diff --git a/public/main/survey/create_new_survey.php b/public/main/survey/create_new_survey.php index 3a462e16ae..e6664184c2 100644 --- a/public/main/survey/create_new_survey.php +++ b/public/main/survey/create_new_survey.php @@ -259,6 +259,7 @@ if ('add' === $action) { $form->addElement('checkbox', 'one_question_per_page', null, get_lang('One question per page')); $form->addElement('checkbox', 'shuffle', null, get_lang('Enable shuffle mode')); +$form->addElement('checkbox', 'display_question_number', null, get_lang('Display question number')); $input_name_list = null; diff --git a/public/main/survey/fillsurvey.php b/public/main/survey/fillsurvey.php index b71686e13c..abaadd70b4 100644 --- a/public/main/survey/fillsurvey.php +++ b/public/main/survey/fillsurvey.php @@ -1280,7 +1280,7 @@ if (isset($questions) && is_array($questions)) { // @todo move this in a function. $form->addHtml('
'); - if ($showNumber) { + if ($showNumber && $survey_data['display_question_number']) { $form->addHtml('
'.$questionNumber.'.
'); } $form->addHtml('
'.Security::remove_XSS($question['survey_question']).'
'); diff --git a/public/main/survey/preview.php b/public/main/survey/preview.php index 8c4b62f53d..624d539f08 100644 --- a/public/main/survey/preview.php +++ b/public/main/survey/preview.php @@ -228,7 +228,7 @@ if (is_array($questions) && count($questions) > 0) { $js .= survey_question::getQuestionJs($question); $form->addHtml('
'); - if ($showNumber) { + if ($showNumber && $survey_data['display_question_number']) { $form->addHtml('
'.$counter.'.
'); } $form->addHtml('
'.Security::remove_XSS($question['survey_question']).'
'); diff --git a/public/main/survey/survey.lib.php b/public/main/survey/survey.lib.php index a67990d4fa..caadbbf0a7 100644 --- a/public/main/survey/survey.lib.php +++ b/public/main/survey/survey.lib.php @@ -208,7 +208,8 @@ class SurveyManager $session_id = api_get_session_id(); $courseCode = api_get_course_id(); $table_survey = Database::get_course_table(TABLE_SURVEY); - $shared_survey_id = ''; + $shared_survey_id = 0; + $display_question_number = isset($values['display_question_number']) ? (int) $values['display_question_number'] : null; $repo = Container::getSurveyRepository(); if (!isset($values['survey_id'])) { @@ -333,6 +334,7 @@ class SurveyManager ->setTemplate('template') ->setIntro($values['survey_introduction']) ->setSurveyThanks($values['survey_thanks']) + ->setDisplayQuestionNumber($display_question_number) ->setAnonymous((string) $values['anonymous']) ->setVisibleResults((int) $values['visible_results']) ->setSurveyType((int) ($values['survey_type'] ?? 1)) @@ -441,6 +443,7 @@ class SurveyManager ->setSurveyThanks($values['survey_thanks']) ->setAnonymous((string) $values['anonymous']) ->setVisibleResults((int) $values['visible_results']) + ->setDisplayQuestionNumber($display_question_number) ; $repo->update($survey); diff --git a/public/main/survey/survey.php b/public/main/survey/survey.php index 5d3095237f..b558d72fe3 100644 --- a/public/main/survey/survey.php +++ b/public/main/survey/survey.php @@ -260,7 +260,7 @@ $question_counter = 1; $result = Database::query($sql); $groups = []; while ($row = Database::fetch_array($result)) { - $groups[$row['id']] = $row['name']; + $groups[$row['iid']] = $row['name']; }*/ $sql = "SELECT survey_question.*, count(survey_question_option.iid) as number_of_options FROM $table_survey_question survey_question diff --git a/src/CourseBundle/Entity/CSurvey.php b/src/CourseBundle/Entity/CSurvey.php index 23e94176f6..ae999fc178 100644 --- a/src/CourseBundle/Entity/CSurvey.php +++ b/src/CourseBundle/Entity/CSurvey.php @@ -152,6 +152,13 @@ class CSurvey extends AbstractResource implements ResourceInterface, Stringable #[ORM\Column(name: 'is_mandatory', type: 'boolean', options: ['default' => false])] protected bool $isMandatory = false; + /** + * @var bool + * + * @ORM\Column(name="display_question_number", type="boolean", nullable=true) + */ + protected $displayQuestionNumber; + public function __construct() { $this->creationDate = new DateTime(); @@ -736,4 +743,16 @@ class CSurvey extends AbstractResource implements ResourceInterface, Stringable { return $this->setCode($name); } + + /** + * @param bool $displayQuestionNumber + * + * @return CSurvey + */ + public function setDisplayQuestionNumber($displayQuestionNumber) + { + $this->displayQuestionNumber = $displayQuestionNumber; + + return $this; + } }