Code Duplication    Length = 21-24 lines in 6 locations

main/exercise/exercise.class.php 6 locations

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