Code Duplication    Length = 21-24 lines in 6 locations

main/exercise/exercise.class.php 6 locations

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