Skip to content

Commit 09332ae

Browse files
committed
fix category trigger without category bug
1 parent 5e22366 commit 09332ae

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

trigger/categories/lib.php

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,22 +65,25 @@ public function get_course_recordset_where($triggerid) {
6565

6666
$exclude = settings_manager::get_settings($triggerid, settings_type::TRIGGER)['exclude'];
6767
$categories = settings_manager::get_settings($triggerid, settings_type::TRIGGER)['categories'];
68-
$categories = explode(',', $categories);
69-
// Use core_course_category for moodle 3.6 and higher.
70-
if ($CFG->version >= 2018120300) {
71-
$categoryobjects = \core_course_category::get_many($categories);
72-
} else {
73-
require_once($CFG->libdir . '/coursecatlib.php');
74-
$categoryobjects = \coursecat::get_many($categories);
75-
}
76-
$allcategories = [];
77-
foreach ($categories as $category) {
78-
array_push($allcategories, $category);
79-
if (!isset($categoryobjects[$category]) || !$categoryobjects[$category]) {
80-
continue;
68+
if ($categories = explode(',', $categories)) {
69+
// Use core_course_category for moodle 3.6 and higher.
70+
if ($CFG->version >= 2018120300) {
71+
$categoryobjects = \core_course_category::get_many($categories);
72+
} else {
73+
require_once($CFG->libdir . '/coursecatlib.php');
74+
$categoryobjects = \coursecat::get_many($categories);
75+
}
76+
$allcategories = [];
77+
foreach ($categories as $category) {
78+
array_push($allcategories, $category);
79+
if (!isset($categoryobjects[$category]) || !$categoryobjects[$category]) {
80+
continue;
81+
}
82+
$children = $categoryobjects[$category]->get_all_children_ids();
83+
$allcategories = array_merge($allcategories, $children);
8184
}
82-
$children = $categoryobjects[$category]->get_all_children_ids();
83-
$allcategories = array_merge($allcategories, $children);
85+
} else {
86+
$allcategories = [0];
8487
}
8588

8689
[$insql, $inparams] = $DB->get_in_or_equal($allcategories, SQL_PARAMS_NAMED, 'param', !$exclude);

0 commit comments

Comments
 (0)