Mathiis: Navigation in einem Kalender

Beitrag lesen

Du wirst doch hoffentlich am Tabellenaufbau etwas ändern können/dürfen? Ein Feld für Anfang (und Ende?) eines Eintrags im DATETIME-Format reicht für deinen Zweck völlig aus. Du müsstest nur noch pro Datensatz die vorhandenen Daten in das DATETIME-Format umrechnen (Y-m-d H:i:s (siehe PHP: date)) und in den Datensatz einfügen.

Logischerweise wird dann beim Eintrag und bei der Ausgabe zukünftig auf die neuen Felder zugegriffen.

hmm, also könnte ich ein datetime feld einfügen und dann den Inhalt, den ich reinschreiben will aus mehreren Feldern zusammensetzen. Schon hab ich ne kleinere DB. Hmm, das ist natürlich gut.

Es wird also ein Block erstellt (Termin), der in dem Wochenplangerüst abgebildet wird.

Das ist nur eine Frage der folgenden Ausgabe der Einträge.

Tschö, Auge

Und dann muss ich diese Felder wieder auseinander pflücken, damit die Darstellung passt.

ich hole mir über eine Anfrage an die DB die Termine, die in einer Woche liegen und pflücke mir die Zeiten so raus, dass ich damit weiterrechnen kann.

Füge mal die Breitenberechnung ein, damit man mal sieht, was mir vorgesetzt wurde...

function termine_raum(){
 global $site_config, $session;
 $min = 480;
 $max = 1200;
 $boardwidth=600;
 $datewidth=60;
 $calendarwidth=720;
 for($i = 1; $i <= 6; $i++) {
          $tmp[$i] = $this->get_day_termin_raum($i);
   if(!empty($tag_termin)) {
  $tmp[$i] = $tag_termin;
   }

}

if(!empty($tmp)) {
    foreach ($tmp as $key => $val) {
    $summe = 0;
    $y = 0;
    $min = 480;
    $width[$key]["tag"] = $this->wochentage[$key];
    if(!empty($val)) {
            foreach ($val as $k => $v) {
                  $width[$key]["daten"][$y]["width"] = (($v["termin_anf_std"]*$datewidth + $v["termin_anf_min"]) - $min)*($boardwidth/$calendarwidth);
    $summe += $width[$key]["daten"][$y]["width"];
    $width[$key]["daten"][$y]["class"] = "eintrag_lost";
    $y++;
    $width[$key]["daten"][$y]["width"] = (($v["termin_end_std"]*$datewidth + $v["termin_end_min"]) - ($v["termin_anf_std"]*$datewidth + $v["termin_anf_min"]))*($boardwidth/$calendarwidth);
                  $width[$key]["daten"][$y]["von"] = $v["termin_anf_std"].":".$v["termin_anf_min"];;
    $width[$key]["daten"][$y]["studenten"] = $this->get_user_termin($v["termin_id"]);
    $width[$key]["daten"][$y]["bis"] = $v["termin_end_std"].":".$v["termin_end_min"];
    $width[$key]["daten"][$y]["termin_id"] = $v["termin_id"];
    if($v["termin_kind"] == 3) {
      $width[$key]["daten"][$y]["class"] = "eintrag_free";
    }
    elseif($v["termin_kind"] == 1){
      $width[$key]["daten"][$y]["class"] = "eintrag";
    } else {
      $width[$key]["daten"][$y]["class"] = "eintrag_sperr";
    }

$summe += $width[$key]["daten"][$y]["width"];
    $y++;
                  $min = $v["termin_end_std"]*$datewidth + $v["termin_end_min"];
     }
 }
 $width[$key]["daten"][$y]["width"] = $boardwidth - $summe;
}
}
return $width;
}