Code Duplication    Length = 21-24 lines in 6 locations

main/exercice/exercise.class.php 6 locations

@@ 845-868 (lines=24) @@
842
            case EX_Q_SELECTION_RANDOM:  // 2
843
                // This options are not allowed here.
844
                break;
845
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_ORDERED: // 3
846
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
847
                    $this,
848
                    $this->course['real_id'],
849
                    'title ASC',
850
                    false,
851
                    true
852
                );
853
854
                $questions_by_category = TestCategory::getQuestionsByCat(
855
                    $this->id,
856
                    $question_list,
857
                    $categoriesAddedInExercise
858
                );
859
860
861
                $question_list = $this->pickQuestionsPerCategory(
862
                    $categoriesAddedInExercise,
863
                    $question_list,
864
                    $questions_by_category,
865
                    true,
866
                    false
867
                );
868
                break;
869
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED: // 4
870
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
871
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
@@ 870-890 (lines=21) @@
867
                );
868
                break;
869
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED: // 4
870
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
871
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
872
                    $this,
873
                    $this->course['real_id'],
874
                    null,
875
                    true,
876
                    true
877
                );
878
                $questions_by_category = TestCategory::getQuestionsByCat(
879
                    $this->id,
880
                    $question_list,
881
                    $categoriesAddedInExercise
882
                );
883
                $question_list = $this->pickQuestionsPerCategory(
884
                    $categoriesAddedInExercise,
885
                    $question_list,
886
                    $questions_by_category,
887
                    true,
888
                    false
889
                );
890
            break;
891
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_RANDOM: // 5
892
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
893
                    $this,
@@ 891-911 (lines=21) @@
888
                    false
889
                );
890
            break;
891
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_RANDOM: // 5
892
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
893
                    $this,
894
                    $this->course['real_id'],
895
                    'title DESC',
896
                    false,
897
                    true
898
                );
899
                $questions_by_category = TestCategory::getQuestionsByCat(
900
                    $this->id,
901
                    $question_list,
902
                    $categoriesAddedInExercise
903
                );
904
                $question_list = $this->pickQuestionsPerCategory(
905
                    $categoriesAddedInExercise,
906
                    $question_list,
907
                    $questions_by_category,
908
                    true,
909
                    true
910
                );
911
                break;
912
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM: // 6
913
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED:
914
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
@@ 913-933 (lines=21) @@
910
                );
911
                break;
912
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM: // 6
913
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED:
914
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
915
                    $this,
916
                    $this->course['real_id'],
917
                    null,
918
                    true,
919
                    true
920
                );
921
                $questions_by_category = TestCategory::getQuestionsByCat(
922
                    $this->id,
923
                    $question_list,
924
                    $categoriesAddedInExercise
925
                );
926
                $question_list = $this->pickQuestionsPerCategory(
927
                    $categoriesAddedInExercise,
928
                    $question_list,
929
                    $questions_by_category,
930
                    true,
931
                    true
932
                );
933
                break;
934
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
935
                break;
936
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED: // 8
@@ 938-958 (lines=21) @@
935
                break;
936
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED: // 8
937
                break;
938
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_ORDERED: // 9
939
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
940
                    $this,
941
                    $this->course['real_id'],
942
                    'root ASC, lft ASC',
943
                    false,
944
                    true
945
                );
946
                $questions_by_category = TestCategory::getQuestionsByCat(
947
                    $this->id,
948
                    $question_list,
949
                    $categoriesAddedInExercise
950
                );
951
                $question_list = $this->pickQuestionsPerCategory(
952
                    $categoriesAddedInExercise,
953
                    $question_list,
954
                    $questions_by_category,
955
                    true,
956
                    false
957
                );
958
                break;
959
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_RANDOM: // 10
960
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
961
                    $this,
@@ 959-979 (lines=21) @@
956
                    false
957
                );
958
                break;
959
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_RANDOM: // 10
960
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
961
                    $this,
962
                    $this->course['real_id'],
963
                    'root, lft ASC',
964
                    false,
965
                    true
966
                );
967
                $questions_by_category = TestCategory::getQuestionsByCat(
968
                    $this->id,
969
                    $question_list,
970
                    $categoriesAddedInExercise
971
                );
972
                $question_list = $this->pickQuestionsPerCategory(
973
                    $categoriesAddedInExercise,
974
                    $question_list,
975
                    $questions_by_category,
976
                    true,
977
                    true
978
                );
979
                break;
980
        }
981
982
        $result['question_list'] = isset($question_list) ? $question_list : array();