| 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'] =
|