From dc2f8df502390621787cff58bb5d2fe26149cbf0 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 18 May 2025 18:17:08 +0200 Subject: [PATCH] include changes from drop2024 --- html/Admin.php | 12 +- html/AdminAlleSchichten-ed2.php | 386 ++++++++++++++++++++++++++ html/AdminAlleSchichten.php | 247 +++++++++------- html/AdminDienste.php | 20 +- html/AdminHelferUebersicht.php | 73 ++--- html/AdminMeineSchichten.php | 2 +- html/AdminUserdaten.php | 16 +- html/AlleSchichten.php | 181 +++++++----- html/Ausdrucke-alles.php | 8 +- html/Ausdrucke.php | 2 +- html/CreateHelfer.php | 6 +- html/DetailsSchichten.php | 2 +- html/EmailZuToken.php | 6 +- html/Info.php | 2 +- html/Kalender-all.php | 4 +- html/Kalender.php | 4 +- html/ReadLog.php | 2 +- html/SQL.php | 91 ++++-- html/TeilnehmerSchichtenAusdruck.php | 6 +- html/TeilnehmerSchichtenAusdruck2.php | 2 +- html/UrlLogin.php | 2 +- html/Userdaten.php | 4 +- html/_functions.php | 40 +++ html/_login.php | 3 +- html/css/style_common.css | 4 + html/index.php | 10 +- 26 files changed, 858 insertions(+), 277 deletions(-) create mode 100644 html/AdminAlleSchichten-ed2.php create mode 100644 html/_functions.php diff --git a/html/Admin.php b/html/Admin.php index d0416d5..03e2663 100644 --- a/html/Admin.php +++ b/html/Admin.php @@ -57,7 +57,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {   - Admin HelferDB + Admin @@ -71,23 +71,23 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { - Seite zur Helfer selbst-Registrierung + Seite zur selbst-Registrierung - Helfer per Link einladen + persönliche Einladungslink(s) generieren - Helferübersicht und als Admin ändern + Helferübersicht und als Admin ändern
(Anm: dieses Menü soll die Punkte unterhalb ablösen)
- Helfer als Admin ändern: + Als Admin ändern:
'; + $db_erg = HelferListe($db_link); + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + if ($AliasHelferID != $zeile['HelferID']) { + echo "
'; + } + + if (isset($_POST['AliasHelferID'])) { + $AliasHelferID = $_POST['AliasHelferID']; + } elseif (isset($_SESSION["AliasHelferID"])) { + $AliasHelferID = $_SESSION["AliasHelferID"]; + } else { + HelferAuswahlButton($db_link, $AliasHelferID); + echo "

Erst Helfer auswählen

"; + exit; + } + HelferAuswahlButton($db_link, $AliasHelferID); + + $_SESSION["AliasHelferID"] = $AliasHelferID; + $AdminID = $_SESSION["AdminID"]; + + $db_erg = Helferdaten($db_link, $AliasHelferID); + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $HelferName = $zeile['Name']; + $AliasHelferLevel = $zeile['HelferLevel']; + } + +// Helferliste Anzeigen +//////////////////////////////////////////////////////// + + ?> + + +
+
    '; + foreach ($messages as $message) { + echo '
  • ' . htmlspecialchars($message) . '
  • '; + } + echo '
'; + } +} + +if (isset($_POST['minusschicht'])) { + // Mich aus Schicht entfernen + $messages = []; + + $SchichtID = $_POST['minusschicht']; + // Nutzer hat hier zuletzt etwas geaenndert und wir klappen das deshalb auf: + $_SESSION["SchichtIdAktiv"] = $SchichtID; + + if (empty($messages)) { + // Helfer aus Schicht entfernen + $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $AliasHelferID, $SchichtID, $AdminID); + } else { + // Fehlermeldungen ausgeben: + echo '
    '; + foreach ($messages as $message) { + echo '
  • ' . htmlspecialchars($message) . '
  • '; + } + echo '
'; + } +} + +/// Ausgabe auf Deutsch umstellen +///////////////////////////////////////////////////////////////////////// + + DatenbankAufDeutsch($db_link); + + +// Zusammenfassung Eigener Schichten + $db_erg = SchichtenSummeEinesHelfers($db_link, $AliasHelferID); + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + + //"Dienstplan von" + echo '
'; + echo '' . "Dienstplan von $HelferName: "; + echo $zeile['Anzahl']; + echo " Schichten, "; + echo $zeile['Dauer'] / 3600; + echo " Stunden)"; + echo '


'; +/// Schichten Auswahl +//////////////////////////////////////////////////////// +$addschicht = $_SESSION["addschicht"]; +$dienstsort = $_SESSION["dienstsort"]; + + +//addschicht und dienst-sort sollten wohl nach Diensten bzw Tagen sortieren +//addschicht wird gerade nie gesetzt, dienst-sort damit auch nicht +if (isset($_POST['addschicht']) && $_POST['addschicht'] == '1') { + $addschicht = '1'; + $dienstsort = '1'; +} +if (isset($_POST['addschicht']) && $_POST['addschicht'] == '2') { + $addschicht = '2'; + $dienstsort = '2'; +} +if (isset($_POST['addschicht']) && $_POST['addschicht'] == '0') { + $addschicht = '0'; +} + +$_SESSION["addschicht"] = $addschicht; +$_SESSION["dienstsort"] = $dienstsort; + +//echo "
Detail=".$addschicht."
"; + +if ($addschicht == '0') { + echo "

Schichten Hinzufügen geordnet nach"; + echo ""; + echo "

"; +} + + +if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Diensten sortieren, macht es aber nicht + echo ''; + require('_zeitbereich.php'); + $Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, $_SERVER['PHP_SELF']); + $MeinVon = $Bereich['MeinVon']; + $MeinBis = $Bereich['MeinBis']; + $db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $AliasHelferLevel); + + // fuer Anzahlanzeige in Ueberschrift + $iAlleSchichtenCount = AlleSchichtenCount($db_link); + $iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); + echo '
'; + echo ""; + + // "Alle Schichten der Con" + echo ''; + echo ""; + echo ""; + + $alleHelferLevel = alleHelferLevel($db_link); + foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) { + $meine = ""; + if ($HelferLevelIteration == $AliasHelferLevel) { + $meine = " ← mein Level, Schichten werden unten angezeigt"; + } + $iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration); + $iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevelIteration); + echo ""; + } + + + $OldTag = ""; + $OldWas = ""; + // um Zeilen mit von mir belegten Schichten hervorzuheben + $MeineDienste = SchichtIdArrayEinesHelfers($db_link, $AliasHelferID); + //print_r($MeineDienste); + + echo '
Alle Schichten der Con (Besetzt/Gesamt) " . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . "
   → Schichten $HelferLevelBeschreibung (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine
'; + // Tabelle mit allen Diensten und Schichten + echo ''; + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt + $Tag = $zeile['Tag']; + + if ($Tag != $OldTag) { + echo ""; + $OldTag = $Tag; + } + } else { + $Was = $zeile['Was']; + + if ($Was != $OldWas) { // Header ausgeben, wenn der Dienst nicht mehr der selbe ist + // + in becomes - when rows are opened + echo ""; + echo ""; + SchichtInfo($SchichtID, $InfoWas, $InfoWo, $InfoDauer, $Leiter, $LeiterHandy, $LeiterEmail, $Info); + if (true) { + echo "\n"; + } + $OldWas = $Was; + } + } + $Color = "red"; + if ($zeile['Ist'] > 0) { + $Color = "yellow"; + } + if ($zeile['Ist'] >= $zeile['Soll']) { + $Color = "green"; + } + $Von = $zeile['Ab']; + $Bis = $zeile['Bis']; + if (substr($Von, 0, 2) == substr($Bis, 0, 2)) { + $Bis = substr($Bis, 2); + } + $Von = substr($Von, 2); + + // Meine Schichten gruen einfaerben + if (in_array($zeile['SchichtID'], $MeineDienste)) { + $rowstyle = ' style="background-color:lightgreen" '; + $regtext = '
Meine!
'; + } else { + // dummy-style, um SchichtID unsichtbar im Tag anzuzeigen + $rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" '; + $regtext = ''; + } + if (isset($_SESSION["SchichtIdAktiv"]) && $_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) { + $rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something + } + + echo ''; + + if ($dienstsort == '1') { + echo ""; + } else { + echo ""; + } + echo ""; + echo ""; + echo ""; + // durch space:nowrap wird ein Umbruch zwischen den Buttons verhindert + // in Kombi mit width:1% wird immer der minimale Platz für die Spalte belegt + // width:200px oder max-width:200px hat zu viel weissem Platz rechts und enge links gefuehrt + echo ""; + echo "\n"; + } + echo "
"; + echo $Tag; + echo "
+ "; + $SchichtID = $zeile['SchichtID']; + $DienstID = $zeile['DienstID']; + $iAlleSchichtenCount = AlleSchichtenCount($db_link, $AliasHelferLevel, $DienstID); + $iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $AliasHelferLevel, $DienstID); + echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) "; + echo "
"; + echo "Beschreibung: $Info

"; + echo "Ort: $InfoWo
"; + //echo "Dauer: $InfoDauer
"; // verschieden je nach Einzelschicht + echo "Ansprechparter:" . $Leiter . ", "; + echo $LeiterHandy . ", "; + echo "$LeiterEmail"; + echo "
" . $zeile['Was'] . "" . $zeile['Tag'] . "" . $Von . "" . $Bis . "" . $zeile['Ist'] . "/"; + echo "" . $zeile['Soll'] . ""; + echo "   $regtext" . "
"; +} + + + + + + + +mysqli_free_result($db_erg); + + +?> + +
+ + + + diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 07522d5..d5b6acc 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -1,21 +1,17 @@ '; - exit; -} ?> - - Helfer <?php echo EVENTNAME ?> Alle Schichten + + <?php echo EVENTNAME ?> Alle Schichten @@ -24,12 +20,15 @@ if ($AdminStatus != 1) { - - - -" . EVENTNAME . "
"; ?> -
- + + + " . EVENTNAME . ""; ?> +

Alle Schichten / Schichten hinzufügen

+
+ ". $SchichtID . "
"; - $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + $zeile = DetailSchicht($db_link, $SchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -51,40 +53,42 @@ if (isset($_POST['InfoMeineSchichtID'])) { $LeiterHandy = $zeile['Handy']; $LeiterEmail = $zeile['Email']; $Info = $zeile['Info']; + $db_link->close(); } +// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier +//if (isset($_GET['InfoAlleSchichtID'])) { +// $InfoAlleSchichtID = $_GET['InfoAlleSchichtID']; +// unset($InfoMeineSchichtID); +// //echo "". $SchichtID . "
"; +// +// $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); +// +// $Was = $zeile['Was']; +// $Wo = $zeile['Wo']; +// $Dauer = $zeile['Dauer']; +// $Leiter = $zeile['Name']; +// $LeiterHandy = $zeile['Handy']; +// $LeiterEmail = $zeile['Email']; +// $Info = $zeile['Info']; +// +// +// +// // Beteiligte Helfer Holen +// $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); +// +// +// $x = 0; +// +// while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +// $MitHelferID[$x] = $zeile['HelferID']; +// $MitHelfer[$x] = $zeile['Name']; +// $MitHelferHandy[$x] = $zeile['Handy']; +// $x++; +// } +//} -if (isset($_GET['InfoAlleSchichtID'])) { - $InfoAlleSchichtID = $_GET['InfoAlleSchichtID']; - unset($InfoMeineSchichtID); - //echo "". $SchichtID . "
"; - - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); - - $Was = $zeile['Was']; - $Wo = $zeile['Wo']; - $Dauer = $zeile['Dauer']; - $Leiter = $zeile['Name']; - $LeiterHandy = $zeile['Handy']; - $LeiterEmail = $zeile['Email']; - $Info = $zeile['Info']; - - - - // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); - - - $x = 0; - - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { - $MitHelferID[$x] = $zeile['HelferID']; - $MitHelfer[$x] = $zeile['Name']; - $MitHelferHandy[$x] = $zeile['Handy']; - $x++; - } -} - +// Auswahl Tag oberhalb der Dienstetabelle if (isset($_GET['ZeitBereich'])) { $ZeitBereich = $_GET['ZeitBereich']; } else { @@ -97,32 +101,31 @@ function HelferAuswahlButton($db_link, $AliasHelferID) $db_erg = HelferListe($db_link); while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { if ($AliasHelferID != $zeile['HelferID']) { - echo "