diff --git a/main/survey/fillsurvey.php b/main/survey/fillsurvey.php index f8cdbe36a1..14b70575a5 100755 --- a/main/survey/fillsurvey.php +++ b/main/survey/fillsurvey.php @@ -305,7 +305,7 @@ if (count($_POST) > 0) { } else { // All the other question types (open question, multiple choice, percentage, ...) if (isset($types[$survey_question_id]) && - 'percentage' == $types[$survey_question_id]) { + 'percentage' === $types[$survey_question_id]) { $sql = "SELECT * FROM $table_survey_question_option WHERE c_id = $course_id AND @@ -378,7 +378,6 @@ if (count($_POST) > 0) { $result = Database::query($sql); $row = Database::fetch_array($result, 'ASSOC'); $option_value = $row['value']; - //$option_value = 0; $survey_question_answer = $value; // We save the answer after making sure that a possible previous attempt is deleted @@ -406,7 +405,6 @@ if (count($_POST) > 0) { } $user_id = api_get_user_id(); - if ($user_id == 0) { $user_id = $survey_invitation['user']; } @@ -1079,7 +1077,7 @@ if ((isset($_GET['show']) && $_GET['show'] != '') || $questions = []; while ($row = Database::fetch_array($result, 'ASSOC')) { // If the type is not a pagebreak we store it in the $questions array - if ('pagebreak' != $row['type']) { + if ('pagebreak' !== $row['type']) { $questions[$row['sort']]['question_id'] = $row['question_id']; $questions[$row['sort']]['survey_id'] = $row['survey_id']; $questions[$row['sort']]['survey_question'] = $row['survey_question']; @@ -1193,7 +1191,7 @@ if ((isset($_GET['show']) && $_GET['show'] != '') || $questions = []; while ($row = Database :: fetch_array($result, 'ASSOC')) { // If the type is not a pagebreak we store it in the $questions array - if ('pagebreak' != $row['type']) { + if ('pagebreak' !== $row['type']) { $questions[$row['sort']]['question_id'] = $row['question_id']; $questions[$row['sort']]['survey_id'] = $row['survey_id']; $questions[$row['sort']]['survey_question'] = $row['survey_question']; @@ -1270,6 +1268,11 @@ $form = new FormValidator( ); $form->addHidden('language', $p_l); +$showNumber = true; +if (SurveyManager::hasDependency($survey_data)) { + $showNumber = false; +} + if (isset($questions) && is_array($questions)) { $originalShow = isset($_GET['show']) ? (int) $_GET['show'] : 0; $questionCounter = 1; @@ -1306,7 +1309,9 @@ if (isset($questions) && is_array($questions)) { // @todo move this in a function. $form->addHtml('
'); - $form->addHtml('
'.$questionNumber.'.
'); + if ($showNumber) { + $form->addHtml('
'.$questionNumber.'.
'); + } $form->addHtml('
'.Security::remove_XSS($question['survey_question']).'
'); $userAnswerData = SurveyUtil::get_answers_of_question_by_user($question['survey_id'], $question['question_id']); diff --git a/main/survey/preview.php b/main/survey/preview.php index 77b45acced..bbe2c43a1b 100755 --- a/main/survey/preview.php +++ b/main/survey/preview.php @@ -93,13 +93,13 @@ if (isset($_GET['show'])) { if (Database::num_rows($result)) { while ($row = Database::fetch_array($result)) { if (1 == $survey_data['one_question_per_page']) { - if ('pagebreak' != $row['type']) { + if ('pagebreak' !== $row['type']) { $paged_questions[$counter][] = $row['question_id']; $counter++; continue; } } else { - if ('pagebreak' == $row['type']) { + if ('pagebreak' === $row['type']) { $counter++; } else { $paged_questions[$counter][] = $row['question_id']; @@ -143,7 +143,7 @@ if (isset($_GET['show'])) { $result = Database::query($sql); while ($row = Database::fetch_array($result)) { // If the type is not a pagebreak we store it in the $questions array - if ('pagebreak' != $row['type']) { + if ('pagebreak' !== $row['type']) { $sort = $row['sort']; $questions[$sort]['question_id'] = $row['question_id']; $questions[$sort]['survey_id'] = $row['survey_id']; @@ -191,6 +191,11 @@ if (is_array($questions) && count($questions) > 0) { $counter = $before + 1; } + $showNumber = true; + if (SurveyManager::hasDependency($survey_data)) { + $showNumber = false; + } + $js = ''; foreach ($questions as $key => &$question) { $ch_type = 'ch_'.$question['type']; @@ -211,7 +216,9 @@ if (is_array($questions) && count($questions) > 0) { $js .= survey_question::getQuestionJs($question); $form->addHtml('
'); - $form->addHtml('
'.$counter.'.
'); + if ($showNumber) { + $form->addHtml('
'.$counter.'.
'); + } $form->addHtml('
'.Security::remove_XSS($question['survey_question']).'
'); $display->render($form, $question); $form->addHtml('
'); diff --git a/main/survey/survey.lib.php b/main/survey/survey.lib.php index 970d9a7e54..e384344a48 100755 --- a/main/survey/survey.lib.php +++ b/main/survey/survey.lib.php @@ -2515,6 +2515,42 @@ class SurveyManager return true; } + public static function hasDependency($survey) + { + if (false === api_get_configuration_value('survey_question_dependency')) { + return false; + } + + if (empty($survey)) { + return false; + } + + if (!isset($survey['survey_id'])) { + return false; + } + + $courseId = (int) $survey['c_id']; + $surveyId = (int) $survey['survey_id']; + + $table = Database::get_course_table(TABLE_SURVEY_QUESTION); + + $sql = "SELECT COUNT(iid) count FROM $table + WHERE + c_id = $courseId AND + survey_id = $surveyId AND + parent_option_id <> 0 + LIMIT 1 + "; + $result = Database::query($sql); + $row = Database::fetch_array($result); + + if ($row) { + return $row['count'] > 0; + } + + return false; + } + /** * @param array $survey * @@ -2526,8 +2562,8 @@ class SurveyManager return 0; } - $courseId = $survey['c_id']; - $surveyId = $survey['survey_id']; + $courseId = (int) $survey['c_id']; + $surveyId = (int) $survey['survey_id']; $table = Database::get_course_table(TABLE_SURVEY_QUESTION); @@ -2625,7 +2661,8 @@ class SurveyManager $groupId = 0 ) { $invitationRepo = Database::getManager()->getRepository('ChamiloCourseBundle:CSurveyInvitation'); - $invitations = $invitationRepo->findBy( + + return $invitationRepo->findBy( [ 'user' => $userId, 'cId' => $courseId, @@ -2635,8 +2672,6 @@ class SurveyManager ], ['invitationDate' => 'DESC'] ); - - return $invitations; } /** @@ -2694,7 +2729,12 @@ class SurveyManager if (empty($sessionId)) { $subscribe = CourseManager::is_user_subscribed_in_course($userId, $courseCode); } else { - $subscribe = CourseManager::is_user_subscribed_in_course($userId, $courseCode, true, $sessionId); + $subscribe = CourseManager::is_user_subscribed_in_course( + $userId, + $courseCode, + true, + $sessionId + ); } // User is not subscribe skip!