Tabelle seminare

Entwicklerdokumentation

seminare

Die Tabelle 'seminare' ist für alle Veranstaltungen zuständig, egal ob es nun das Kulturforum ist, "Spätwerke Schillers und ihre Folgen auf die Gesellschaft" oder eine studentische Arbeitsgruppe.

Seminar_id: Ja, auch groß geschrieben. Hierrüber wird die Veranstaltung eindeutig identifiziert.

Name: Ebenfalls groß geschrieben - der Name der Veranstaltung

Institut_id: Dies identifiziert die Heimateinrichtung einer Veranstaltung. Dies ist in der Regel eine Veranstaltung, in der der Gründer Dozentenrechte hat (also als lokale permissions 'dozent' gesetzt ist.

start_time: Der Unix-Timestamp Wert des Anfangs des Semesters, ab dem die Veranstaltung anfangen soll.

duration_time: 0, falls die Veranstaltung ein Semester lang gehen soll (Normalzustand). -1, wenn sie unendliche Dauer hat und ansonsten ist dies eine Integer-Zahl, sodass start_time + duration_time gleich der Zeitpunkt des Anfangs des ersten Semesters ist, ab dem die Veranstaltung nicht mehr aktuell ist. Also wäre die letzte Sekunde, die die Veranstaltung dauert start_time + duration_time -1. Das sieht komisch aus, hat aber seinen Sinn, wenn man start_time einer Veranstaltung mit der end_time einer anderen Veranstaltung vergleichen wollen würde. Die häufigste Frage, die sich einem Programmierer hier stellt, ist, wie bekomme ich alle Seminare des aktuellen Semesters. Die unten stehende Abfrage tut genau das:

require_once 'lib/classes/Semester.class.php';

$current_semester = Semester::findCurrent();

if($current_semester){
    $sem_condition = "seminare.start_time <=".$current_semester["beginn"]." 
                      AND (".$current_semester["beginn"]." <= (seminare.start_time + seminare.duration_time)
                      OR seminare.duration_time = -1)";
    $query = "SELECT * FROM seminare WHERE " . $sem_condition;
    $result = DbManager::get()->query($query)->fetchAll(PDO::FETCH_ASSOC);
    var_dump($result);
} 

In der Variable $sem_condition steht der wichtige Teil der Vergleiche (wenn duration_time -1 oder wenn duration_time 0 .....).

Nutzer werden einer Veranstaltung über die seminar_user eingetragen. In dieser Tabelle steht zum Beispiel auch im Feld status, welche Rechte der Nutzer lokal in der Veranstaltung hat.

Lesezugriff: Hier wird der Lesezugriff für die Veranstaltung geregelt, dabei ist:

  • 0: 'freier Zugriff'
  • 1: 'in Stud.IP angemeldet'
  • 2: 'nur mit Passwort'
  • 3: sieht im Interface wie 1 aus ('in Stud.IP angemeldet'), wird gesetzt, wenn das Anmeldeverfahren gesetzt ist

Letzte Änderung am May 30, 2012, at 12:57 PM von meister_philipp.