Code Duplication    Length = 21-24 lines in 6 locations

main/exercise/exercise.class.php 6 locations

@@ 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
952
                $questions_by_category = TestCategory::getQuestionsByCat(
953
                    $this->id,
954
                    $question_list,
955
                    $categoriesAddedInExercise
956
                );
957
958
                $question_list = $this->pickQuestionsPerCategory(
959
                    $categoriesAddedInExercise,
960
                    $question_list,
961
                    $questions_by_category,
962
                    true,
963
                    true
964
                );
965
                break;
966
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_ORDERED_NO_GROUPED: // 7
@@ 876-899 (lines=24) @@
873
            case EX_Q_SELECTION_RANDOM:  // 2
874
                // This options are not allowed here.
875
                break;
876
            case EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_ORDERED: // 3
877
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
878
                    $this,
879
                    $this->course['real_id'],
880
                    'title ASC',
881
                    false,
882
                    true
883
                );
884
885
                $questions_by_category = TestCategory::getQuestionsByCat(
886
                    $this->id,
887
                    $question_list,
888
                    $categoriesAddedInExercise
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(
902
                    $this,
@@ 970-990 (lines=21) @@
967
                break;
968
            case EX_Q_SELECTION_CATEGORIES_RANDOM_QUESTIONS_RANDOM_NO_GROUPED: // 8
969
                break;
970
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_ORDERED: // 9
971
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
972
                    $this,
973
                    $this->course['real_id'],
974
                    'root ASC, lft ASC',
975
                    false,
976
                    true
977
                );
978
                $questions_by_category = TestCategory::getQuestionsByCat(
979
                    $this->id,
980
                    $question_list,
981
                    $categoriesAddedInExercise
982
                );
983
                $question_list = $this->pickQuestionsPerCategory(
984
                    $categoriesAddedInExercise,
985
                    $question_list,
986
                    $questions_by_category,
987
                    true,
988
                    false
989
                );
990
                break;
991
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_RANDOM: // 10
992
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
993
                    $this,
@@ 991-1011 (lines=21) @@
988
                    false
989
                );
990
                break;
991
            case EX_Q_SELECTION_CATEGORIES_ORDERED_BY_PARENT_QUESTIONS_RANDOM: // 10
992
                $categoriesAddedInExercise = $cat->getCategoryExerciseTree(
993
                    $this,
994
                    $this->course['real_id'],
995
                    'root, lft ASC',
996
                    false,
997
                    true
998
                );
999
                $questions_by_category = TestCategory::getQuestionsByCat(
1000
                    $this->id,
1001
                    $question_list,
1002
                    $categoriesAddedInExercise
1003
                );
1004
                $question_list = $this->pickQuestionsPerCategory(
1005
                    $categoriesAddedInExercise,
1006
                    $question_list,
1007
                    $questions_by_category,
1008
                    true,
1009
                    true
1010
                );
1011
                break;
1012
        }
1013
1014
        $result['question_list'] = isset($question_list) ? $question_list : array();