diff options
| author | Moritz Strohm <strohm@data-quest.de> | 2024-09-18 08:33:26 +0000 |
|---|---|---|
| committer | Moritz Strohm <strohm@data-quest.de> | 2024-09-18 08:33:26 +0000 |
| commit | fbf008efa11f009d2b89109e99c213c44c62e024 (patch) | |
| tree | ee3379b5b28c6ebf4389a3809700b25a4bfa7626 /app/controllers/news.php | |
| parent | 1efacbf3fd32325da48d09eabaf4a8d34d4e0de5 (diff) | |
TIC 4391, closes #4391
Closes #4391
Merge request studip/studip!3211
Diffstat (limited to 'app/controllers/news.php')
| -rw-r--r-- | app/controllers/news.php | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/app/controllers/news.php b/app/controllers/news.php index 375f48b..973646e 100644 --- a/app/controllers/news.php +++ b/app/controllers/news.php @@ -621,150 +621,6 @@ class NewsController extends StudipController return strtotime($date); } - /** - * Searchs for studip areas using given search term - * - * @param string $term search term - * @return array area data - */ - private function search_area($term) - { - global $perm; - $result = $tmp_result = []; - if (mb_strlen($term) < 3) { - PageLayout::postError(_('Der Suchbegriff muss mindestens drei Zeichen lang sein.')); - return $result; - } - - if ($term === '__THIS_SEMESTER__') { - $current_semester = Semester::findCurrent(); - $query = "SELECT seminare.Name AS sem_name, seminare.Seminar_id, seminare.visible - FROM seminar_user - LEFT JOIN seminare USING (Seminar_id) - LEFT JOIN semester_courses ON (semester_courses.course_id = seminar_user.Seminar_id) - WHERE seminar_user.user_id = :user_id - AND seminar_user.status IN('tutor', 'dozent') - AND (semester_courses.semester_id = :semester_id OR semester_courses.semester_id IS NULL) - "; - if (Config::get()->DEPUTIES_ENABLE) { - $query .= " UNION SELECT CONCAT(seminare.Name, ' ["._("Vertretung")."]') AS sem_name, seminare.Seminar_id, - seminare.visible - FROM deputies - LEFT JOIN seminare ON (deputies.range_id=seminare.Seminar_id) - LEFT JOIN semester_courses ON (semester_courses.course_id = deputies.range_id) - WHERE deputies.user_id = :user_id - AND (semester_courses.semester_id = :semester_id OR semester_courses.semester_id IS NULL)"; - } - $query .= " ORDER BY sem_name ASC"; - $statement = DBManager::get()->prepare($query); - $statement->bindValue(':user_id', $GLOBALS['user']->id); - $statement->bindValue(':semester_id', $current_semester->semester_id); - $statement->execute(); - $seminars = $statement->fetchAll(PDO::FETCH_ASSOC); - foreach($seminars as $sem) { - $tmp_result[$sem['Seminar_id']] = [ - 'name' => $sem['sem_name'], - 'type' => 'sem', - ]; - } - $term = ''; - } elseif ($term === '__NEXT_SEMESTER__') { - $next_semester = Semester::findNext(); - $query = "SELECT seminare.Name AS sem_name, seminare.Seminar_id, seminare.visible - FROM seminar_user - LEFT JOIN seminare USING (Seminar_id) - LEFT JOIN semester_courses ON (semester_courses.course_id = seminar_user.Seminar_id) - WHERE seminar_user.user_id = :user_id - AND seminar_user.status IN('tutor', 'dozent') - AND (semester_courses.semester_id = :semester_id OR semester_courses.semester_id IS NULL)"; - if (Config::get()->DEPUTIES_ENABLE) { - $query .= " UNION SELECT CONCAT(seminare.Name, ' ["._("Vertretung")."]') AS sem_name, seminare.Seminar_id, - seminare.visible - FROM deputies - LEFT JOIN seminare ON (deputies.range_id=seminare.Seminar_id) - LEFT JOIN semester_courses ON (semester_courses.course_id = deputies.range_id) - WHERE deputies.user_id = :user_id - AND (semester_courses.semester_id = :semester_id OR semester_courses.semester_id IS NULL)"; - } - $query .= " ORDER BY sem_name ASC"; - $statement = DBManager::get()->prepare($query); - $statement->bindValue(':user_id', $GLOBALS['user']->id); - $statement->bindValue(':semester_id', $next_semester->semester_id); - $statement->execute(); - $seminars = $statement->fetchAll(PDO::FETCH_ASSOC); - foreach($seminars as $sem) { - $tmp_result[$sem['Seminar_id']] = [ - 'name' => $sem['sem_name'], - 'type' => 'sem', - ]; - } - $term = ''; - } elseif ($term === '__MY_INSTITUTES__') { - $term = ''; - if ($perm->have_perm('root')) { - $tmp_result['studip'] = [ - 'name' => 'Stud.IP', - 'type' => 'global' - ]; - } - $inst_list = Institute::getMyInstitutes(); - if (count($inst_list)) { - foreach($inst_list as $data) { - $tmp_result[$data['Institut_id']] = [ - 'name' => $data['Name'], - 'type' => $data['is_fak'] ? 'fak' : 'inst' - ]; - } - } - } else { - $tmp_result = search_range($term, true) ?: []; - // add users - if (mb_stripos(get_fullname(), $term) !== false) { - $tmp_result[$GLOBALS['user']->id] = [ - 'name' => get_fullname(), - 'type' => 'user' - ]; - } - if (Deputy::isEditActivated()) { - $query = "SELECT DISTINCT a.user_id - FROM deputies d - JOIN auth_user_md5 a ON (d.range_id = a.user_id) - JOIN user_info u ON (a.user_id=u.user_id) - WHERE d.user_id = ? - AND CONCAT(u.title_front, ' ', a.Vorname, ' ', a.Nachname, ', ', u.title_rear) LIKE CONCAT('%',?,'%')"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$GLOBALS['user']->id, $term]); - while ($data = $statement->fetch(PDO::FETCH_ASSOC)) { - $tmp_result[$data['user_id']] = [ - 'name' => get_fullname($data['user_id']), - 'type' => 'user', - ]; - } - } - } - // workaround: apply search term (ignored by search_range below admin) - if (count($tmp_result) && !$GLOBALS['perm']->have_perm('admin') && $term) { - foreach ($tmp_result as $id => $data) { - if (mb_stripos($data['name'], $term) === false) { - unset($tmp_result[$id]); - } - } - } - // prepare result - - if (count($tmp_result)) { - foreach ($tmp_result as $id => $data) { - $index = $data['type'] === 'fak' - ? 'inst' - : $data['type']; - $result[$index][$id] = $data['name']; - } - } elseif ($term) { - PageLayout::postError(_('Zu diesem Suchbegriff wurden keine Bereiche gefunden.')); - } - return $result; - } - public function rss_config_action($range_id) { if (!Config::get()->NEWS_RSS_EXPORT_ENABLE || !StudipNews::haveRangePermission('edit', $range_id)) { |
