Esempio n. 1
0
 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%">&nbsp;
             </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">&nbsp;
             </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">&nbsp;</font>
             </td>
         </tr>
     </table>
 <?
     }
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
 /**
  *
  **/
 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;
 }
Esempio n. 4
0
 /**
  * 
  **/
 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'));
     });
 }
Esempio n. 5
0
 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');
 }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
/*****************************************************************************
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;
 }
Esempio n. 9
0
/**
 *
 * @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;
}
Esempio n. 10
0
 private function findAllSemesters()
 {
     return $this->filterSemesters(\SemesterData::GetSemesterArray());
 }
Esempio n. 11
0
 /**
  * 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;
 }
Esempio n. 12
0
    $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']);
}
Esempio n. 13
0
//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';
Esempio n. 14
0
// +---------------------------------------------------------------------------+
// 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");
Esempio n. 15
0
 function json_courses_action()
 {
     // get current semester
     $this->semester = \SemesterData::GetSemesterArray();
     // get all courses
     $this->courses = Course::findAllByUser($this->currentUser()->id);
 }
Esempio n. 16
0
 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;
 }