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.
68 lines
1.8 KiB
68 lines
1.8 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
use Chamilo\CoreBundle\Framework\Container;
|
|
use Chamilo\CourseBundle\Entity\CSurvey;
|
|
use Chamilo\CourseBundle\Entity\CSurveyQuestion;
|
|
|
|
require_once __DIR__.'/../global.inc.php';
|
|
|
|
$current_user_id = api_get_user_id();
|
|
$courseId = api_get_course_int_id();
|
|
|
|
$repo = Container::getSurveyRepository();
|
|
$repoQuestion = Container::getSurveyQuestionRepository();
|
|
|
|
$action = $_GET['a'] ?? null;
|
|
$surveyId = $_REQUEST['survey_id'] ?? 0;
|
|
$questionId = $_REQUEST['question_id'] ?? 0;
|
|
|
|
switch ($action) {
|
|
case 'load_question_options':
|
|
if (!api_is_allowed_to_edit(false, true)) {
|
|
exit;
|
|
}
|
|
$question = SurveyManager::get_question($questionId);
|
|
if (!empty($question) && !empty($question['answer_data'])) {
|
|
$optionList = [];
|
|
foreach ($question['answer_data'] as $answer) {
|
|
$optionList[$answer['iid']] = strip_tags($answer['data']);
|
|
}
|
|
echo json_encode($optionList);
|
|
}
|
|
break;
|
|
case 'save_question':
|
|
if (api_is_anonymous()) {
|
|
echo '';
|
|
break;
|
|
}
|
|
$status = isset($_GET['status']) ? (int) $_GET['status'] : null;
|
|
$userId = api_get_user_id();
|
|
/** @var CSurvey $survey */
|
|
$survey = $repo->find($surveyId);
|
|
|
|
/** @var CSurveyQuestion $survey */
|
|
$question = $repoQuestion->find($questionId);
|
|
|
|
if (null === $survey) {
|
|
exit;
|
|
}
|
|
|
|
SurveyUtil::remove_answer(
|
|
$userId,
|
|
$survey->getIid(),
|
|
$questionId,
|
|
$courseId
|
|
);
|
|
|
|
SurveyUtil::saveAnswer(
|
|
$userId,
|
|
$survey,
|
|
$question,
|
|
1,
|
|
$status
|
|
);
|
|
|
|
break;
|
|
}
|
|
exit;
|
|
|