function navigator ($print_view = false) { global $cssSw, $view_mode; $semester = SemesterData::GetSemesterArray(); unset($semester[0]); if (!$print_view){ ?> <table border="0" celpadding="2" cellspacing="0" width="99%" align="center"> <form method="POST" name="schedule_form" action="<?echo URLHelper::getLink('?navigate=TRUE&quick_view=view_sem_schedule&quick_view_mode='.$view_mode) ?>"> <?= CSRFProtection::tokenTag() ?> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="96%" colspan="3"><font size=-1><b><?=_("Semester:")?></b></font> </td> </tr> <tr> <td class="<? echo $cssSw->getClass() ?>" width="4%" rowspan="2"> </td> <td class="<? echo $cssSw->getClass() ?>" width="40%" valign="bottom"> <font size="-1"> <?=SemesterData::GetSemesterSelector(array('name' => 'sem_schedule_choose', 'onChange' => 'document.schedule_form.submit()'), $this->semester['semester_id'],'semester_id',false)?> <?= Button::create(_('Auswählen'), 'jump') ?><br> </font> </td> <td class="<? echo $cssSw->getClass() ?>" width="30%" valign="middle"> <font size="-1"> <?=_("Ein Semester als Liste ausgeben")?> </font> </td> <td class="<? echo $cssSw->getClass() ?>"> <?= Button::create(_('Ausgeben'), 'sem_schedule_start_list') ?><br> </td> </tr> <tr> <td class="<? echo $cssSw->getClass() ?>" width="40%" valign="middle"> <label> <input type="radio" onChange="document.schedule_form.submit()" style="vertical-align:bottom" <?=($this->timespan == 'course_time' ? 'checked' : '')?> name="sem_time_choose" value="course_time"> <?=_("Vorlesungszeit")?> </label> <label> <input type="radio" onChange="document.schedule_form.submit()" style="vertical-align:bottom" <?=($this->timespan == 'sem_time' ? 'checked' : '')?> name="sem_time_choose" value="sem_time"> <?=_("vorlesungsfreie Zeit")?> </label> </td> <td class="<? echo $cssSw->getClass() ?>" width="30%" valign="middle"><font size="-1"> <?=_("<i>oder</i> ein Semester grafisch ausgeben")?> </font> </td> <td class="<? echo $cssSw->getClass() ?>"> <?= Button::create(_('Ausgeben'), 'sem_schedule_start_graphical') ?><br> </td> </tr> <tr> <td class="<? echo $cssSw->getClass() ?>" colspan="4"><font size="-1"> </font> </td> </tr> </table> <? } }
static function findAllByUser($user_id) { foreach (\SemesterData::GetSemesterArray() as $key => $value) { if (isset($value['beginn']) && $value['beginn']) { $sem_start_times[] = $value['beginn']; } } $sem_number_sql = "INTERVAL(start_time," . join(",", $sem_start_times) . ")"; $sem_number_end_sql = "IF(duration_time=-1,-1,INTERVAL(start_time+duration_time," . join(",", $sem_start_times) . "))"; $query = "SELECT seminare.VeranstaltungsNummer AS sem_nr, \n\t\t\t\t\t\tschedule_seminare.color AS color, \n\t\t\t\t\t\t seminare.Name, seminare.Seminar_id, \n\t\t\t\t\t\t seminare.status as sem_status,\n\t\t\t\t\t\t seminar_user.status, seminar_user.gruppe, \n\t\t\t\t\t\t seminare.chdate, seminare.visible, \n\t\t\t\t\t\t admission_binding,\n\t\t\t\t\t\t modules,IFNULL(visitdate,0) as visitdate, \n\t\t\t\t\t\t admission_prelim, \n\t\t\t\t\t\t {$sem_number_sql} as sem_number, \n\t\t\t\t\t\t {$sem_number_end_sql} as sem_number_end {$add_fields}\n\t\t\t\tFROM seminar_user \n\t\t\t\tLEFT JOIN seminare USING (Seminar_id)\n\t\t\t\tLEFT JOIN schedule_seminare ON (schedule_seminare.user_id='{$user_id}' \n\t\t\t\t\tAND schedule_seminare.seminar_id=seminare.Seminar_id)\n\t\t\t\tLEFT JOIN object_user_visits ouv ON (ouv.object_id=seminar_user.Seminar_id \n\t\t\t\t\tAND ouv.user_id='{$user_id}' AND ouv.type='sem')\n\t\t\t\t{$add_query}\n\t\t\t\tWHERE seminar_user.user_id = '{$user_id}'"; $stmt = \DBManager::get()->query($query); return $stmt->fetchAll(); }
/** * **/ public static function getSemester($timestamp = null) { static $semesters; if (!isset($semesters)) { $semesters = \SemesterData::GetSemesterArray(); } if (!$timestamp) { $timestamp = time(); } foreach ($semesters as $semester) { if ($timestamp >= $semester['beginn'] && $timestamp <= $semester['ende']) { return $semester['semester_id']; } } return false; }
/** * **/ public function routes(&$router) { $router->get('/semesters', function () use($router) { $temp = \SemesterData::GetSemesterArray(); $semesters = array(); foreach ($temp as $sem) { if ($sem['semester_id']) { $semesters[$sem['semester_id']] = reset($router->dispatch('get', '/semesters/:semester_id', $sem['semester_id'])); } } $semesters = array_values($semesters); $router->render(compact('semesters')); }); $router->get('/semesters/:semester_id', function ($semester_id) use($router) { $temp = \SemesterData::getInstance()->getSemesterData($semester_id); if (!$temp) { $router->halt(404, sprintf('Semester "%s" not found', $semester_id)); } $semester = array('semester_id' => $temp['semester_id'], 'title' => $temp['name'], 'description' => $temp['description'], 'begin' => $temp['beginn'], 'end' => $temp['ende'], 'seminars_begin' => $temp['vorles_beginn'], 'seminars_end' => $temp['vorles_ende']); $router->render(compact('semester')); }); }
function StudipSemSearch($form_name = "search_sem", $auto_search = true, $visible_only = false, $sem_class = 'all') { $search_fields = array('title' => array('type' => 'text'), 'sub_title' => array('type' => 'text'), 'number' => array('type' => 'text'), 'comment' => array('type' => 'text'), 'lecturer' => array('type' => 'text'), 'scope' => array('type' => 'text'), 'quick_search' => array('type' => 'text'), 'type' => array('type' => 'select', 'default_value' => 'all', 'max_length' => 35, 'options_callback' => array($this, 'getSelectOptions')), 'sem' => array('type' => 'select', 'default_value' => 'all', 'options_callback' => array($this, 'getSelectOptions')), 'category' => array('type' => 'select', 'default_value' => 'all', 'max_length' => 50, 'options_callback' => array($this, 'getSelectOptions')), 'combination' => array('type' => 'select', 'default_value' => 'AND', 'options_callback' => array($this, 'getSelectOptions')), 'scope_choose' => array('type' => 'select', 'default_value' => 'root', 'max_length' => 45, 'options_callback' => array($this, 'getSelectOptions')), 'range_choose' => array('type' => 'select', 'default_value' => 'root', 'max_length' => 45, 'options_callback' => array($this, 'getSelectOptions')), 'qs_choose' => array('type' => 'select', 'default_value' => 'title_lecturer_number', 'options_callback' => array($this, 'getSelectOptions'))); $search_buttons = array('do_search' => array('caption' => _("Suchen"), 'info' => _("Suche starten")), 'sem_change' => array('caption' => _('Auswählen'), 'info' => _("anderes Semester auswählen")), 'new_search' => array('caption' => _('Neue Suche'), 'info' => _("Neue Suche starten"))); //workaround: Qicksearch ändert den Namen des Eingabefeldes if (Request::get("search_sem_quick_search_parameter")) { Request::set('search_sem_quick_search', Request::get("search_sem_quick_search_parameter")); } $this->form = new StudipForm($search_fields, $search_buttons, $form_name, false); $this->form_name = $form_name; $this->sem_dates = SemesterData::GetSemesterArray(); $this->visible_only = $visible_only; $this->search_sem_class = $sem_class; if ($this->form->isClicked('do_search') || $this->form->isSended() && (!$this->form->isClicked('sem_change') || strlen($this->form->getFormFieldValue('quick_search')) > 2)) { $this->search_button_clicked = true; if ($auto_search) { $this->doSearch(); $this->search_done = true; } } $this->new_search_button_clicked = $this->form->isClicked('new_search'); $this->sem_change_button_clicked = $this->form->isClicked('do_search'); }
static function GetSemesterSelector($select_attributes = null, $default = 0, $option_value = 'semester_id', $include_all = true) { $semester = SemesterData::GetSemesterArray(); unset($semester[0]); if ($include_all) { $semester['all'] = array('name' => _("alle"), 'semester_id' => 0); } $semester = array_reverse($semester, true); if (!$select_attributes['name']) { $select_attributes['name'] = 'sem_select'; } $out = chr(10) . '<select '; foreach ($select_attributes as $key => $value) { $out .= ' ' . $key . '="' . $value . '" '; } $out .= '>'; foreach ($semester as $sem_key => $one_sem) { $one_sem['key'] = $sem_key; $out .= "\n<option value=\"{$one_sem[$option_value]}\" " . ($one_sem[$option_value] == $default ? "selected" : "") . ">" . htmlReady($one_sem['name']) . "</option>"; } $out .= chr(10) . '</select>'; return $out; }
/***************************************************************************** evaluate the commands from schedule navigator (sem mode) /*****************************************************************************/ if ($view == "view_sem_schedule" || $view == "view_group_schedule" || $view == "view_group_schedule_daily" || $view == 'openobject_group_schedule') { if (Request::quoted('next_sem')){ $sem_array = SemesterData::GetSemesterArray(); foreach ($sem_array as $id => $one_sem){ if ($one_sem['semester_id'] == $_SESSION['resources_data']['sem_schedule_semester_id'] && isset($sem_array[$id+1])){ $_SESSION['resources_data']['sem_schedule_semester_id'] = $sem_array[$id+1]['semester_id']; break; } } } if (Request::quoted('previous_sem')){ $sem_array = SemesterData::GetSemesterArray(); foreach ($sem_array as $id => $one_sem){ if ($one_sem['semester_id'] == $_SESSION['resources_data']['sem_schedule_semester_id'] && ($id-1) && isset($sem_array[$id-1])){ $_SESSION['resources_data']['sem_schedule_semester_id'] = $sem_array[$id-1]['semester_id']; break; } } } if($view == "view_group_schedule_daily" || $view == 'openobject_group_schedule'){ if(Request::submitted('jump')) { $splitDate = explode('.', $_REQUEST['schedule_begin_date']); $_SESSION['resources_data']["schedule_start_time"] = mktime (0, 0, 0, $splitDate[1], $splitDate[0], $splitDate[2]); //$_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')); }
function createResultXls() { require_once "vendor/write_excel/OLEwriter.php"; require_once "vendor/write_excel/BIFFwriter.php"; require_once "vendor/write_excel/Worksheet.php"; require_once "vendor/write_excel/Workbook.php"; global $_fullname_sql, $SEM_TYPE, $SEM_CLASS, $TMP_PATH; if (is_array($this->sem_browse_data['search_result']) && count($this->sem_browse_data['search_result'])) { if (!is_object($this->sem_tree)) { $the_tree = TreeAbstract::GetInstance("StudipSemTree"); } else { $the_tree =& $this->sem_tree; } list($group_by_data, $sem_data) = $this->getResult(); $tmpfile = $TMP_PATH . '/' . md5(uniqid('write_excel', 1)); // Creating a workbook $workbook = new Workbook($tmpfile); $head_format =& $workbook->addformat(); $head_format->set_size(12); $head_format->set_bold(); $head_format->set_align("left"); $head_format->set_align("vcenter"); $head_format_merged =& $workbook->addformat(); $head_format_merged->set_size(12); $head_format_merged->set_bold(); $head_format_merged->set_align("left"); $head_format_merged->set_align("vcenter"); $head_format_merged->set_merge(); $head_format_merged->set_text_wrap(); $caption_format =& $workbook->addformat(); $caption_format->set_size(10); $caption_format->set_align("left"); $caption_format->set_align("vcenter"); $caption_format->set_bold(); //$caption_format->set_text_wrap(); $data_format =& $workbook->addformat(); $data_format->set_size(10); $data_format->set_align("left"); $data_format->set_align("vcenter"); $caption_format_merged =& $workbook->addformat(); $caption_format_merged->set_size(10); $caption_format_merged->set_merge(); $caption_format_merged->set_align("left"); $caption_format_merged->set_align("vcenter"); $caption_format_merged->set_bold(); // Creating the first worksheet $worksheet1 =& $workbook->addworksheet(_("Veranstaltungen")); $worksheet1->set_row(0, 20); $worksheet1->write_string(0, 0, _("Stud.IP Veranstaltungen") . ' - ' . $GLOBALS['UNI_NAME_CLEAN'], $head_format); $worksheet1->set_row(1, 20); $worksheet1->write_string(1, 0, sprintf(_(" %s Veranstaltungen gefunden %s, Gruppierung: %s"), count($sem_data), $this->sem_browse_data['do_search'] ? _("(Suchergebnis)") : '', $this->group_by_fields[$this->sem_browse_data['group_by']]['name']), $caption_format); $worksheet1->write_blank(0, 1, $head_format); $worksheet1->write_blank(0, 2, $head_format); $worksheet1->write_blank(0, 3, $head_format); $worksheet1->write_blank(1, 1, $head_format); $worksheet1->write_blank(1, 2, $head_format); $worksheet1->write_blank(1, 3, $head_format); $worksheet1->set_column(0, 0, 70); $worksheet1->set_column(0, 1, 25); $worksheet1->set_column(0, 2, 25); $worksheet1->set_column(0, 3, 50); $row = 2; foreach ($group_by_data as $group_field => $sem_ids) { switch ($this->sem_browse_data["group_by"]) { case 0: $semester = SemesterData::GetSemesterArray(); $headline = $semester[$group_field]['name']; break; case 1: if ($the_tree->tree_data[$group_field]) { $headline = $the_tree->getShortPath($group_field); } else { $headline = _("keine Studienbereiche eingetragen"); } break; case 3: $headline = $SEM_TYPE[$group_field]["name"] . " (" . $SEM_CLASS[$SEM_TYPE[$group_field]["class"]]["name"] . ")"; break; default: $headline = $group_field; break; } ++$row; $worksheet1->write_string($row, 0, $headline, $caption_format); $worksheet1->write_blank($row, 1, $caption_format); $worksheet1->write_blank($row, 2, $caption_format); $worksheet1->write_blank($row, 3, $caption_format); ++$row; if (is_array($sem_ids['Seminar_id'])) { $semester = SemesterData::GetSemesterArray(); while (list($seminar_id, ) = each($sem_ids['Seminar_id'])) { $sem_name = key($sem_data[$seminar_id]["Name"]); $seminar_number = key($sem_data[$seminar_id]['VeranstaltungsNummer']); $sem_number_start = key($sem_data[$seminar_id]["sem_number"]); $sem_number_end = key($sem_data[$seminar_id]["sem_number_end"]); if ($sem_number_start != $sem_number_end) { $sem_name .= ' (' . $semester[$sem_number_start]['name'] . ' - '; $sem_name .= ($sem_number_end == -1 ? _("unbegrenzt") : $semester[$sem_number_end]['name']) . ')'; } elseif ($this->sem_browse_data['group_by']) { $sem_name .= ' (' . $semester[$sem_number_start]['name'] . ")"; } $worksheet1->write_string($row, 0, $sem_name, $data_format); //create Turnus field $temp_turnus_string = Seminar::GetInstance($seminar_id)->getFormattedTurnus(true); //Shorten, if string too long (add link for details.php) if (strlen($temp_turnus_string) > 245) { $temp_turnus_string = substr($temp_turnus_string, 0, strpos(substr($temp_turnus_string, 245, strlen($temp_turnus_string)), ",") + 246); $temp_turnus_string .= "...(mehr)"; } $worksheet1->write_string($row, 1, $seminar_number, $data_format); $worksheet1->write_string($row, 2, $temp_turnus_string, $data_format); $doz_name = array_keys($sem_data[$seminar_id]['fullname']); $doz_position = array_keys($sem_data[$seminar_id]['position']); if (is_array($doz_name)) { if (count($doz_position) != count($doz_name)) { $doz_position = range(1, count($doz_name)); } array_multisort($doz_position, $doz_name); $worksheet1->write_string($row, 3, join(', ', $doz_name), $data_format); } ++$row; } } } $workbook->close(); } return $tmpfile; }
/** * * @param unknown_type $my_obj */ function add_sem_name(&$my_obj) { if ($GLOBALS['user']->cfg->getValue('SHOWSEM_ENABLE')) { $sem_data = SemesterData::GetSemesterArray(); if (is_array($my_obj)) { foreach ($my_obj as $seminar_id => $values) { if ($values['obj_type'] == 'sem' && $values['sem_number'] != $values['sem_number_end']) { $sem_name = " (" . $sem_data[$values['sem_number']]['name'] . " - "; $sem_name .= ($values['sem_number_end'] == -1 ? _("unbegrenzt") : $sem_data[$values['sem_number_end']]['name']) . ")"; $my_obj[$seminar_id]['name'] .= $sem_name; } else { $my_obj[$seminar_id]['name'] .= " (" . $sem_data[$values['sem_number']]['name'] . ") "; } } } } return true; }
private function findAllSemesters() { return $this->filterSemesters(\SemesterData::GetSemesterArray()); }
/** * Seminar group administration - cluster your seminars by colors or * change grouping mechanism */ public function groups_action($sem = null, $studygroups = false) { if ($GLOBALS['perm']->have_perm('admin')) { throw new AccessDeniedException(); } $this->title = _('Meine Veranstaltungen') . ' - ' . _('Farbgruppierungen'); if (Request::isXhr()) { $this->set_layout(null); $this->response->add_header('Content-Type', 'text/html;charset=Windows-1252'); header('X-Title: ' . $this->title); } else { PageLayout::setTitle($this->title); PageLayout::setHelpKeyword('Basis.VeranstaltungenOrdnen'); Navigation::activateItem('/browse/my_courses/list'); } $this->current_semester = $sem ?: Semester::findCurrent()->semester_id; $this->semesters = SemesterData::GetSemesterArray(); $forced_grouping = Config::get()->MY_COURSES_FORCE_GROUPING; if ($forced_grouping == 'not_grouped') { $forced_grouping = 'sem_number'; } $no_grouping_allowed = $forced_grouping == 'sem_number' || !in_array($forced_grouping, getValidGroupingFields()); $group_field = $GLOBALS['user']->cfg->MY_COURSES_GROUPING ?: $forced_grouping; $groups = array(); $add_fields = ''; $add_query = ''; if ($group_field == 'sem_tree_id') { $add_fields = ', sem_tree_id'; $add_query = "LEFT JOIN seminar_sem_tree sst ON (sst.seminar_id=seminare.Seminar_id)"; } else { if ($group_field == 'dozent_id') { $add_fields = ', su1.user_id as dozent_id'; $add_query = "LEFT JOIN seminar_user as su1 ON (su1.seminar_id=seminare.Seminar_id AND su1.status='dozent')"; } } $dbv = DbView::getView('sem_tree'); $query = "SELECT seminare.VeranstaltungsNummer AS sem_nr, seminare.Name, seminare.Seminar_id,\n seminare.status AS sem_status, seminar_user.gruppe, seminare.visible,\n {$dbv->sem_number_sql} AS sem_number,\n {$dbv->sem_number_end_sql} AS sem_number_end {$add_fields}\n FROM seminar_user\n JOIN semester_data sd\n LEFT JOIN seminare USING (Seminar_id)\n {$add_query}\n WHERE seminar_user.user_id = ?"; if (Config::get()->MY_COURSES_ENABLE_STUDYGROUPS && !$studygroups) { $query .= " AND seminare.status != 99"; } if ($studygroups) { $query .= " AND seminare.status = 99"; } if (get_config('DEPUTIES_ENABLE')) { $query .= " UNION " . getMyDeputySeminarsQuery('gruppe', $dbv->sem_number_sql, $dbv->sem_number_end_sql, $add_fields, $add_query); } $query .= " ORDER BY sem_nr ASC"; $statement = DBManager::get()->prepare($query); $statement->execute(array($GLOBALS['user']->id)); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $my_sem[$row['Seminar_id']] = array('obj_type' => 'sem', 'sem_nr' => $row['sem_nr'], 'name' => $row['Name'], 'visible' => $row['visible'], 'gruppe' => $row['gruppe'], 'sem_status' => $row['sem_status'], 'sem_number' => $row['sem_number'], 'sem_number_end' => $row['sem_number_end']); if ($group_field) { fill_groups($groups, $row[$group_field], array('seminar_id' => $row['Seminar_id'], 'sem_nr' => $row['sem_nr'], 'name' => $row['Name'], 'gruppe' => $row['gruppe'])); } } if ($group_field == 'sem_number') { correct_group_sem_number($groups, $my_sem); } else { add_sem_name($my_sem); } sort_groups($group_field, $groups); // Ensure that a seminar is never in multiple groups $sem_ids = array(); foreach ($groups as $group_id => $seminars) { foreach ($seminars as $index => $seminar) { if (in_array($seminar['seminar_id'], $sem_ids)) { unset($seminars[$index]); } else { $sem_ids[] = $seminar['seminar_id']; } } if (empty($seminars)) { unset($groups[$group_id]); } else { $groups[$group_id] = $seminars; } } $this->studygroups = $studygroups; $this->no_grouping_allowed = $no_grouping_allowed; $this->groups = $groups; $this->group_names = get_group_names($group_field, $groups); $this->group_field = $group_field; $this->my_sem = $my_sem; }
$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']); }
//List of Institutes $parameters = array(); if ($perm->have_perm('admin')) { $query = "SELECT Institut_id, Name\n FROM Institute\n WHERE (Institute.modules & 16)\n ORDER BY name"; } else { $query = "SELECT Institut_id, Name\n FROM user_inst\n LEFT JOIN Institute USING (institut_id)\n WHERE user_id = ? AND (Institute.modules & 16)\n ORDER BY name"; $parameters[] = $user->id; } $statement = DBManager::get()->prepare($query); $statement->execute($parameters); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $institutes[] = array('id' => $row['Institut_id'], 'name' => my_substr($row['Name'], 0, 40)); } //List of Seminars if (!$perm->have_perm('admin')) { $all_semes = array_reverse(SemesterData::GetSemesterArray()); $query = "SELECT Seminar_id, Name\n FROM seminar_user\n LEFT JOIN seminare USING (Seminar_id)\n WHERE user_id = ? AND (seminare.modules & 8) {$exclude_sem}\n AND (start_time <= ? AND (? <= (start_time + duration_time) OR duration_time = -1))\n ORDER BY start_time DESC"; $statement = DBManager::get()->prepare($query); foreach ($all_semes as $sem) { if (!$sem['semester_id']) { continue; } $statement->execute(array($user->id, $sem['beginn'], $sem['beginn'])); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $courses[$sem['name']][] = array('id' => $row['Seminar_id'], 'name' => my_substr($row['Name'], 0, 40)); } } } $template->set_attribute('institutes', $institutes); $template->set_attribute('courses', $courses); $vis_query = get_vis_query('auth_user_md5', 'search') . ' AS visible';
// +---------------------------------------------------------------------------+ // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or any later version. // +---------------------------------------------------------------------------+ // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // +---------------------------------------------------------------------------+ foreach (SemesterData::GetSemesterArray() as $key => $value){ if (isset($value['beginn']) && $value['beginn']) $sem_start_times[] = $value['beginn']; } $_views['sem_number_sql'] = "INTERVAL(start_time," . join(",",$sem_start_times) .")"; $_views['sem_number_end_sql'] = "IF(duration_time=-1,-1,INTERVAL(start_time+duration_time," . join(",",$sem_start_times) ."))"; $_views["TREE_KIDS"] = array("pk"=>"item_id","temp_table_type"=>"HEAP", "query"=>"SELECT item_id FROM range_tree WHERE parent_id=? ORDER BY priority"); $_views["TREE_GET_DATA"] = array("pk"=>"item_id","temp_table_type"=>"HEAP", "query"=>"SELECT a.*, b.Name AS studip_object_name, b.fakultaets_id FROM range_tree a LEFT JOIN Institute b ON (a.studip_object_id = b.Institut_id) ORDER BY priority"); $_views["TREE_GET_SEM_ENTRIES"] = array("pk"=>"item_id","temp_table_type"=>"HEAP", "query"=>"SELECT item_id,count(d.Seminar_id) AS entries FROM range_tree a INNER JOIN seminar_inst c ON (a.studip_object_id = c.institut_id) INNER JOIN seminare d ON(c.seminar_id=d.Seminar_id §) § GROUP BY a.item_id");
function json_courses_action() { // get current semester $this->semester = \SemesterData::GetSemesterArray(); // get all courses $this->courses = Course::findAllByUser($this->currentUser()->id); }
public static function getSelectedSemesters($sem = 'all') { $sem_data = SemesterData::GetSemesterArray(); $semesters = array(); $current_sem = SemesterData::GetSemesterIndexById($_SESSION['_default_sem']); if (isset($sem_data[$current_sem + 1])) { $max_sem = $current_sem + 1; } else { $max_sem = $current_sem; } if (isset($sem_data[$current_sem + 2])) { $after_next_sem = $current_sem + 2; } else { $after_next_sem = $max_sem; } // Get the needed semester if (!in_array($sem, array('all', 'current', 'future', 'last', 'lastandnext'))) { $semesters[] = SemesterData::GetSemesterIndexById($sem); } else { switch ($sem) { case 'current': $semesters[] = $current_sem; break; case 'future': $semesters[] = $current_sem; $semesters[] = $max_sem; break; case 'last': $semesters[] = $current_sem - 1; $semesters[] = $current_sem; break; case 'lastandnext': $semesters[] = $current_sem - 1; $semesters[] = $current_sem; $semesters[] = $max_sem; break; default: $semesters = array_keys($sem_data); break; } } return $semesters; }