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