li-dance-backoffice/backend/main.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>&nbsp;</td>";
$dummy_cell = '<td class="dummy">&nbsp;</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'>&nbsp;</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&uuml;gen' alt='Hinzuf&uuml;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&ouml;schen' alt='L&ouml;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&uuml;gen' alt='Hinzuf&uuml;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&uuml;gen' alt='Hinzuf&uuml;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&ouml;schen' alt='L&ouml;schen' /></a> " .
"</div></td></tr><tr>";
}
mysqli_free_result($result);
$return .= $currentDiv . "</tr></table>";
$return .= "<a href='#' onclick='CourseAdd(); return false;'>Kurs hinzuf&uuml;gen</a> | <a href='#' onclick='Plan(); return false;'>Zur&uuml;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!";
}
}
?>