Code Duplication    Length = 21-24 lines in 6 locations

main/exercice/exercise.class.php 6 locations

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