Code Duplication    Length = 21-24 lines in 6 locations

main/exercice/exercise.class.php 6 locations

@@ 883-906 (lines=24) @@
880
            case EX_Q_SELECTION_RANDOM:  // 2
881
                // This options are not allowed here.
882
                break;
883
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_ORDERED: // 3
884
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
885
                    $this,
886
                    $this->course['real_id'],
887
                    'title ASC',
888
                    false,
889
                    true
890
                );
891
892
                $questions_by_category = TestCategory::getQuestionsByCat(
893
                    $this->id,
894
                    $question_list,
895
                    $categoriesAddedInExercise
896
                );
897
898
899
                $question_list = $this->pickQuestionsPerCategory(
900
                    $categoriesAddedInExercise,
901
                    $question_list,
902
                    $questions_by_category,
903
                    true,
904
                    false
905
                );
906
                break;
907
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED: // 4
908
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
909
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
@@ 908-928 (lines=21) @@
905
                );
906
                break;
907
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED: // 4
908
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
909
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
910
                    $this,
911
                    $this->course['real_id'],
912
                    null,
913
                    true,
914
                    true
915
                );
916
                $questions_by_category = TestCategory::getQuestionsByCat(
917
                    $this->id,
918
                    $question_list,
919
                    $categoriesAddedInExercise
920
                );
921
                $question_list = $this->pickQuestionsPerCategory(
922
                    $categoriesAddedInExercise,
923
                    $question_list,
924
                    $questions_by_category,
925
                    true,
926
                    false
927
                );
928
            break;
929
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_RANDOM: // 5
930
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
931
                    $this,
@@ 929-949 (lines=21) @@
926
                    false
927
                );
928
            break;
929
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_RANDOM: // 5
930
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
931
                    $this,
932
                    $this->course['real_id'],
933
                    'title DESC',
934
                    false,
935
                    true
936
                );
937
                $questions_by_category = TestCategory::getQuestionsByCat(
938
                    $this->id,
939
                    $question_list,
940
                    $categoriesAddedInExercise
941
                );
942
                $question_list = $this->pickQuestionsPerCategory(
943
                    $categoriesAddedInExercise,
944
                    $question_list,
945
                    $questions_by_category,
946
                    true,
947
                    true
948
                );
949
                break;
950
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM: // 6
951
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED:
952
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
@@ 951-971 (lines=21) @@
948
                );
949
                break;
950
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM: // 6
951
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED:
952
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
953
                    $this,
954
                    $this->course['real_id'],
955
                    null,
956
                    true,
957
                    true
958
                );
959
                $questions_by_category = TestCategory::getQuestionsByCat(
960
                    $this->id,
961
                    $question_list,
962
                    $categoriesAddedInExercise
963
                );
964
                $question_list = $this->pickQuestionsPerCategory(
965
                    $categoriesAddedInExercise,
966
                    $question_list,
967
                    $questions_by_category,
968
                    true,
969
                    true
970
                );
971
                break;
972
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
973
                break;
974
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED: // 8
@@ 976-996 (lines=21) @@
973
                break;
974
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED: // 8
975
                break;
976
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_ORDERED: // 9
977
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
978
                    $this,
979
                    $this->course['real_id'],
980
                    'root ASC, lft ASC',
981
                    false,
982
                    true
983
                );
984
                $questions_by_category = TestCategory::getQuestionsByCat(
985
                    $this->id,
986
                    $question_list,
987
                    $categoriesAddedInExercise
988
                );
989
                $question_list = $this->pickQuestionsPerCategory(
990
                    $categoriesAddedInExercise,
991
                    $question_list,
992
                    $questions_by_category,
993
                    true,
994
                    false
995
                );
996
                break;
997
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_RANDOM: // 10
998
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
999
                    $this,
@@ 997-1017 (lines=21) @@
994
                    false
995
                );
996
                break;
997
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_RANDOM: // 10
998
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
999
                    $this,
1000
                    $this->course['real_id'],
1001
                    'root, lft ASC',
1002
                    false,
1003
                    true
1004
                );
1005
                $questions_by_category = TestCategory::getQuestionsByCat(
1006
                    $this->id,
1007
                    $question_list,
1008
                    $categoriesAddedInExercise
1009
                );
1010
                $question_list = $this->pickQuestionsPerCategory(
1011
                    $categoriesAddedInExercise,
1012
                    $question_list,
1013
                    $questions_by_category,
1014
                    true,
1015
                    true
1016
                );
1017
                break;
1018
        }
1019
1020
        $result['question_list'] = isset($question_list) ? $question_list : array();