Hallo Regina,
/**
* Formatiere das HTML Fragment für einen Kalendertag
*
* @param \mysqli $mysqli mysqli-Objekt für Datenbeschaffung
* @param string $date Anfragedatum, yyyy-mm-tt
* @param bool $aktuellerTag True um Tag als aktuelles Datum zu formatieren
* @return string
*/
function formatiere_tag($thisMonth, $day_count, $day, $today, $mysqli, $teile25)
{
if ($day < 1 || $day > $day_count)
{
return "<td class='emptyDay'></td>";
}
$date = $thisMonth . sprintf('-%02d', $day);
// Daten beschaffen
$datumTermine = kalender_termine($mysqli, $date, $teile25, 3);
$anzTermineGesamt = count_alle_kalender_termine($mysqli, $date, $teile25);
$dayClasses = ($date == $today ? "today " : "");
$dayHtml = "<td class='$dayClasses calendarDay'>"
. formatiere_tag_header($date, $day, $anzTermineGesamt);
foreach ($datumTermine as $termin)
{
$dayHtml .= formatiere_termin($termin);
}
return $dayHtml . '</td>';
}
function Count_Alle_Kalender_Termine($mysqli, $datum, $teile25) {
// Bis eine bessere Abfrage bereitstelt, auf die alte Technik der unlimitierten
// Abfrage zurückfallen
$termine = Kalender_Termine($mysqli, $datum, $teile25);
return count($termine);
}
function formatiere_termin($termin) {
// Formatiere_Datenblatt_Link wählt k/f-Bezeichnung automatisch aus.
// Formatiere_JobNr_und_Zeit gibt nur ein <span> aus wenn die JobNr
// gefüllt oder ein Zeitraum angefordert ist. Sonst kommt '' zurück.
if ($termin["kt_datum"] == $termin["k_datum_von"])
{
if ($termin["k_ganztags"] == "0")
{
$terminHoehe = '';
$terminInhalt = formatiere_datenblatt_link($termin) . formatiere_jobNr_und_zeit($termin, true);
}
else
{
$terminHoehe = 'min-height: 37px;';
$terminInhalt = formatiere_datenblatt_link($termin) . formatiere_jobNr_und_zeit($termin, false);
}
}
else
{
$terminHoehe = 'height: 37px;';
// Wochentag des Termindatums prüfen
$datum = getdate(strtotime($termin["kt_datum"]));
if ($datum['wday'] == 1) // Montag
{
$terminInhalt = formatiere_datenblatt_link($termin) . formatiere_jobNr_und_zeit($termin, false);
}
else
{
$terminInhalt = '';
}
}
return '<div style="background:'.$termin["ka_farbe"].'; margin-bottom:5px; padding-left:8px;'.$terminHoehe.'">'
. $terminInhalt
. '</div>';
}
function Formatiere_Datenblatt_Link($termin)
{
$text = ($termin["k_auto"] == "") ? $termin["k_bezeichnung"] : $termin["f_bezeichnung"];
$url = '/kalender-datenblatt.php?code='.$termin["k_code"];
$farbe = 'color:'.$termin["kf_color"];
return '<a href="'.$url.'" style="'.$farbe.'">'.shortText($text, 15).'</a>';
//return '<span style="color:'.$termin["kf_color"].'"><a href="'.$url.'" style="'.$farbe.'">'.shortText($text, 15).'</a></span>';
}
/**
* Formatiere JobNr und Zeitraum eines Termineintrags.
*
* Ist die JobNr leer und kein Zeitraum gefordert, wird ein Leerstring zurückgegeben.
*
* Ist die JobNr bestückt und ein Zeitraum gefordert, werden beide durch " - " getrennt.
*
* Das Ergebnis wird in einen span mit style-Attribut eingehüllt, das die Farbe gemäß
* Datenbank setzt. TODO: Unnötige Styles ins CSS verlegen!
*
* @param array $termin Terminzeile aus dem SQL Ergebnis
* @param bool $mitZeitraum true übergeben um auch den Zeitraum auszugeben
*
* @return string HTML-Text mit span Element, das die Werte enthält
*/
function Formatiere_JobNr_und_Zeit($termin, $mitZeitraum)
{
$parts = [];
if ($termin['k_jobNr'] != '')
{
$parts[] = $termin['k_jobNr'];
}
if ($mitZeitraum)
{
$parts[] = $termin['k_von'].' bis '.$termin['k_bis'].' Uhr';
}
if (count($parts) == 0)
{
return '';
}
return '<span style="color:'.$termin["kf_color"].'; font-size:10px; display: block; padding-bottom: 2px;">'
. implode(' - ', $parts)
. '</span>';
}
Bis bald!
Bernd