Esempio n. 1
0
    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') ) {
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
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;
}
Esempio n. 4
0
 static function GetSemesterIdByDate($timestamp)
 {
     $one_semester = SemesterData::GetInstance()->getSemesterDataByDate($timestamp);
     return isset($one_semester['semester_id']) ? $one_semester['semester_id'] : null;
 }