public function index_action() { if ($_SESSION['sem_portal']['bereich'] != "all") { $class = $GLOBALS['SEM_CLASS'][$_SESSION['sem_portal']['bereich']]; $this->anzahl_seminare_class = $class->countSeminars(); $sem_status = array_keys($class->getSemTypes()); } else { $sem_status = false; } $init_data = array("level" => "f", "cmd" => "qs", "show_class" => $_SESSION['sem_portal']['bereich'], "group_by" => 0, "default_sem" => ($default_sem = SemesterData::GetSemesterIndexById($_SESSION['_default_sem'])) !== false ? $default_sem : "all", "sem_status" => $sem_status); if (Request::option('reset_all')) { $_SESSION['sem_browse_data'] = null; } $this->sem_browse_obj = new SemBrowse($init_data); $sem_browse_data['show_class'] = $_SESSION['sem_portal']['bereich']; if (!$GLOBALS['perm']->have_perm("root")) { $this->sem_browse_obj->target_url = "dispatch.php/course/details/"; $this->sem_browse_obj->target_id = "sem_id"; } else { $this->sem_browse_obj->target_url = "seminar_main.php"; $this->sem_browse_obj->target_id = "auswahl"; } $this->toplist_entries = $this->getToplistEntries($sem_status); $this->controller = $this; }
$group_by = Request::int('group_by', 0); // store the seleced semester in the session if (Request::option('select_sem')) { $_SESSION['_default_sem'] = Request::option('select_sem'); } $show_semester = Request::option('select_sem', $_SESSION['_default_sem']); $sem_browse_obj = new SemBrowse(array('group_by' => 0)); $sem_browse_obj->sem_browse_data['default_sem'] = "all"; $sem_browse_obj->sem_number = false; $sem_browse_obj->target_url = "dispatch.php/course/details/"; //teilt der nachfolgenden Include mit, wo sie die Leute hinschicken soll $sem_browse_obj->target_id = "sem_id"; //teilt der nachfolgenden Include mit, wie die id die übergeben wird, bezeichnet werden soll $sem_browse_obj->sem_browse_data['level'] = $level; if ($show_semester) { $sem_number = SemesterData::GetSemesterIndexById($show_semester); $sem_browse_obj->sem_browse_data['default_sem'] = $sem_number; $sem_browse_obj->sem_number[0] = $sem_number; } switch ($level) { case "sbb": $sem_browse_obj->sem_browse_data['start_item_id'] = $id; $sem_browse_obj->get_sem_range($id, false); $sem_browse_obj->show_result = true; $sem_browse_obj->sem_browse_data['sset'] = false; $the_tree = $sem_browse_obj->sem_tree->tree; $bereich_typ = _("Studienbereich"); $head_text = _("Übersicht aller Veranstaltungen eines Studienbereichs"); $intro_text = sprintf(_("Alle Veranstaltungen, die dem Studienbereich: <br><b>%s</b><br> zugeordnet wurden."), htmlReady($the_tree->getShortPath($id))); $excel_text = strip_tags(DecodeHtml($intro_text)); break;
/** * Exports data of the given range. * * This function calls the functions that export the data sepcified by the given $export_range. * It calls the function output_data afterwards. * * @access public * @param string $range_id Stud.IP-range_id for export */ function export_range($range_id) { global $o_mode, $range_name, $ex_person_details, $persons, $ex_sem; // Ist die Range-ID eine Einrichtungs-ID? $query = "SELECT Name FROM Institute WHERE Institut_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($range_id)); $name = $statement->fetchColumn(); if ($name) { $range_name = $name; output_data(xml_header(), $o_mode); $output_startet = true; export_inst($range_id); } // Ist die Range-ID eine Fakultaets-ID? Dann auch untergeordnete Institute exportieren! $query = "SELECT Name, Institut_id\n FROM Institute\n WHERE fakultaets_id = ? AND Institut_id != fakultaets_id"; $statement = DBManager::get()->prepare($query); $statement->execute(array($range_id)); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { if ($row['Name'] != '') { // output_data ( xml_header(), $o_mode); export_inst($row['Institut_id']); } } // Ist die Range-ID eine Seminar-ID? $query = "SELECT Name, Seminar_id, Institut_id\n FROM seminare\n WHERE Seminar_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($range_id)); $row = $statement->fetch(PDO::FETCH_ASSOC); if ($row && $row['Name'] != '') { $range_name = $row['Name']; if (!$output_startet) { output_data(xml_header(), $o_mode); $output_startet = true; } export_inst($row['Institut_id'], $row['Seminar_id']); } // Ist die Range-ID ein Range-Tree-Item? if ($range_id != 'root') { $tree_object = new RangeTreeObject($range_id); $range_name = $tree_object->item_data["name"]; // Tree-Item ist ein Institut: if ($tree_object->item_data['studip_object'] == 'inst') { if (!$output_startet) { output_data(xml_header(), $o_mode); $output_startet = true; } export_inst($tree_object->item_data['studip_object_id']); } // Tree-Item hat Institute als Kinder: $inst_array = $tree_object->GetInstKids(); if (count($inst_array) > 0) { if (!$output_startet) { output_data(xml_header(), $o_mode); $output_startet = true; } while (list($key, $inst_ids) = each($inst_array)) { export_inst($inst_ids); } } } $query = "SELECT 1 FROM sem_tree WHERE sem_tree_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($range_id)); if ($statement->fetchColumn() || $range_id == 'root') { if (!$output_startet) { output_data(xml_header(), $o_mode); $output_startet = true; } if (isset($ex_sem) && ($semester = Semester::find($ex_sem))) { $args = array('sem_number' => array(SemesterData::GetSemesterIndexById($ex_sem))); } else { $args = array(); } if ($range_id != 'root') { $the_tree = TreeAbstract::GetInstance('StudipSemTree', $args); $sem_ids = array_unique($the_tree->getSemIds($range_id, true)); } if (is_array($sem_ids) || $range_id == 'root') { if (is_array($sem_ids)) { $query = "SELECT DISTINCT Institut_id\n FROM seminare\n WHERE Seminar_id IN (?)"; $statement = DBManager::get()->prepare($query); $statement->execute(array($sem_ids)); $to_export = $statement->fetchAll(PDO::FETCH_COLUMN); } else { $sem_ids = 'root'; $query = "SELECT DISTINCT Institut_id\n FROM seminare\n INNER JOIN seminar_sem_tree USING (seminar_id)"; if ($semester) { $query .= " WHERE seminare.start_time <= :begin\n AND (:begin <= (seminare.start_time + seminare.duration_time) OR\n seminare.duration_time = -1)"; $statement = DBManager::get()->prepare($query); $statement->bindValue(':begin', $semester->beginn); $statement->execute(); } else { $statement = DBManager::get()->query($query); } $to_export = $statement->fetchAll(PDO::FETCH_COLUMN); } foreach ($to_export as $inst) { export_inst($inst, $sem_ids); } } } if ($ex_person_details && is_array($persons)) { export_persons(array_keys($persons)); } output_data(xml_footer(), $o_mode, $flush = true); }
$header_template->link_params = array_fill_keys(array_keys(URLHelper::getLinkParams()), NULL); if (is_object($GLOBALS['user']) && $GLOBALS['user']->id != 'nobody') { // only mark course if user is logged in and free access enabled if (get_config('ENABLE_FREE_ACCESS') && Navigation::hasItem('/course') && Navigation::getItem('/course')->isActive()) { // indicate to the template that this course is publicly visible // need to handle institutes separately (always visible) if ($GLOBALS['SessSemName']['class'] == 'inst') { $header_template->public_hint = _('öffentliche Einrichtung'); } else { if (Course::findCurrent()->lesezugriff == 0) { $header_template->public_hint = _('öffentliche Veranstaltung'); } } } if ($GLOBALS['user']->cfg->getValue('ACCESSKEY_ENABLE')) { $header_template->accesskey_enabled = true; } // fetch semester for quick search box in the link bar $semester_data = SemesterData::GetSemesterArray(); $default_semester = $_SESSION['_default_sem'] ? SemesterData::GetSemesterIndexById($_SESSION['_default_sem']) : 'all'; $header_template->search_semester_nr = $default_semester; $header_template->search_semester_name = $default_semester != 'all' ? $semester_data[$default_semester]['name'] : _("alle Semester"); } } else { $header_template = $GLOBALS['template_factory']->open('noheader'); } echo $header_template->render(); if ($GLOBALS['SHOW_TERMS_ON_FIRST_LOGIN'] && is_object($GLOBALS['user']) && $GLOBALS['user']->id != 'nobody') { require_once 'lib/terms.inc.php'; check_terms($GLOBALS['user']->id, $GLOBALS['_language_path']); }
public static function getPreparedCourses($sem = "all", $params = array()) { $semesters = self::getSelectedSemesters($sem); $current_semester_nr = SemesterData::GetSemesterIndexById(@Semester::findCurrent()->id); $min_sem_key = min($semesters); $max_sem_key = max($semesters); $group_field = $params['group_field']; $courses = self::getCourses($min_sem_key, $max_sem_key, $params); $show_semester_name = UserConfig::get($GLOBALS['user']->id)->SHOWSEM_ENABLE; $sem_courses = array(); $param_array = 'name seminar_id visible veranstaltungsnummer start_time duration_time status visible '; $param_array .= 'chdate admission_binding modules admission_prelim'; if (!empty($courses)) { // filtering courses $modules = new Modules(); $member_ships = User::findCurrent()->course_memberships->toGroupedArray('seminar_id', 'status gruppe'); foreach ($courses as $index => $course) { // export object to array for simple handling $_course = $course->toArray($param_array); $_course['start_semester'] = $course->start_semester->name; $_course['end_semester'] = $course->end_semester->name; $_course['sem_class'] = $course->getSemClass(); $_course['obj_type'] = 'sem'; if ($group_field == 'sem_tree_id') { $_course['sem_tree'] = $course->study_areas->toArray(); } $user_status = @$member_ships[$course->id]['status']; if (!$user_status && Config::get()->DEPUTIES_ENABLE && isDeputy($GLOBALS['user']->id, $course->id)) { $user_status = 'dozent'; $is_deputy = true; } else { $is_deputy = false; } // get teachers only if grouping selected (for better performance) if ($group_field == 'dozent_id') { $teachers = new SimpleCollection($course->getMembersWithStatus('dozent')); $teachers->filter(function ($a) use(&$_course) { return $_course['teachers'][] = $a->user->getFullName('no_title_rev'); }); } $_course['last_visitdate'] = object_get_visit($course->id, 'sem', 'last'); $_course['visitdate'] = object_get_visit($course->id, 'sem', ''); $_course['user_status'] = $user_status; $_course['gruppe'] = !$is_deputy ? @$member_ships[$course->id]['gruppe'] : self::getDeputieGroup($course->id); $_course['sem_number_end'] = $course->duration_time == -1 ? $max_sem_key : SemesterData::GetSemesterIndexById($course->end_semester->id); $_course['sem_number'] = SemesterData::GetSemesterIndexById($course->start_semester->id); $_course['modules'] = $modules->getLocalModules($course->id, 'sem', $course->modules, $course->status); $_course['name'] = $course->name; $_course['temp_name'] = $course->name; $_course['number'] = $course->veranstaltungsnummer; $_course['is_deputy'] = $is_deputy; if ($show_semester_name && $course->duration_time != 0 && !$course->getSemClass()->offsetGet('studygroup_mode')) { $_course['name'] .= ' (' . $course->getFullname('sem-duration-name') . ')'; } // add the the course to the correct semester self::getObjectValues($_course); if ($course->duration_time == -1) { if ($current_semester_nr >= $min_sem_key && $current_semester_nr <= $max_sem_key) { $sem_courses[$current_semester_nr][$course->id] = $_course; } else { $sem_courses[$max_sem_key][$course->id] = $_course; } } else { for ($i = $min_sem_key; $i <= $max_sem_key; $i++) { if ($i >= $_course['sem_number'] && $i <= $_course['sem_number_end']) { $sem_courses[$i][$course->id] = $_course; } } } } } else { return null; } if (empty($sem_courses)) { return null; } if ($params['main_navigation']) { return $sem_courses; } krsort($sem_courses); // grouping if ($group_field == 'sem_number' && !$params['order_by']) { foreach ($sem_courses as $index => $courses) { uasort($courses, function ($a, $b) { if (Config::get()->IMPORTANT_SEMNUMBER) { return $a['gruppe'] == $b['gruppe'] ? strcmp($a['number'], $b['number']) : $a['gruppe'] - $b['gruppe']; } else { return $a['gruppe'] == $b['gruppe'] ? strcmp($a['temp_name'], $b['temp_name']) : $a['gruppe'] - $b['gruppe']; } }); $sem_courses[$index] = $courses; } } // Group by teacher if ($group_field == 'dozent_id') { self::groupByTeacher($sem_courses); } // Group by Sem Status if ($group_field == 'sem_status') { self::groupBySemStatus($sem_courses); } // Group by colors if ($group_field == 'gruppe') { self::groupByGruppe($sem_courses); } // Group by sem_tree if ($group_field == 'sem_tree_id') { self::groupBySemTree($sem_courses); } return !empty($sem_courses) ? $sem_courses : false; }
?> </label> </div> <label class="caption"> <?php echo _('Veranstaltung suchen'); ?> : </label> <div style="display:inline-block"> <?php echo QuickSearch::get("mandatory_course_id", new SeminarSearch('number-name-lecturer'))->render(); echo SemesterData::GetSemesterSelector(array('name' => 'search_sem_sem'), SemesterData::GetSemesterIndexById($_SESSION['_default_sem']), 'key', false); ?> </div> <br><br> <script> $('#ruleform input[name="modus"]').on('change', function () { var message = [ "<?php echo jsReady($rule->default_message, 'script-double'); ?> ", "<?php echo jsReady($rule->default_message1, 'script-double');