Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 84... Línea 84...
84
     *
84
     *
85
     * @param array $filtercondition Pre-4.3 filter condition.
85
     * @param array $filtercondition Pre-4.3 filter condition.
86
     * @return array Post-4.3 filter condition.
86
     * @return array Post-4.3 filter condition.
87
     */
87
     */
88
    public static function convert_legacy_set_reference_filter_condition(array $filtercondition): array {
88
    public static function convert_legacy_set_reference_filter_condition(array $filtercondition): array {
-
 
89
        global $DB;
89
        if (!isset($filtercondition['filter'])) {
90
        if (!isset($filtercondition['filter'])) {
90
            $filtercondition['filter'] = [];
91
            $filtercondition['filter'] = [];
Línea 91... Línea 92...
91
 
92
 
92
            // Question category filter.
93
            // Question category filter.
93
            if (isset($filtercondition['questioncategoryid'])) {
94
            if (isset($filtercondition['questioncategoryid'])) {
94
                $filtercondition['filter']['category'] = [
95
                $filtercondition['filter']['category'] = [
95
                    'jointype' => \qbank_managecategories\category_condition::JOINTYPE_DEFAULT,
96
                    'jointype' => \qbank_managecategories\category_condition::JOINTYPE_DEFAULT,
96
                    'values' => [$filtercondition['questioncategoryid']],
97
                    'values' => [$filtercondition['questioncategoryid']],
97
                    'filteroptions' => ['includesubcategories' => $filtercondition['includingsubcategories']],
98
                    'filteroptions' => ['includesubcategories' => $filtercondition['includingsubcategories']],
98
                ];
-
 
99
                unset($filtercondition['questioncategoryid']);
-
 
100
                unset($filtercondition['includingsubcategories']);
99
                ];
Línea 101... Línea 100...
101
            }
100
            }
102
 
101
 
103
            // Tag filters.
102
            // Tag filters.
104
            if (isset($filtercondition['tags'])) {
103
            if (isset($filtercondition['tags'])) {
105
                // Get the names of the tags in the condition. Find or create corresponding tags,
104
                // Get the names of the tags in the condition. Find or create corresponding tags,
-
 
105
                // and set their ids in the new condition.
106
                // and set their ids in the new condition.
106
                $oldtags = array_map(fn($oldtag) => explode(',', $oldtag)[1], $filtercondition['tags']);
107
                $oldtags = array_map(fn($oldtag) => explode(',', $oldtag)[1], $filtercondition['tags']);
107
                $questiontagcollid = \core_tag_area::get_collection('core_question', 'question');
Línea 108... Línea 108...
108
                $newtags = \core_tag_tag::create_if_missing(1, $oldtags);
108
                $newtags = \core_tag_tag::create_if_missing($questiontagcollid, $oldtags);
109
                $newtagids = array_map(fn($newtag) => $newtag->id, $newtags);
109
                $newtagids = array_map(fn($newtag) => $newtag->id, $newtags);
110
 
110
 
111
                $filtercondition['filter']['qtagids'] = [
111
                $filtercondition['filter']['qtagids'] = [
112
                    'jointype' => \qbank_tagquestion\tag_condition::JOINTYPE_DEFAULT,
112
                    'jointype' => \qbank_tagquestion\tag_condition::JOINTYPE_DEFAULT,
113
                    'values' => array_values($newtagids),
113
                    'values' => array_values($newtagids),
114
                ];
114
                ];
-
 
115
                unset($filtercondition['tags']);
-
 
116
            }
-
 
117
            // Add additional default properties to the filtercondition.
-
 
118
            if (isset($filtercondition['questioncategoryid'])) {
-
 
119
                $category = $DB->get_record('question_categories', ['id' => $filtercondition['questioncategoryid']]);
-
 
120
                if ($category) {
-
 
121
                    $filtercondition['cat'] = "{$category->id},{$category->contextid}";
-
 
122
                } else {
115
                unset($filtercondition['tags']);
123
                    $filtercondition['cat'] = '';
116
            }
124
                }
117
            // Add additional default properties to the filtercondition.
125
            }
118
            $filtercondition['tabname'] = 'questions';
126
            $filtercondition['tabname'] = 'questions';
-
 
127
            $filtercondition['qpage'] = 0;
-
 
128
            $filtercondition['qperpage'] = 100;
119
            $filtercondition['qpage'] = 0;
129
            $filtercondition['jointype'] = \core\output\datafilter::JOINTYPE_ALL;
120
            $filtercondition['qperpage'] = 100;
130
            unset($filtercondition['questioncategoryid']);
121
            $filtercondition['jointype'] = \core\output\datafilter::JOINTYPE_ALL;
131
            unset($filtercondition['includingsubcategories']);
122
        } else if (isset($filtercondition['filter']['category']['includesubcategories'])) {
132
        } else if (isset($filtercondition['filter']['category']['includesubcategories'])) {
123
            $filtercondition['filter']['category']['filteroptions'] =
133
            $filtercondition['filter']['category']['filteroptions'] =