elseif(Request::quoted("show_repeat_mode_requests")) $_SESSION['resources_data']["show_repeat_mode_requests"] = Request::quoted("show_repeat_mode_requests"); elseif (Request::quoted('start_time')) { $_SESSION['resources_data']["schedule_start_time"] = Request::quoted('start_time'); $_SESSION['resources_data']["schedule_end_time"] = $_SESSION['resources_data']["schedule_start_time"] + (7 * 24 * 60 * 60) + 59; $_SESSION['resources_data']["schedule_mode"] = "graphical"; $_SESSION['resources_data']["schedule_week_offset"] = 0; } elseif (Request::quoted('navigate')) { $_SESSION['resources_data']["schedule_week_offset"] = 0; $_SESSION['resources_data']["schedule_start_time"] = mktime (0,0,0, Request::int('schedule_begin_month'), Request::int('schedule_begin_day'), Request::int('schedule_begin_year')); } else { if($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]['first_event']){ $_SESSION['resources_data']["schedule_start_time"] = $_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]['first_event']; } else { $semester_data = SemesterData::GetInstance()->getSemesterData($_SESSION['resources_data']["sem_schedule_semester_id"]); $_SESSION['resources_data']["schedule_start_time"] = $semester_data['vorles_beginn']; } $_SESSION['resources_data']["schedule_mode"] = "graphical"; $_SESSION['resources_data']["show_repeat_mode_requests"] = 'all'; $_SESSION['resources_data']["schedule_week_offset"] = 0; $_SESSION['resources_data']['sem_schedule_timespan'] = 'course_time'; } } switch (Request::option('skip_closed_requests')) { case "FALSE" : $_SESSION['resources_data']["skip_closed_requests"] = FALSE; break; case "TRUE" : $_SESSION['resources_data']["skip_closed_requests"] = TRUE; break; } //cancel an edit request session if (Request::int('cancel_edit_request_x') || Request::submitted('cancel_edit_request') ) {
function get_result() { global $_fullname_sql, $SEM_TYPE, $SEM_CLASS; if ($this->sem_browse_data['group_by'] == 1) { if (!is_object($this->sem_tree)) { $the_tree = TreeAbstract::GetInstance("StudipSemTree", false); } else { $the_tree = $this->sem_tree->tree; } if ($this->sem_browse_data['start_item_id'] != 'root' && ($this->sem_browse_data['level'] == "vv" || $this->sem_browse_data['level'] == "sbb")) { $allowed_ranges = $the_tree->getKidsKids($this->sem_browse_data['start_item_id']); $allowed_ranges[] = $this->sem_browse_data['start_item_id']; $sem_tree_query = " AND sem_tree_id IN('" . join("','", $allowed_ranges) . "') "; } $add_fields = "seminar_sem_tree.sem_tree_id AS bereich,"; $add_query = "LEFT JOIN seminar_sem_tree ON (seminare.Seminar_id = seminar_sem_tree.seminar_id {$sem_tree_query})"; } else { if ($this->sem_browse_data['group_by'] == 4) { $add_fields = "Institute.Name AS Institut,Institute.Institut_id,"; $add_query = "LEFT JOIN seminar_inst ON (seminare.Seminar_id = seminar_inst.Seminar_id)\n LEFT JOIN Institute ON (Institute.Institut_id = seminar_inst.institut_id)"; } else { $add_fields = ""; $add_query = ""; } } $dbv = DbView::getView('sem_tree'); $query = "SELECT seminare.Seminar_id,VeranstaltungsNummer, seminare.status, IF(seminare.visible=0,CONCAT(seminare.Name, ' " . _("(versteckt)") . "'), seminare.Name) AS Name,\n {$add_fields}" . $_fullname_sql['full'] . " AS fullname, auth_user_md5.username,\n " . $dbv->sem_number_sql . " AS sem_number, " . $dbv->sem_number_end_sql . " AS sem_number_end, seminar_user.position AS position FROM seminare\n LEFT JOIN seminar_user ON (seminare.Seminar_id=seminar_user.Seminar_id AND seminar_user.status='dozent')\n LEFT JOIN auth_user_md5 USING (user_id)\n LEFT JOIN user_info USING (user_id)\n {$add_query}\n WHERE seminare.Seminar_id IN('" . join("','", array_keys($this->sem_browse_data['search_result'])) . "')"; $db = new DB_Seminar($query); $snap = new DbSnapshot($db); $group_field = $this->group_by_fields[$this->sem_browse_data['group_by']]['group_field']; $data_fields[0] = "Seminar_id"; if ($this->group_by_fields[$this->sem_browse_data['group_by']]['unique_field']) { $data_fields[1] = $this->group_by_fields[$this->sem_browse_data['group_by']]['unique_field']; } $group_by_data = $snap->getGroupedResult($group_field, $data_fields); $sem_data = $snap->getGroupedResult("Seminar_id"); if ($this->sem_browse_data['group_by'] == 0) { $group_by_duration = $snap->getGroupedResult("sem_number_end", array("sem_number", "Seminar_id")); foreach ($group_by_duration as $sem_number_end => $detail) { if ($sem_number_end != -1 && ($detail['sem_number'][$sem_number_end] && count($detail['sem_number']) == 1)) { continue; } else { $current_semester_index = SemesterData::GetInstance()->GetSemesterIndexById(Semester::findCurrent()->semester_id); foreach ($detail['Seminar_id'] as $seminar_id => $foo) { $start_sem = key($sem_data[$seminar_id]["sem_number"]); if ($sem_number_end == -1) { if ($this->sem_number === false) { $sem_number_end = $current_semester_index && isset($this->search_obj->sem_dates[$current_semester_index + 1]) ? $current_semester_index + 1 : count($this->search_obj->sem_dates) - 1; } else { $sem_number_end = $this->sem_number[0]; } } for ($i = $start_sem; $i <= $sem_number_end; ++$i) { if ($this->sem_number === false || is_array($this->sem_number) && in_array($i, $this->sem_number)) { if ($group_by_data[$i] && !$tmp_group_by_data[$i]) { foreach ($group_by_data[$i]['Seminar_id'] as $id => $bar) { $tmp_group_by_data[$i]['Seminar_id'][$id] = true; } } $tmp_group_by_data[$i]['Seminar_id'][$seminar_id] = true; } } } } } if (is_array($tmp_group_by_data)) { if ($this->sem_number !== false) { unset($group_by_data); } foreach ($tmp_group_by_data as $start_sem => $detail) { $group_by_data[$start_sem] = $detail; } } } //release memory unset($snap); unset($tmp_group_by_data); foreach ($group_by_data as $group_field => $sem_ids) { foreach ($sem_ids['Seminar_id'] as $seminar_id => $foo) { $name = strtolower(key($sem_data[$seminar_id]["Name"])); $name = str_replace("ä", "ae", $name); $name = str_replace("ö", "oe", $name); $name = str_replace("ü", "ue", $name); if (Config::get()->IMPORTANT_SEMNUMBER && key($sem_data[$seminar_id]['VeranstaltungsNummer'])) { $name = key($sem_data[$seminar_id]['VeranstaltungsNummer']) . ' ' . $name; } $group_by_data[$group_field]['Seminar_id'][$seminar_id] = $name; } uasort($group_by_data[$group_field]['Seminar_id'], 'strnatcmp'); } switch ($this->sem_browse_data["group_by"]) { case 0: krsort($group_by_data, SORT_NUMERIC); break; case 1: uksort($group_by_data, create_function('$a,$b', '$the_tree = TreeAbstract::GetInstance("StudipSemTree", false); $the_tree->buildIndex(); return (int)($the_tree->tree_data[$a]["index"] - $the_tree->tree_data[$b]["index"]); ')); break; case 3: uksort($group_by_data, create_function('$a,$b', 'global $SEM_CLASS,$SEM_TYPE; return strnatcasecmp($SEM_TYPE[$a]["name"]." (". $SEM_CLASS[$SEM_TYPE[$a]["class"]]["name"].")", $SEM_TYPE[$b]["name"]." (". $SEM_CLASS[$SEM_TYPE[$b]["class"]]["name"].")");')); break; default: uksort($group_by_data, 'strnatcasecmp'); break; } return array($group_by_data, $sem_data); }
function get_sem_num_sem_browse() { $all_semester = SemesterData::GetInstance()->getAllSemesterData(); $time = time(); $ret = false; foreach ($all_semester as $key => $val) { if ($ret && $val["vorles_ende"] >= $time) { $ret = $key; break; } if ($time >= $val["vorles_ende"]) { $ret = true; } } return $ret; }
static function GetSemesterIdByDate($timestamp) { $one_semester = SemesterData::GetInstance()->getSemesterDataByDate($timestamp); return isset($one_semester['semester_id']) ? $one_semester['semester_id'] : null; }