Hallo Leute!
Ich bin ein Anfänger, was PHP angeht und habe mir überlegt einen Terminkalender zu schreiben.
Aufträge und sowas kann man anlegen und sowas.
Das einzige, was ich noch will, ist, dass, wenn sich Termine überschneiden, sollen sie nebeneinander dargestellt werden.
Ich bin nicht der Typ, der sowas schnell aus dem Ärmel zaubert.
(Ich hoffe, dass ich hier richtig bin, es ist halt keine wirkliche PHP-Frage)
Termine haben eine Startzeit und eine Endzeit. Wie man eine Überschneidung prüft, ist mir schon klar, mir gehts eher darum, dass die Termine
1. schmaler angezeigt werden, wenn sie sich überschneiden
2. Termine, die später anfangen als mit dem, den sie überschneiden, weiter rechts angezeigt werden.
Etwa so:
https://dl.dropboxusercontent.com/u/.../Unbenannt.jpg
Hat da jemand einen Lösungsansatz für mich? :]
Meiner wäre im Moment so:
PHP-Code:
function getOverlaps(array $tasks)
{
$result = array();
$tasksOfThisDay = $tasks;
usort($tasksOfThisDay,'sortTasks');
foreach($tasksOfThisDay as $taskA)
{
foreach($tasksOfThisDay as $taskB)
{
if(isOverlay($taskA,$taskB))
{
$array = array($taskA->id,$taskB->id);
sort($array);
if (!in_array($array, $result)) $result[] = $array;
}
}
}
return $result;
}
das Ergebnis zeigt allerdings nur, welche Aufträge sich überschneiden und nicht, wie oft.