diff --git a/app/controllers/course/members.php b/app/controllers/course/members.php index bad1d8ebbdd805f40c61077e1aa30c92b6e14fcd..1fe9f57e70af16c0cd70e029b4117736213f1819 100644 --- a/app/controllers/course/members.php +++ b/app/controllers/course/members.php @@ -451,26 +451,23 @@ class Course_MembersController extends AuthenticatedController global $perm; if ($perm->have_perm('root')) { $parameters = [ - 'semtypes' => studygroup_sem_types() ?: [], + 'semtypes' => studygroup_sem_types() ?: null, 'exclude' => [Context::getId()], - 'semesters' => array_map(function ($s) { return $s->semester_id; }, Semester::getAll()) ]; } else if ($perm->have_perm('admin')) { $parameters = [ - 'semtypes' => studygroup_sem_types() ?: [], + 'semtypes' => studygroup_sem_types() ?: null, 'institutes' => array_map(function ($i) { return $i['Institut_id']; }, Institute::getMyInstitutes()), 'exclude' => [Context::getId()], - 'semesters' => array_map(function ($s) { return $s->semester_id; }, Semester::getAll()) ]; } else { $parameters = [ 'userid' => $GLOBALS['user']->id, - 'semtypes' => studygroup_sem_types() ?: [], + 'semtypes' => studygroup_sem_types() ?: null, 'exclude' => [Context::getId()], - 'semesters' => array_map(function ($s) { return $s->semester_id; }, Semester::getAll()) ]; } $coursesearch = MyCoursesSearch::get('Seminar_id', $GLOBALS['perm']->get_perm(), $parameters); diff --git a/app/controllers/wiki.php b/app/controllers/wiki.php index 95e38465b99167c8b9700e089d36811b7886a0fd..50bed349c6146f93b71f9b4cb4e2bf17b6943489 100644 --- a/app/controllers/wiki.php +++ b/app/controllers/wiki.php @@ -269,12 +269,6 @@ class WikiController extends AuthenticatedController ); } - $all_semesters = Semester::getAll(); - $all_semester_ids = []; - foreach ($all_semesters as $semester) { - $all_semester_ids[] = $semester->id; - } - $this->course_search = new QuickSearch( 'selected_course_id', new MyCoursesSearch( @@ -282,9 +276,7 @@ class WikiController extends AuthenticatedController $GLOBALS['perm']->get_perm(), [ 'userid' => $GLOBALS['user']->id, - 'semtypes' => [], 'exclude' => [$course_id], - 'semesters' => $all_semester_ids, ], 's.`Seminar_id` IN ( SELECT range_id FROM wiki diff --git a/lib/classes/searchtypes/MyCoursesSearch.class.php b/lib/classes/searchtypes/MyCoursesSearch.class.php index dad725c14135c641535a900fc1d8008f6be9c24f..64bee64cb7e0545592c2f222165d9dad1bb493ca 100644 --- a/lib/classes/searchtypes/MyCoursesSearch.class.php +++ b/lib/classes/searchtypes/MyCoursesSearch.class.php @@ -189,11 +189,17 @@ class MyCoursesSearch extends StandardSearch { $conditions = [ '(s.`VeranstaltungsNummer` LIKE :input OR s.`Name` LIKE :input)', - 's.`status` NOT IN (:semtypes)', 's.`Seminar_id` NOT IN (:exclude)', - 'semester_data.`semester_id` IN (:semesters)' ]; + if (isset($this->parameters['semtypes'])) { + $conditions[] = 's.`status` NOT IN (:semtypes)'; + } + + if (isset($this->parameters['semesters'])) { + $conditions[] = 'semester_data.`semester_id` IN (:semesters)'; + } + if ($this->additional_sql_conditions) { $conditions[] = $this->additional_sql_conditions; }