279 lines
11 KiB
PHP
279 lines
11 KiB
PHP
<?php
|
|
function Plan( $connection, $begin, $end, $intervall, $days ) {
|
|
|
|
$sh=intval($begin/100);
|
|
$sm=$begin - ($sh*100);
|
|
$eh=intval($end/100);
|
|
$em=$end - ($eh*100);
|
|
$int=$intervall;
|
|
$dd=$days;
|
|
$admin=login($GLOBALS["token"]);
|
|
|
|
$start_hour = 15;
|
|
$start_minute = 00;
|
|
$end_hour = 22;
|
|
$end_minute = 00;
|
|
$intervall = 30;
|
|
$days = 5;
|
|
|
|
$week = $GLOBALS["week"];
|
|
|
|
if( ( $sh >= 0 ) && // Starting hour between 0 and 23
|
|
( $sh < 24 ) && //
|
|
( $eh >= 0 ) && // Ending hour between 0 and 23
|
|
( $eh < 24 ) && //
|
|
( $sm >= 0 ) && // Starting minute between 0 and 59
|
|
( $sm < 60 ) && //
|
|
( $em >= 0 ) && // Ending minute between 0 and 59
|
|
( $em < 60 ) && //
|
|
( $int % 5 === 0 ) && // Intervall can be divided by 5
|
|
( $dd > 0 ) && // Number of days between 1 and 7
|
|
( $dd <= 7 ) && //
|
|
( $sh * 60 + $sm + $int < $eh * 60 + $em ) ) // Starting time less than ending time
|
|
{
|
|
$start_hour = $sh;
|
|
$start_minute = $sm;
|
|
$end_hour = $eh;
|
|
$end_minute = $em;
|
|
$intervall = $int;
|
|
$days = $dd;
|
|
}
|
|
|
|
$empty_row = "";
|
|
$empty_cell = "<td> </td>";
|
|
$dummy_cell = '<td class="dummy"> </td>';
|
|
$rowspan_factor = 2;
|
|
|
|
$table_header = "<table class='schedule'><tr class='header'>";
|
|
$table_body = "<td class='first'></td>";
|
|
$table_footer = $dummy_cell . "</tr></table>";
|
|
|
|
$querystr = "SELECT * FROM li_plan, li_courses WHERE li_plan.cid=li_courses.cid ORDER BY begin, day";
|
|
|
|
$current_hour = $start_hour;
|
|
$current_minute = $start_minute;
|
|
$current_day = 1;
|
|
|
|
$current_day_db = 0;
|
|
$current_hour_db = 0;
|
|
$current_minute_db = 0;
|
|
|
|
$previous_day_db = 0;
|
|
$previous_hour_db = 0;
|
|
$previous_minute_db = 0;
|
|
|
|
$skipper = array();
|
|
|
|
for( $i = 1; $i <= $days; $i++ ) {
|
|
$skipper[$i] = 0;
|
|
$table_body .= "<td>" . $week[$i] . "</td>";
|
|
$empty_row .= $empty_cell;
|
|
}
|
|
|
|
$table_body .= $dummy_cell . "<td class='last'> </td></tr><tr class='timerow'><td rowspan='" . $rowspan_factor . "' class='first'><div>" .
|
|
str_pad($start_hour,2,"0",STR_PAD_LEFT) . ":" .
|
|
str_pad($start_minute,2,"0",STR_PAD_LEFT) . "</div></td>" .
|
|
$empty_row . $dummy_cell .
|
|
"<td rowspan='" . $rowspan_factor . "' class='last'><div>" .
|
|
str_pad($start_hour,2,"0",STR_PAD_LEFT) . ":" .
|
|
str_pad($start_minute,2,"0",STR_PAD_LEFT) . "</div></td>" .
|
|
"</tr><tr class='courserow'>" ;
|
|
$empty_row = "";
|
|
|
|
$result = mysqli_query($connection, $querystr);
|
|
while ($row = mysqli_fetch_object($result)) {
|
|
|
|
$current_day_db = $row->day;
|
|
$current_hour_db = intval(substr($row->begin, 0, 2));
|
|
$current_minute_db = intval(substr($row->begin, 3, 2));
|
|
|
|
$current_endhour_db = intval(substr($row->end, 0, 2));
|
|
$current_endminute_db = intval(substr($row->end, 3, 2));
|
|
|
|
$rowspan = stepCount($current_hour_db, $current_minute_db, $current_endhour_db, $current_endminute_db, $intervall);
|
|
|
|
while( timeLessThan( $current_hour, $current_minute, $current_hour_db, $current_minute_db ) &&
|
|
timeLessThan( $current_hour, $current_minute, $end_hour, $end_minute ) )
|
|
{
|
|
for( $j=$previous_day_db; $j<$days; $j++ ) {
|
|
if( $skipper[$j+1] > 0 ) {
|
|
$skipper[$j+1] = $skipper[$j+1] - 1;
|
|
} else {
|
|
if( $admin ) {
|
|
$table_body .= "<td onclick='AppointmentAdd(" . ($j+1) . "," . str_pad($current_hour, 2, '0') . str_pad($current_minute, 2, '0') . ")'><img src='" . IMAGE_PATH . "plus.png' title='Termin hinzufügen' alt='Hinzufügen' /></td>";
|
|
} else {
|
|
$table_body .= $empty_cell;
|
|
}
|
|
$empty_row .= $empty_cell;
|
|
}
|
|
}
|
|
$current_minute += $intervall;
|
|
while( $current_minute >= 60 ) {
|
|
|
|
$current_minute -= 60;
|
|
$current_hour++;
|
|
}
|
|
|
|
$table_body .= $dummy_cell . "</tr><tr class='timerow'><td rowspan='" . $rowspan_factor . "' class='first'><div>" .
|
|
str_pad($current_hour,2,"0",STR_PAD_LEFT) . ":" .
|
|
str_pad($current_minute,2,"0",STR_PAD_LEFT) . "</div></td>" .
|
|
$empty_row . $dummy_cell .
|
|
"<td rowspan='" . $rowspan_factor . "' class='last'><div>" .
|
|
str_pad($current_hour,2,"0",STR_PAD_LEFT) . ":" .
|
|
str_pad($current_minute,2,"0",STR_PAD_LEFT) . "</div></td>" .
|
|
"</tr><tr class='courserow'>" ;
|
|
|
|
$empty_row = "";
|
|
$previous_day_db = 0;
|
|
$current_day = 1;
|
|
}
|
|
|
|
while( ( $current_day <= $days ) &&
|
|
( $current_day <= $current_day_db ) )
|
|
{
|
|
if( $current_day == $current_day_db ) {
|
|
if( $admin ) {
|
|
$table_body .= "<td rowspan='" . ($rowspan * $rowspan_factor) . "' class='course'" .
|
|
($row->color !== "" ? "style='background-color:#" . $row->color . "'>" : ">" ) .
|
|
($row->link !== "" ? "<b><a href='" . $row->link . "'>" : "<b>" ) . $row->diffname . ($row->link !== "" ? "</a></b>" : "</b>" ) .
|
|
($row->diffname !== $row->name ? "<br /><span class='course-subname'>" . $row->name . "</span>" : "") .
|
|
"<br /><span class='course-description'>" . umlaute($row->level) . "</span>" .
|
|
"<br /><span class='course-description'>" . umlaute($row->description) . "</span>" .
|
|
"<div class='actionpanel'>" .
|
|
"<a onclick='AppointmentEdit(" . $row->cid . "," .
|
|
$current_day_db . "," .
|
|
str_pad($current_hour_db, 2, '0') . str_pad($current_minute_db, 2, '0') . "," .
|
|
str_pad($current_endhour_db, 2, '0') . str_pad($current_endminute_db, 2, '0') .
|
|
");'><img src='" . IMAGE_PATH . "view.png' title='Termin bearbeiten' alt='Editieren' /></a> " .
|
|
"<a onclick='AppointmentDelete(" . $row->cid . "," .
|
|
$current_day_db . "," .
|
|
str_pad($current_hour_db, 2, '0') . str_pad($current_minute_db, 2, '0') . "," .
|
|
str_pad($current_endhour_db, 2, '0') . str_pad($current_endminute_db, 2, '0') .
|
|
");'><img src='" . IMAGE_PATH . "del.png' title='Termin löschen' alt='Löschen' /></a> " .
|
|
"</div></td>";
|
|
} else {
|
|
$table_body .= "<td rowspan='" . ($rowspan * $rowspan_factor) . "' class='course'" .
|
|
($row->color !== "" ? "style='background-color:#" . $row->color . "'>" : ">" ) .
|
|
($row->link !== "" ? "<b><a href='" . $row->link . "'>" : "<b>" ) . $row->diffname . ($row->link !== "" ? "</a></b>" : "</b>" ) .
|
|
($row->diffname !== $row->name ? "<br /><span class='course-subname'>" . $row->name . "</span>" : "") .
|
|
"<br /><span class='course-description'>" . umlaute($row->level) . "</span>" .
|
|
"<br /><span class='course-description'>" . umlaute($row->description) . "</span></td>";
|
|
}
|
|
} else {
|
|
if( $skipper[$current_day] > 0 ) {
|
|
$skipper[$current_day] = $skipper[$current_day] - 1;
|
|
} else {
|
|
if( $admin ) {
|
|
$table_body .= "<td onclick='AppointmentAdd(" . $current_day . "," . str_pad($current_hour, 2, '0') . str_pad($current_minute, 2, '0') . ")'><img src='" . IMAGE_PATH . "plus.png' title='Termin hinzufügen' alt='Hinzufügen' /></td>";
|
|
} else {
|
|
$table_body .= $empty_cell;
|
|
}
|
|
$empty_row .= $empty_cell;
|
|
}
|
|
}
|
|
|
|
$current_day++;
|
|
}
|
|
|
|
if( $current_day > $days ) {
|
|
$current_day = 1;
|
|
}
|
|
|
|
$skipper[$current_day_db] += ($rowspan - 1);
|
|
|
|
$previous_day_db = $current_day_db;
|
|
$previous_hour_db = $current_hour_db;
|
|
$previous_minute_db = $current_minute_db;
|
|
}
|
|
mysqli_free_result($result);
|
|
|
|
while( timeLessThan( $current_hour, $current_minute, $end_hour, $end_minute ) )
|
|
{
|
|
for( $j=$previous_day_db; $j<$days; $j++ ) {
|
|
if( $skipper[$j+1] > 0 ) {
|
|
$skipper[$j+1] = $skipper[$j+1] - 1;
|
|
} else {
|
|
if( $admin ) {
|
|
$table_body .= "<td onclick='AppointmentAdd(" . ($j+1) . "," . str_pad($current_hour, 2, '0') . str_pad($current_minute, 2, '0') . ")'><img src='" . IMAGE_PATH . "plus.png' title='Termin hinzufügen' alt='Hinzufügen' /></td>";
|
|
} else {
|
|
$table_body .= $empty_cell;
|
|
}
|
|
$empty_row .= $empty_cell;
|
|
}
|
|
}
|
|
|
|
$current_minute += $intervall;
|
|
while( $current_minute >= 60 ) {
|
|
|
|
$current_minute -= 60;
|
|
$current_hour++;
|
|
}
|
|
|
|
if( ( $current_hour != $end_hour ) ||
|
|
( $current_minute != $end_minute ) ) {
|
|
$table_body .= $dummy_cell . "</tr><tr class='timerow'><td rowspan='" . $rowspan_factor . "' class='first'><div>" .
|
|
str_pad($current_hour,2,"0",STR_PAD_LEFT) . ":" .
|
|
str_pad($current_minute,2,"0",STR_PAD_LEFT) . "</div></td>" .
|
|
$empty_row . $dummy_cell .
|
|
"<td rowspan='" . $rowspan_factor . "' class='last'><div>" .
|
|
str_pad($current_hour,2,"0",STR_PAD_LEFT) . ":" .
|
|
str_pad($current_minute,2,"0",STR_PAD_LEFT) . "</div></td>" .
|
|
"</tr><tr class='courserow'>" ;
|
|
}
|
|
|
|
$previous_day_db = 0;
|
|
$current_day = 1;
|
|
$empty_row = "";
|
|
}
|
|
|
|
$cource_editor = "";
|
|
if( $admin ) { $course_editor = '<a href="#" onclick="Kurse(); return false;">Kurse bearbeiten</a> | <a href="#" onclick="Plan(); return false;">Aktualisieren</a>'; }
|
|
|
|
return $table_header . $table_body . $table_footer . $course_editor;
|
|
}
|
|
|
|
function Kurse($connection) {
|
|
$admin=login($GLOBALS["token"]);
|
|
$return = "";
|
|
$currentDiv = "";
|
|
|
|
$querystr = "SELECT * FROM li_courses ORDER BY li_courses.cid";
|
|
|
|
$currentDiv = "<table class='course'><tr class='header'>";
|
|
$currentDiv .= "<td>Gruppenname</td>" .
|
|
"<td>Tanzstil</td>" .
|
|
"<td>Alter</td>" .
|
|
"<td>Level</td>" .
|
|
"<td style='width:40px;'>Link</td>" .
|
|
"<td style='width:20px;'>Farbe</td>" .
|
|
"<td class='actionpanel'>Aktion</td></tr><tr>";
|
|
|
|
$result = mysqli_query($connection, $querystr);
|
|
|
|
while ($row = mysqli_fetch_object($result)) {
|
|
|
|
$currentDiv .= "<td>" . $row->name . "</td>";
|
|
$currentDiv .= "<td>" . $row->diffname . "</td>";
|
|
$currentDiv .= "<td>" . umlaute($row->description) . "</td>";
|
|
$currentDiv .= "<td>" . umlaute($row->level) . "</td>";
|
|
$currentDiv .= ($row->link !== "" ? "<td><a href='" . $row->link . "'>Link</a></td>" : "<td></td>");
|
|
$currentDiv .= ($row->color !== "" ? "<td style='background-color:#" . $row->color . "'></td>" : "<td></td>");
|
|
$currentDiv .= "<td class='actionpanel'><div class='actionpanel'>" .
|
|
"<a onclick='CourseEdit(" . $row->cid . ");'><img src='" . IMAGE_PATH . "view.png' title='Kurs bearbeiten' alt='Editieren' /></a> " .
|
|
"<a onclick='CourseDelete(" . $row->cid . ");'><img src='" . IMAGE_PATH . "del.png' title='Kurs löschen' alt='Löschen' /></a> " .
|
|
"</div></td></tr><tr>";
|
|
|
|
}
|
|
mysqli_free_result($result);
|
|
|
|
$return .= $currentDiv . "</tr></table>";
|
|
$return .= "<a href='#' onclick='CourseAdd(); return false;'>Kurs hinzufügen</a> | <a href='#' onclick='Plan(); return false;'>Zurück zum Plan</a> | <a href='#' onclick='Kurse(); return false;'>Aktualisieren</a>";
|
|
|
|
if( $admin ) {
|
|
return $return;
|
|
} else {
|
|
return "Sie sind nicht berechtigt um auf diesen Teil der Seite zuzugreifen!";
|
|
}
|
|
}
|
|
|
|
?>
|