Helfersystem nach 3 Conventions
Autor größtenteils Ralf Changes to be committed: new file: INSTALL new file: html/Admin.php new file: html/AdminAlleSchichten.php new file: html/AdminDienste.php new file: html/AdminHelferUebersicht.php new file: html/AdminMeineSchichten.php new file: html/AdminUserdaten.php new file: html/AlleSchichten.php new file: html/Ausdrucke.php new file: html/Bilder/Attention_Sign.svg new file: html/Bilder/Info.jpeg new file: html/Bilder/More.jpeg new file: html/Bilder/PfeilRechts2.jpeg new file: html/Bilder/PfeilRechts2.png new file: html/Bilder/PfeilRunter.jpeg new file: html/Bilder/calendar_lines.png new file: html/Bilder/calendar_lines1.png new file: html/Bilder/dot.png new file: html/CreateHelfer.php new file: html/DecodeToken.php new file: html/EmailZuToken.php new file: html/Info.php new file: html/Kalender-all.html new file: html/Kalender.php new file: html/MeineSchichten.php new file: html/ReadLog.php new file: html/SQL.php new file: html/UrlLogin.php new file: html/Userdaten.php new file: html/_crypt.php new file: html/_login.php new file: html/css/style_common.css new file: html/css/style_desktop.css new file: html/css/style_mobile.css new file: html/css/style_print.css new file: html/data/api-full.php new file: html/data/api-helfer.php new file: html/index.php new file: html/js/helferdb.js new file: html/js/jquery-3.7.1.min.js new file: html/konfiguration.php
|
|
@ -0,0 +1,32 @@
|
|||
Installation:
|
||||
|
||||
Install a "LAMP" server via your distribution:
|
||||
* web server
|
||||
+ with php capabilities
|
||||
* sql database (mariadb)
|
||||
* email server/ability to send emails (optional)
|
||||
|
||||
Example for debian:
|
||||
webserver:
|
||||
apt-get install apache2 openssl python3-certbot-apache php-mysql php-json
|
||||
sql database:
|
||||
apt-get install mariadb-server mariadb-client
|
||||
|
||||
Copy the contents of the html directory into your webserver tree
|
||||
|
||||
create database and database user
|
||||
|
||||
restore database from backup:
|
||||
TODO
|
||||
|
||||
edit konfiguration.php and adapt to your installation
|
||||
|
||||
login with admin user: admin@admin.de pw: 4024ae463a4ef9ff455705afe54f83c3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Admin Drop am See</title>
|
||||
<link rel="stylesheet" href="css/style_common.css"/>
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
$AliasHelferID=0;
|
||||
|
||||
//echo "AliasHelfer=$AliasHelferID <br>";
|
||||
if(isset($_SESSION["AliasHelferID"]))
|
||||
{
|
||||
$AliasHelferID = $_SESSION["AliasHelferID"];
|
||||
}
|
||||
|
||||
//echo "AliasHelfer=$AliasHelferID <br>";
|
||||
|
||||
if(isset($_POST["AliasHelfer"]))
|
||||
{
|
||||
$AliasHelferID = $_POST["AliasHelfer"];
|
||||
//echo "post<br>";
|
||||
}
|
||||
|
||||
if($AliasHelferID!=0)
|
||||
{
|
||||
$_SESSION["AliasHelferID"]=$AliasHelferID;
|
||||
}
|
||||
//echo "AliasHelfer=$AliasHelferID <br>";
|
||||
|
||||
$db_erg = Helferdaten($db_link,$HelferID);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName=$zeile['Name'];
|
||||
$HelferIsAdmin=$zeile['Admin'];
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<div style="width: 100%;">
|
||||
|
||||
<table class="commontable">
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button> <b>Admin HelferDB</b>
|
||||
</th>
|
||||
<tr>
|
||||
|
||||
|
||||
<tr onclick="window.location.href='AdminDienste.php';">
|
||||
<td>
|
||||
<a class="fallbacklink" href='AdminDienste.php'><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Dienste und Schichten verwalten</b></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='CreateHelfer.php';"> <td>
|
||||
<img src="Bilder/More.jpeg" style="width:30px;height:30px;"><b>Seite zur Helfer selbst-Registrierung</b>
|
||||
</td> </tr>
|
||||
|
||||
<tr onclick="window.location.href='EmailZuToken.php';"> <td>
|
||||
<img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b>Helfer per Link einladen</b>
|
||||
</td> </tr>
|
||||
<tr onclick="window.location.href='AdminHelferUebersicht.php';">
|
||||
<td>
|
||||
<a class="fallbacklink" href='AdminHelferUebersicht.php'><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b>Helferübersicht</b></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<th><b>Helfer als Admin ändern:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;font-size:20" name="AliasHelfer" id="AliasHelfer" onchange="submit()">
|
||||
<?php
|
||||
$db_erg = HelferListe($db_link);
|
||||
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
if ($AliasHelferID!=$zeile['HelferID'])
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
</select></form>
|
||||
</b>
|
||||
</td>
|
||||
</th>
|
||||
<tr><!--td-->
|
||||
<!--<table class="innertable" style="padding:15px"><!-
|
||||
- inner table for indent-->
|
||||
<tr onclick="window.location.href='AdminUserdaten.php';">
|
||||
<!--td class="invis"></td-->
|
||||
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Helferdaten ändern</b></td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='AdminMeineSchichten.php';">
|
||||
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Anzeigen/Löschen</b></td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='AdminAlleSchichten.php';">
|
||||
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Hinzufügen</b></td>
|
||||
</tr>
|
||||
<!--</table></td> </tr> inner table for indent end-->
|
||||
<!--<tr><th>Weiteres</th></tr>-->
|
||||
<tr onclick="window.location.href='Kalender-all.html';">
|
||||
<td><img src="Bilder/More.jpeg" style="width:30px;height:30px"><b> Admin Kalenderansicht</b> </td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='Ausdrucke.php';">
|
||||
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdrucke</b> </td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='TeilnehmerSchichtenAusdruck.php';">
|
||||
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdruck Schichten</b> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> <img src="Bilder/Info.jpeg" width="25px" height="25px"> Dienst: z.B. Badgekontrolle Eingang A. Schicht: ein Dienst zu einer bestimmten Zeit zB 9-12 Uhr
|
||||
</p>
|
||||
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,503 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helfer Drop am See Alle Schichten</title>
|
||||
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
<script src="js/jquery-3.7.1.min.js" type="text/javascript"></script>
|
||||
<script src="js/helferdb.js" type="text/javascript"></script>
|
||||
<script> collapse_table_rows();
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>
|
||||
<div style="width: 100%;">
|
||||
<?php
|
||||
|
||||
/// Detailinformation zu ausgewaehlten Schicht Holen
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['CloseInfo']))
|
||||
{
|
||||
UNSET($InfoMeineSchichtID);
|
||||
UNSET($InfoAlleSchichtID);
|
||||
}
|
||||
if(isset($_POST['InfoMeineSchichtID']))
|
||||
{
|
||||
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
|
||||
UNSET($InfoAlleSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
|
||||
|
||||
$Was = $zeile['Was'];
|
||||
$Wo = $zeile['Wo'];
|
||||
$Dauer = $zeile['Dauer'];
|
||||
$Leiter = $zeile['Name'];
|
||||
$LeiterHandy = $zeile['Handy'];
|
||||
$LeiterEmail = $zeile['Email'];
|
||||
$Info = $zeile['Info'];
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_GET['InfoAlleSchichtID']))
|
||||
{
|
||||
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
|
||||
UNSET($InfoMeineSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$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['ZeitBereich']))
|
||||
{
|
||||
$ZeitBereich = $_GET['ZeitBereich'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$ZeitBereich = 1;
|
||||
}
|
||||
|
||||
function HelferAuswahlButton($db_link,$AliasHelferID){
|
||||
echo '<b>Helfer wählen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">';
|
||||
$db_erg = HelferListe($db_link);
|
||||
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
if ($AliasHelferID!=$zeile['HelferID'])
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
}
|
||||
echo '</select></form>';
|
||||
}
|
||||
|
||||
if(isset($_POST['AliasHelfer'])) {
|
||||
$AliasHelferID=$_POST['AliasHelfer'];
|
||||
}elseif(isset($_SESSION["AliasHelferID"])){
|
||||
$AliasHelferID = $_SESSION["AliasHelferID"];
|
||||
}else{
|
||||
HelferAuswahlButton($db_link,$AliasHelferID);
|
||||
exit;
|
||||
}
|
||||
HelferAuswahlButton($db_link,$AliasHelferID);
|
||||
|
||||
$_SESSION["AliasHelferID"]=$AliasHelferID;
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
|
||||
$db_erg=Helferdaten($db_link,$HelferID);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName=$zeile['Name'];
|
||||
}
|
||||
|
||||
// Helferliste Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<form method="post" action="AdminAlleSchichten.php#Info">
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Neu Schicht fuer Helfer Eintragen
|
||||
///////////////////////////////////////////////////////////
|
||||
if(isset($_POST['plusschicht'])) {
|
||||
|
||||
$messages = [];
|
||||
$SchichtId = $_POST['plusschicht'];
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
// }
|
||||
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
// Helfer Schicht zuweisen
|
||||
$db_erg = HelferSchichtZuweisen($db_link,$AliasHelferID,$SchichtId,$AdminID);
|
||||
|
||||
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
|
||||
$HelferName = '';
|
||||
$HelferEmail = '';
|
||||
$HelferHandy = '';
|
||||
//die('<div class="Helfer wurde angelegt.</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message)
|
||||
{
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(isset($_POST['minusschicht'])) {
|
||||
// Mich aus Schicht entfernen
|
||||
$messages = [];
|
||||
|
||||
$SchichtID = $_POST['minusschicht'];
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
// Helfer aus Schicht entfernen
|
||||
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link,$AliasHelferID,$SchichtID,$AdminID);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message)
|
||||
{
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// Ausgabe auf Deutsch umstellen
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
|
||||
// Zusammenfassung Eigener Schichten
|
||||
$db_erg = SchichtenSummeEinesHelfers($db_link,$AliasHelferID);
|
||||
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
|
||||
|
||||
echo '<table id="customers"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten.php\'">';
|
||||
echo " Dienstplan von $HelferName (Zusammenfassung)<br>";
|
||||
echo $zeile['Anzahl'];
|
||||
echo " Schichten insgesamt ";
|
||||
echo $zeile['Dauer']/3600;
|
||||
echo " Stunden";
|
||||
echo '</th></tr></table><br><br>';
|
||||
/// Schichten Auswahl
|
||||
////////////////////////////////////////////////////////
|
||||
$addschicht =$_SESSION["addschicht"];
|
||||
$dienstsort =$_SESSION["dienstsort"];
|
||||
|
||||
|
||||
|
||||
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 "<br>Detail=".$addschicht."<br>";
|
||||
|
||||
if($addschicht=='0')
|
||||
{
|
||||
echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
|
||||
echo "<button name='addschicht' value='1'>Tage</button>";
|
||||
echo "<button name='addschicht' value='2'>Dienste</button></p>";
|
||||
}
|
||||
|
||||
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
|
||||
|
||||
if($addschicht!='0')
|
||||
{
|
||||
//$db_erg = AlleSchichten($db_link,$dienstsort);
|
||||
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00");
|
||||
if ($ZeitBereich==1) // Alle
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2200-05-19 00:00:00",-1);
|
||||
}
|
||||
if ($ZeitBereich==2) // Davor
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2023-05-18 00:00:00",-1);
|
||||
}
|
||||
if ($ZeitBereich==3) // Do
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",-1);
|
||||
}
|
||||
if ($ZeitBereich==4) // Fr
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-19 00:00:00","2023-05-20 00:00:00",-1);
|
||||
}
|
||||
if ($ZeitBereich==5) // Sa
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-20 00:00:00","2023-05-21 00:00:00",-1);
|
||||
}
|
||||
if ($ZeitBereich==6) // So
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-21 00:00:00","2023-05-22 00:00:00",-1);
|
||||
}
|
||||
if ($ZeitBereich==7) // Danach
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-22 00:00:00","2223-05-22 00:00:00",-1);
|
||||
}
|
||||
// fuer Anzahlanzeige in Ueberschrift
|
||||
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
|
||||
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
|
||||
|
||||
|
||||
//echo "<p><button name='addschicht' value='0'><b>↩</b></button></p>";
|
||||
echo '<table id="customers">';
|
||||
echo "<thead>";
|
||||
echo "<tr>";
|
||||
echo "</tr><th colspan='7'>". "Alle Schichten der Con (" . $iBelegteSchichtenCount."/".$iAlleSchichtenCount. ")</th></tr>";
|
||||
|
||||
/*
|
||||
if ($dienstsort=='1')
|
||||
{
|
||||
echo "<th>". "Dienst" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th>". "Von" . "</th>";
|
||||
}
|
||||
*/
|
||||
if ($ZeitBereich==1)
|
||||
{
|
||||
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>". "Alle" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>". "Alle" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==2)
|
||||
{
|
||||
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>". "Davor" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>". "Davor" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==3)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>". "Do" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>". "Do" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==4)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>". "Fr" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>". "Fr" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==5)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>". "Sa" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>". "Sa" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==6)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>". "So" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>". "So" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==7)
|
||||
{
|
||||
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>". "Danach" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>". "Danach" . "</th>";
|
||||
}
|
||||
//echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>". "Davor" . "</th>";
|
||||
//echo "<th style='width:50px'>". "Do" . "</th>";
|
||||
//echo "<th style='width:50px'>". "Fr" . "</th>";
|
||||
//echo "<th style='width:50px'>". "Sa" . "</th>";
|
||||
//echo "<th style='width:50px'>". "So" . "</th>";
|
||||
//echo "<th style='width:100px'>". "Danach" . "</th>";
|
||||
|
||||
echo "</tr>";
|
||||
echo "</thead>";
|
||||
|
||||
$OldTag = "";
|
||||
$OldWas = "";
|
||||
# um Zeilen mit von mir belegten Schichten hervorzuheben
|
||||
$MeineDienste = SchichtIdArrayEinesHelfers($db_link,$AliasHelferID);
|
||||
//print_r($MeineDienste);
|
||||
|
||||
echo '</table>';
|
||||
echo '<table id="customers">';
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
|
||||
if ($dienstsort=='1')
|
||||
{
|
||||
$Tag = $zeile['Tag'];
|
||||
|
||||
if ($Tag!=$OldTag)
|
||||
{
|
||||
echo "<tr class='header'><th colspan='5' >";
|
||||
echo $Tag;
|
||||
echo "</th></tr>";
|
||||
$OldTag = $Tag;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$Was = $zeile['Was'];
|
||||
|
||||
if ($Was!=$OldWas)
|
||||
{
|
||||
echo "<tr class='header'><th colspan='7' style='width:100%'>";
|
||||
echo $Was;
|
||||
echo "</th>";
|
||||
/*
|
||||
echo "<th style='width:100px'>". "Von" . "</th>";
|
||||
echo "<th style='width:130px'>". "Bis" . "</th>";
|
||||
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
|
||||
echo "<th style='width:90px'>". "Add" . "</th>";
|
||||
*/
|
||||
echo "</tr>";
|
||||
$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 = 'style="dummy:'.$zeile['SchichtID'].'"';
|
||||
$regtext = '';
|
||||
}
|
||||
|
||||
echo '<tr '.$rowstyle.'onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
|
||||
|
||||
if ($dienstsort=='1')
|
||||
{
|
||||
echo "<td>". $zeile['Was'] . "</td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<td>". $zeile['Tag'] . "</td>";
|
||||
}
|
||||
echo "<td>". $Von . "</td>";
|
||||
echo "<td>". $Bis . "</td>";
|
||||
echo "<td bgcolor='".$Color."'>". $zeile['Ist'] . "/";
|
||||
echo "". $zeile['Soll'] . "</td>";
|
||||
# buttons sind in der selben Zelle
|
||||
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='". $zeile['SchichtID'] ."'>+</button>" ."";
|
||||
echo "" . " <button width='120px' name='minusschicht' value='". $zeile['SchichtID'] ."'>–</button> $regtext" ."</td>";
|
||||
//echo "<td>$regtext</td>";
|
||||
echo "</tr>\n";
|
||||
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,360 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Admin Drop am See</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="width: 100%;">
|
||||
<?php
|
||||
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
$DienstID =$_SESSION["DienstID"];
|
||||
$SchichtID =$_SESSION["SchichtID"];
|
||||
|
||||
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
|
||||
if(isset($_POST['HelferID']))
|
||||
{
|
||||
$HelferID = $_POST['HelferID'];
|
||||
}
|
||||
if(isset($_POST['ShowHelfer'])) {
|
||||
$HelferID=$_POST['HelperSearch'];
|
||||
}
|
||||
|
||||
$_SESSION["HelferID"] = $HelferID;
|
||||
|
||||
|
||||
|
||||
if(isset($_POST['ChangeDienst'])) {
|
||||
|
||||
$Was=$_POST['Dienst-Was'];
|
||||
$Wo=$_POST['Dienst-Wo'];
|
||||
$Info=$_POST['Dienst-Info'];
|
||||
$Leiter=$_POST['Dienst-Leiter'];
|
||||
$Gruppe=$_POST['Dienst-Gruppe'];
|
||||
$HelferLevel=$_POST['HelferLevel'];
|
||||
ChangeDienst($db_link,$DienstID,$Was,$Wo,$Info,$Leiter,$Gruppe,$HelferLevel);
|
||||
|
||||
}
|
||||
|
||||
if(isset($_POST['NewDienst'])) {
|
||||
|
||||
$Was=$_POST['Dienst-Was'];
|
||||
$Wo=$_POST['Dienst-Wo'];
|
||||
$Info=$_POST['Dienst-Info'];
|
||||
$Leiter=$_POST['Dienst-Leiter'];
|
||||
$Gruppe=$_POST['Dienst-Gruppe'];
|
||||
$HelferLevel=$_POST['HelferLevel'];
|
||||
NewDienst($db_link,$DienstID,$Was,$Wo,$Info,$Leiter,$Gruppe,$HelferLevel);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_POST['DeleteDienst']))
|
||||
{
|
||||
|
||||
if (!DeleteDienst($db_link,$DienstID,false))
|
||||
{
|
||||
echo "Erst Schichten des Dienstes Löschen!";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_POST['ChangeSchicht'])) {
|
||||
|
||||
$Von=$_POST['Schicht-Von'];
|
||||
$Bis=$_POST['Schicht-Bis'];
|
||||
$Soll=$_POST['Schicht-Soll'];
|
||||
|
||||
ChangeSchicht($db_link,$SchichtID,$Von,$Bis,$Soll);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_POST['NewSchicht'])) {
|
||||
|
||||
$Von=$_POST['Schicht-Von'];
|
||||
$Bis=$_POST['Schicht-Bis'];
|
||||
$Soll=$_POST['Schicht-Soll'];
|
||||
|
||||
NewSchicht($db_link,$DienstID,$Von,$Bis,$Soll);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_POST['DeleteSchicht'])) {
|
||||
|
||||
|
||||
if(!DeleteSchicht($db_link,$SchichtID,false))
|
||||
{
|
||||
echo "Erst Helfer aus Schicht austragen<br>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(isset($_POST['ShowSchicht'])) {
|
||||
$SchichtID=$_POST['SchichtSearch'];
|
||||
}
|
||||
if(isset($_POST['SchichtSearch'])) {
|
||||
$SchichtID=$_POST['SchichtSearch'];
|
||||
}
|
||||
|
||||
if(isset($_POST['ShowSchichten'])) {
|
||||
$DienstID=$_POST['DienstSearch'];
|
||||
}
|
||||
|
||||
if(isset($_POST['DienstSearch'])) {
|
||||
$DienstID=$_POST['DienstSearch'];
|
||||
$SchichtID=0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Dienste Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
||||
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>
|
||||
<form method="post">
|
||||
<table border="0" id='customers'>
|
||||
<tr><th> Dienst</th><th><select name="DienstSearch" id="DienstSearch" onchange="submit()">
|
||||
<?php
|
||||
|
||||
|
||||
$db_erg = GetDienste($db_link);
|
||||
|
||||
$Was="";
|
||||
$Wo="";
|
||||
$Info="";
|
||||
$Leiter="";
|
||||
$Gruppe="";
|
||||
$HelferLevel="";
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
if ($zeile['DienstID']!=$DienstID)
|
||||
{
|
||||
echo "<option value='".$zeile['DienstID']."'>".$zeile['Was']."</option>";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['DienstID']."' selected='selected'>".$zeile['Was']."</option>";
|
||||
$Was=$zeile['Was'];
|
||||
$Wo=$zeile['Wo'];
|
||||
$Info=$zeile['Info'];
|
||||
$Leiter=$zeile['Leiter'];
|
||||
$Gruppe=$zeile['ElternDienstID'];
|
||||
$HelferLevel=$zeile['HelferLevel'];
|
||||
}
|
||||
}
|
||||
|
||||
echo "</select>";
|
||||
echo "</th></tr>";
|
||||
echo " </table>";
|
||||
echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</button></noscript>";
|
||||
//echo "<button name='DeleteDienst' value='1'>Dienst löschen</button>";
|
||||
|
||||
// Aktueller Dienst und dessen Schichten Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<table border="0" id="customers">
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Was</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="Dienst-Was" type="text" value="<?=htmlspecialchars($Was??'')?>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Wo</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="Dienst-Wo" type="text " value="<?=htmlspecialchars($Wo??'')?>">
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<td style="border: 0px solid black;">Info</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="Dienst-Info" type="text" value="<?=htmlspecialchars($Info??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Leiter</td></tr><tr><td style="border: 0px solid black;">
|
||||
|
||||
<!-- <input name="Dienst-Leiter" type="text" value="<?=htmlspecialchars($Leiter??'')?>" > -->
|
||||
<?php
|
||||
echo "<select name='Dienst-Leiter'>";
|
||||
$db_erg = HelferListe($db_link);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
if ($zeile['HelferID']!=$Leiter)
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</option>";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</option>";
|
||||
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Gruppe</td></tr><tr><td style="border: 0px solid black;">
|
||||
|
||||
<?php
|
||||
//echo "#####".$Gruppe."#####";
|
||||
echo "<select name='Dienst-Gruppe'>";
|
||||
$db_erg = GetDiensteChilds($db_link,0);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
if ($zeile['DienstID']!=$Gruppe)
|
||||
{
|
||||
echo "<option value='".$zeile['DienstID']."'>".$zeile['Was']."</option>";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['DienstID']."' selected='selected'>".$zeile['Was']."</option>";
|
||||
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
?>
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td style="border: 0px solid black;">HelferLevel</td></tr>
|
||||
<tr><td style="border: 0px solid black;">
|
||||
<select name="HelferLevel">
|
||||
<option value="1" <?php if($HelferLevel==1){echo "selected";};?> >Dauerhelfer</option>
|
||||
<option value="2" <?php if($HelferLevel==2){echo "selected";};?> >Teilnehmer</option>
|
||||
<?php //todo: Name aus HelferLevel-Tabelle erhalten?>
|
||||
</select>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<p><button name="ChangeDienst" value="1">Ändern</button><button name="NewDienst" value="1">Neue</button><button name='DeleteDienst' value='1'>Löschen</button></p>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
<form method="post">
|
||||
<table border="0" id='customers'">
|
||||
<tr><th>Schicht</th><th><select name="SchichtSearch" id="SchichtSearch" onchange="submit()">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
$Soll=1;
|
||||
$db_erg = GetSchichtenEinesDienstes($db_link,$DienstID);
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
if ($SchichtID == 0)
|
||||
{
|
||||
$SchichtID=$zeile['SchichtID'];
|
||||
}
|
||||
if ($zeile['SchichtID']!=$SchichtID)
|
||||
{
|
||||
echo "<option value='".$zeile['SchichtID']."'>".$zeile['TagVon']."</option>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['SchichtID']."' selected='selected'>".$zeile['TagVon']."</option>";
|
||||
$Von=$zeile['Von'];
|
||||
$Bis=$zeile['Bis'];
|
||||
$Soll=(int)$zeile['Soll'];
|
||||
}
|
||||
}
|
||||
|
||||
echo "</select>";
|
||||
echo "</th></tr>";
|
||||
echo " </table>";
|
||||
echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button></noscript>";
|
||||
//echo "<button name='DeleteSchicht' value='1'>Schicht löschen</button>";
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<!-- <table border="0" style="border: 0px solid black;"> -->
|
||||
<table border="0" id='customers'">
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Von</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="Schicht-Von" type="datetime-local" value="<?=htmlspecialchars($Von??'')?>" required>
|
||||
</td>
|
||||
<tr>
|
||||
</tr>
|
||||
<td style="border: 0px solid black;">Bis</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="Schicht-Bis" type="datetime-local" value="<?=htmlspecialchars($Bis??'')?>" required>
|
||||
</td>
|
||||
<tr>
|
||||
</tr>
|
||||
<td style="border: 0px solid black;">Soll</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="Schicht-Soll" type="number" min=1 value="<?=htmlspecialchars((int)$Soll??'')?>" required>
|
||||
</td>
|
||||
<tr>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<p><button name="ChangeSchicht" value="1">Ändern</button><button name="NewSchicht" value="1">Neue</button><button name='DeleteSchicht' value='1'>Löschen</button></p>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b><b>↩</b></b></button>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
|
||||
|
||||
$_SESSION["DienstID"] = $DienstID;
|
||||
$_SESSION["SchichtID"] = $SchichtID;
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
// das hier muss nicht unbedingt eine Adminseite sein
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Admin Drop am See</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_common.css"/>
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
<script src="js/jquery-3.7.1.min.js" type="text/javascript"></script>
|
||||
<script src="js/helferdb.js" type="text/javascript"></script>
|
||||
<script>
|
||||
collapse_table_rows();
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div style="width: 100%;">
|
||||
<?php
|
||||
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
//$DienstID =$_SESSION["DienstID"];
|
||||
//$SchichtID =$_SESSION["SchichtID"];
|
||||
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
|
||||
$_SESSION["HelferID"] = $HelferID;
|
||||
|
||||
|
||||
if(isset($_POST['ShowSchicht'])) {
|
||||
$SchichtID=$_POST['SchichtSearch'];
|
||||
}
|
||||
if(isset($_POST['SchichtSearch'])) {
|
||||
$SchichtID=$_POST['SchichtSearch'];
|
||||
}
|
||||
|
||||
if(isset($_POST['ShowSchichten'])) {
|
||||
$DienstID=$_POST['DienstSearch'];
|
||||
}
|
||||
|
||||
if(isset($_POST['DienstSearch'])) {
|
||||
$DienstID=$_POST['DienstSearch'];
|
||||
$SchichtID=0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Dienste Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
echo "<br><br><table class='commontable' style='page-break-before:always'>";
|
||||
?>
|
||||
<tr class="header">
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button> <b>Übersicht Helfer und Ihre Schichten</b></th>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="commontable">
|
||||
<?php
|
||||
$db_erg = AlleHelferSchichtenUebersicht($db_link);
|
||||
$dauer=0;
|
||||
$i=0;
|
||||
$OldHelferName="";
|
||||
$EinzelDienstStunden="";
|
||||
$HelferUeberschrift="";
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName = $zeile["Name"];
|
||||
$AliasHelferID = $zeile["AliasHelferID"];
|
||||
//echo $HelferName." ".$AliasHelferID."<br>";
|
||||
if($HelferName!= $OldHelferName)
|
||||
{
|
||||
if ($EinzelDienstStunden !=""){
|
||||
// Neue Ueberschrift mit Helfernamen + Stunden
|
||||
echo "$HelferUeberschrift </th><th> <img style='width:30px;height:30px;' src='Bilder/PfeilRunter.jpeg'> $dauer Stunden</th>";
|
||||
echo "<th ><div style='display:table'><form style='display:table-cell' action='AdminAlleSchichten.php' method='post'>";
|
||||
echo "<button width='120px' name='AliasHelfer' value='". $OldAliasHelferID ."'>+</button></form>\n";
|
||||
echo " ";
|
||||
echo "<form style='display:table-cell' action='AdminMeineSchichten.php' method='post'>";
|
||||
echo "<button width='120px' name='AliasHelfer' value='". $OldAliasHelferID ."'>–</button></form>";
|
||||
echo "</div></th>";
|
||||
$dauer=0;
|
||||
echo "$EinzelDienstStunden</td></tr>\n ";
|
||||
}
|
||||
$EinzelDienstStunden="";
|
||||
$HelferUeberschrift="<tr class='header'><th width='15%'>".$HelferName;
|
||||
$OldHelferName=$HelferName;
|
||||
$OldAliasHelferID=$AliasHelferID;
|
||||
$i+=1;
|
||||
}
|
||||
$EinzelDienstStunden.="<tr><td style='width:100px'> ".(int)$zeile["Dauer"]."</td><td>";
|
||||
$EinzelDienstStunden.= $zeile["Was"];
|
||||
$EinzelDienstStunden.= "</td></tr>";
|
||||
$dauer=$dauer+(int)$zeile["Dauer"];
|
||||
|
||||
}
|
||||
echo "$EinzelDienstStunden";
|
||||
|
||||
|
||||
echo "</table>";
|
||||
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,288 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Admin Drop am See - Schichten editieren</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button> <h4 style="display: inline;">Admin: Schichten editieren</h4>
|
||||
<div style="width: 100%;">
|
||||
<?php
|
||||
|
||||
/// Detailinformation zu ausgewaehlten Schicht Holen
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['CloseInfo']))
|
||||
{
|
||||
UNSET($InfoMeineSchichtID);
|
||||
UNSET($InfoAlleSchichtID);
|
||||
}
|
||||
if(isset($_POST['InfoMeineSchichtID']))
|
||||
{
|
||||
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
|
||||
UNSET($InfoAlleSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
|
||||
|
||||
$Was = $zeile['Was'];
|
||||
$Wo = $zeile['Wo'];
|
||||
$Dauer = $zeile['Dauer'];
|
||||
$Leiter = $zeile['Name'];
|
||||
$LeiterHandy = $zeile['Handy'];
|
||||
$LeiterEmail = $zeile['Email'];
|
||||
$Info = $zeile['Info'];
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_GET['InfoAlleSchichtID']))
|
||||
{
|
||||
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
|
||||
UNSET($InfoMeineSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$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++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function HelferAuswahlButton($db_link,$AliasHelferID){
|
||||
echo '<b>Helfer wählen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">';
|
||||
$db_erg = HelferListe($db_link);
|
||||
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
if ($AliasHelferID!=$zeile['HelferID'])
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
}
|
||||
echo '</select></form>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(isset($_POST['AliasHelfer'])) {
|
||||
$AliasHelferID=$_POST['AliasHelfer'];
|
||||
echo "AliasHelfer: $AliasHelferID<br>";
|
||||
}elseif(isset($_SESSION["AliasHelferID"])){
|
||||
$AliasHelferID = $_SESSION["AliasHelferID"];
|
||||
}else{
|
||||
HelferAuswahlButton($db_link,$AliasHelferID);
|
||||
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'];
|
||||
}
|
||||
|
||||
/// Schicht Löschen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
if(isset($_POST['Del'])) {
|
||||
|
||||
$messages = [];
|
||||
|
||||
$EinzelSchichtID = $_POST['Del'];
|
||||
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
|
||||
|
||||
|
||||
if(empty($messages)) {
|
||||
|
||||
$db_erg = HelferVonSchichtLoeschen($db_link,$AliasHelferID,$EinzelSchichtID,$HelferID);
|
||||
|
||||
} else {
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Helferliste Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<form method="post" action="AdminMeineSchichten.php#Info">
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Neu Schicht fuer Helfer Eintragen
|
||||
///////////////////////////////////////////////////////////
|
||||
if(isset($_POST['sent'])) {
|
||||
|
||||
$messages = [];
|
||||
$SchichtId = $_POST['sent'];
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
// }
|
||||
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
// Helfer Schicht zuweisen
|
||||
$db_erg = HelferSchichtZuweisen($db_link,$AliasHelferID,$SchichtId,$HelferID);
|
||||
|
||||
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
|
||||
$HelferName = '';
|
||||
$HelferEmail = '';
|
||||
$HelferHandy = '';
|
||||
//die('<div class="Helfer wurde angelegt.</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message)
|
||||
{
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// Ausgabe auf Deutsch umstellen
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
/// Alle Schichten Des Helfers Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
$db_erg = AlleSchichtenEinesHelfers($db_link,$AliasHelferID);
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichten des Helfes ungültige Abfrage";
|
||||
die('Ungültige Abfrage: ' . mysqli_error());
|
||||
}
|
||||
|
||||
$iSQLCount = mysqli_num_rows($db_erg);
|
||||
//$iSQLCount = 3;
|
||||
|
||||
echo '<table id="customers">';
|
||||
|
||||
echo "<thead>";
|
||||
echo "<tr>";
|
||||
echo "<th colspan=1>". "Schichten von $HelferName (".$iSQLCount." Schichten)</th>";
|
||||
//echo "</tr><tr>";
|
||||
//echo "<th></th>";
|
||||
echo "<th style='width:180px'>". "Von" . "</th>";
|
||||
echo "<th style='width:180px'>". "Bis" . "</th>";
|
||||
echo "<th style='width:90px'>". "Del" . "</th>";
|
||||
echo "</tr>";
|
||||
echo "</thead>";
|
||||
|
||||
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
//echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
|
||||
echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
|
||||
echo "<td>". $zeile['Was'] . "</td>";
|
||||
echo "<td>". $zeile['Ab'] . "</td>";
|
||||
echo "<td>". $zeile['Bis'] . "</td>";
|
||||
echo "<td>". "<p><button title='Schicht entfernen' name='Del' value='". $zeile['EinzelSchichtID'] ."'>-</button></p>" . "</td>";
|
||||
echo "</tr>";
|
||||
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
echo "<br><br>";
|
||||
|
||||
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
|
||||
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
|
||||
|
||||
echo '<table id="customers" onclick="window.location.href=\'AdminAlleSchichten.php\'">';
|
||||
echo "<tr>";
|
||||
echo "<th>". "Alle Schichten der Con (".$iBelegteSchichtenCount."/".$iAlleSchichtenCount.")</th>";
|
||||
echo "</tr>";
|
||||
echo "</table>";
|
||||
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function HelferAuswahlButton($db_link,$AliasHelferID){
|
||||
echo '<b>Helfer wählen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">';
|
||||
$db_erg = HelferListe($db_link);
|
||||
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
if ($AliasHelferID!=$zeile['HelferID'])
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
|
||||
}
|
||||
}
|
||||
echo '</select></form>';
|
||||
}
|
||||
|
||||
if(isset($_POST['AliasHelfer'])) {
|
||||
$AliasHelferID=$_POST['AliasHelfer'];
|
||||
}elseif(isset($_SESSION["AliasHelferID"])){
|
||||
$AliasHelferID = $_SESSION["AliasHelferID"];
|
||||
}else{
|
||||
HelferAuswahlButton($db_link,$AliasHelferID);
|
||||
exit;
|
||||
}
|
||||
HelferAuswahlButton($db_link,$AliasHelferID);
|
||||
|
||||
$_SESSION["AliasHelferID"]=$AliasHelferID;
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
|
||||
echo "Admin=$AdminID<br>";
|
||||
echo "Helfer=$HelferID<br>";
|
||||
echo "Alias=$AliasHelferID<br>";
|
||||
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Drop am See Helferdaten ändern</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
/// Helferdaten Aendern
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
if(isset($_POST['change'])) {
|
||||
$messages = [];
|
||||
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
|
||||
if(strlen($_POST['helfer-newpasswort'])<8 and $_POST['helfer-newpasswort']!="")
|
||||
{
|
||||
$messages[] = 'Neues Passwort zu kurz';
|
||||
}
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
$HelferName = $_POST['helfer-name'];
|
||||
$HelferEmail = $_POST['helfer-email'];
|
||||
$HelferHandy = $_POST['helfer-handy'];
|
||||
$HelferNewPasswort = $_POST['helfer-newpasswort'];
|
||||
if ($_POST['IsAdmin'])
|
||||
{
|
||||
$HelferIsAdmin=1;
|
||||
//echo "is Admin<br>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$HelferIsAdmin=0;
|
||||
}
|
||||
if(empty($messages)) {
|
||||
// Helferdaten Ändern
|
||||
HelferdatenAendern($db_link,$HelferName,$HelferEmail,$HelferHandy,$HelferNewPasswort,$AliasHelferID,$HelferIsAdmin,$HelferID);
|
||||
|
||||
} else {
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// Helfer Loeschen
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
if(isset($_POST['del']))
|
||||
{
|
||||
HelferLoeschen($db_link,$AliasHelferID,$AdminID);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Helferdate holen
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
$db_erg = Helferdaten($db_link,$AliasHelferID);
|
||||
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName = $zeile['Name'];
|
||||
$HelferEmail = $zeile['Email'];
|
||||
$HelferHandy = $zeile['Handy'];
|
||||
$HelferIsAdmin = $zeile['Admin'];
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<table id="customers">
|
||||
<tr>
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button> Helferdaten</th>
|
||||
</tr>
|
||||
<form method="post">
|
||||
<tr>
|
||||
<td>Name</td></tr><tr><td>
|
||||
<input name="helfer-name" type="text" value="<?=htmlspecialchars($HelferName??'')?>" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Email</td></tr><tr><td>
|
||||
<input name="helfer-email" type="email " value="<?=htmlspecialchars($HelferEmail??'')?>" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Handy</td></tr><tr><td>
|
||||
<input name="helfer-handy" type="tel" value="<?=htmlspecialchars($HelferHandy??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Admin Passwort</td></tr><tr><td>
|
||||
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Neues Helfer Passwort</td></tr><tr><td>
|
||||
<input name="helfer-newpasswort" type="text" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<table id="customers">
|
||||
<col style="width:20px">
|
||||
<tr>
|
||||
<td><input type="checkbox" name="IsAdmin" value=1 align="right" <?php if($HelferIsAdmin==1){echo" checked";}?>></td>
|
||||
<td>ist Admin</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><button name="change" style="width:150px !important" value="1">Ändern</button></p>
|
||||
<p><button name="del" style="width:150px !important" value="1">Helfer Löschen</button></p>
|
||||
</form>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,463 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helfer Drop am See Alle Schichten</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
|
||||
<script src="js/jquery-3.7.1.min.js" type="text/javascript"></script>
|
||||
<script src="js/helferdb.js" type="text/javascript"></script>
|
||||
<script> collapse_table_rows();
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button>
|
||||
<h1> Alle Schichten / Schichten hinzufügen </h1>
|
||||
<div style="width: 100%;">
|
||||
<?php
|
||||
|
||||
|
||||
SESSION_START();
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
include '_login.php';
|
||||
|
||||
|
||||
/// Detailinformation zu ausgewaehlten Schicht Holen
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['CloseInfo']))
|
||||
{
|
||||
UNSET($InfoMeineSchichtID);
|
||||
UNSET($InfoAlleSchichtID);
|
||||
}
|
||||
if(isset($_POST['InfoMeineSchichtID']))
|
||||
{
|
||||
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
|
||||
UNSET($InfoAlleSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
|
||||
|
||||
$Was = $zeile['Was'];
|
||||
$Wo = $zeile['Wo'];
|
||||
$Dauer = $zeile['Dauer'];
|
||||
$Leiter = $zeile['Name'];
|
||||
$LeiterHandy = $zeile['Handy'];
|
||||
$LeiterEmail = $zeile['Email'];
|
||||
$Info = $zeile['Info'];
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_GET['InfoAlleSchichtID']))
|
||||
{
|
||||
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
|
||||
UNSET($InfoMeineSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$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['ZeitBereich']))
|
||||
{
|
||||
$ZeitBereich = $_GET['ZeitBereich'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$ZeitBereich = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Helferliste Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<form method="post" action="AlleSchichten.php#Info">
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Neu Schicht fuer Helfer Eintragen
|
||||
///////////////////////////////////////////////////////////
|
||||
if(isset($_POST['plusschicht'])) {
|
||||
|
||||
$messages = [];
|
||||
$SchichtId = $_POST['plusschicht'];
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
// }
|
||||
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
// Helfer Schicht zuweisen
|
||||
$db_erg = HelferSchichtZuweisen($db_link,$HelferID,$SchichtId);
|
||||
|
||||
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
|
||||
$HelferName = '';
|
||||
$HelferEmail = '';
|
||||
$HelferHandy = '';
|
||||
//die('<div class="Helfer wurde angelegt.</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message)
|
||||
{
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(isset($_POST['minusschicht'])) {
|
||||
// Mich aus Schicht entfernen
|
||||
$messages = [];
|
||||
|
||||
$SchichtID = $_POST['minusschicht'];
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
// Helfer aus Schicht entfernen
|
||||
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link,$HelferID,$SchichtID);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message)
|
||||
{
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// Ausgabe auf Deutsch umstellen
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
|
||||
// Zusammenfassung Eigener Schichten
|
||||
$db_erg = SchichtenSummeEinesHelfers($db_link,$HelferID);
|
||||
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
|
||||
|
||||
echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'MeineSchichten.php\'">';
|
||||
echo '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">'. " Mein Dienstplan (";
|
||||
echo $zeile['Anzahl'];
|
||||
echo " Schichten, ";
|
||||
echo $zeile['Dauer']/3600;
|
||||
echo " Stunden)";
|
||||
echo '</th></tr></table><br><br>';
|
||||
/// Schichten Auswahl
|
||||
////////////////////////////////////////////////////////
|
||||
$addschicht =$_SESSION["addschicht"];
|
||||
$dienstsort =$_SESSION["dienstsort"];
|
||||
|
||||
|
||||
|
||||
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 "<br>Detail=".$addschicht."<br>";
|
||||
|
||||
if($addschicht=='0')
|
||||
{
|
||||
echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
|
||||
echo "<button name='addschicht' value='1'>Tage</button>";
|
||||
echo "<button name='addschicht' value='2'>Dienste</button></p>";
|
||||
}
|
||||
|
||||
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
|
||||
|
||||
if($addschicht!='0')
|
||||
{
|
||||
//$db_erg = AlleSchichten($db_link,$dienstsort);
|
||||
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",$HelferLevel);
|
||||
if ($ZeitBereich==1) // Alle
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2200-05-19 00:00:00",$HelferLevel);
|
||||
}
|
||||
if ($ZeitBereich==2) // Davor
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2023-05-18 00:00:00",$HelferLevel);
|
||||
}
|
||||
if ($ZeitBereich==3) // Do
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",$HelferLevel);
|
||||
}
|
||||
if ($ZeitBereich==4) // Fr
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-19 00:00:00","2023-05-20 00:00:00",$HelferLevel);
|
||||
}
|
||||
if ($ZeitBereich==5) // Sa
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-20 00:00:00","2023-05-21 00:00:00",$HelferLevel);
|
||||
}
|
||||
if ($ZeitBereich==6) // So
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-21 00:00:00","2023-05-22 00:00:00",$HelferLevel);
|
||||
}
|
||||
if ($ZeitBereich==7) // Danach
|
||||
{
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-22 00:00:00","2223-05-22 00:00:00",$HelferLevel);
|
||||
}
|
||||
// fuer Anzahlanzeige in Ueberschrift
|
||||
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
|
||||
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
|
||||
echo "<button type='button' onclick='expand_all_table_rows();'>Alles Ausklappen</button>";
|
||||
|
||||
//echo "<p><button name='addschicht' value='0'><b>↩</b></button></p>";
|
||||
echo '<table id="customers">';
|
||||
echo "<tr class='header'>";
|
||||
echo "<th colspan='7'>". "Alle Schichten der Con (" . $iBelegteSchichtenCount."/".$iAlleSchichtenCount. ")</th></tr>";
|
||||
|
||||
/*
|
||||
if ($dienstsort=='1')
|
||||
{
|
||||
echo "<th>". "Dienst" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th>". "Von" . "</th>";
|
||||
}
|
||||
*/
|
||||
echo "<tr class='header'>"; // Zeitbereich tr
|
||||
if ($ZeitBereich==1)
|
||||
{
|
||||
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>". "Alle" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>". "Alle" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==2)
|
||||
{
|
||||
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>". "Davor" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>". "Davor" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==3)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>". "Do" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>". "Do" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==4)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>". "Fr" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>". "Fr" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==5)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>". "Sa" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>". "Sa" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==6)
|
||||
{
|
||||
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>". "So" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>". "So" . "</th>";
|
||||
}
|
||||
if ($ZeitBereich==7)
|
||||
{
|
||||
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>". "Danach" . "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>". "Danach" . "</th>";
|
||||
}
|
||||
|
||||
echo "</tr>"; //Zeitbereich tr
|
||||
|
||||
$OldTag = "";
|
||||
$OldWas = "";
|
||||
# um Zeilen mit von mir belegten Schichten hervorzuheben
|
||||
$MeineDienste = SchichtIdArrayEinesHelfers($db_link,$HelferID);
|
||||
//print_r($MeineDienste);
|
||||
|
||||
echo '</table>';
|
||||
echo '<table id="customers">';
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
|
||||
if ($dienstsort=='1')
|
||||
{
|
||||
$Tag = $zeile['Tag'];
|
||||
|
||||
if ($Tag!=$OldTag)
|
||||
{
|
||||
echo "<tr class='header'><th colspan='5' >";
|
||||
echo $Tag;
|
||||
echo "</th></tr>";
|
||||
$OldTag = $Tag;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$Was = $zeile['Was'];
|
||||
|
||||
if ($Was!=$OldWas)
|
||||
{
|
||||
echo "<tr class='header'><th colspan='7' style='width:100%'>";
|
||||
echo $Was;
|
||||
echo "</th>";
|
||||
/*
|
||||
echo "<th style='width:100px'>". "Von" . "</th>";
|
||||
echo "<th style='width:130px'>". "Bis" . "</th>";
|
||||
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
|
||||
echo "<th style='width:90px'>". "Add" . "</th>";
|
||||
*/
|
||||
echo "</tr>";
|
||||
$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 = '';
|
||||
}
|
||||
|
||||
echo '<tr '.$rowstyle.'onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
|
||||
|
||||
if ($dienstsort=='1')
|
||||
{
|
||||
echo "<td>". $zeile['Was'] . "</td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<td>". $zeile['Tag'] . "</td>";
|
||||
}
|
||||
echo "<td>". $Von . "</td>";
|
||||
echo "<td>". $Bis . "</td>";
|
||||
echo "<td bgcolor='".$Color."'>". $zeile['Ist'] . "/";
|
||||
echo "". $zeile['Soll'] . "</td>";
|
||||
# buttons sind in der selben Zelle
|
||||
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='". $zeile['SchichtID'] ."'>+</button>" ."";
|
||||
echo "" . " <button width='120px' name='minusschicht' value='". $zeile['SchichtID'] ."'>–</button> $regtext" ."</td>";
|
||||
//echo "<td>$regtext</td>";
|
||||
echo "</tr>\n";
|
||||
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Admin Drop am See</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<link rel="stylesheet" href="css/style_print.css" media="print"/>
|
||||
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div style="width: 100%;">
|
||||
|
||||
<?php
|
||||
|
||||
SESSION_START();
|
||||
|
||||
require_once('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
include '_login.php';
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<table id="customers" >
|
||||
<tr>
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button> <b>Übersicht Dienst DAS 2023</b></th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
echo '<table id="customers" >';
|
||||
|
||||
$db_erg = GetDiensteChilds($db_link,0);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
echo "<tr><th>";
|
||||
echo $zeile["Was"];
|
||||
echo "</th></tr>";
|
||||
|
||||
$db_erg2 = GetDiensteChilds($db_link,$zeile["DienstID"]);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg2, MYSQLI_ASSOC))
|
||||
{
|
||||
echo "<tr><td>";
|
||||
echo $zeile["Was"];
|
||||
echo "</td></tr>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
echo "</table>";
|
||||
|
||||
|
||||
|
||||
|
||||
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2200-05-19 00:00:00");
|
||||
|
||||
$OldWas="";
|
||||
echo "<br><br><table id='customers' style='page-break-before:always'>";
|
||||
?>
|
||||
<tr>
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button> <b>Übersicht Schichten der Dienste DAS 2023</b></th>
|
||||
</tr>
|
||||
<?php
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$Was = $zeile["Was"];
|
||||
|
||||
if($Was!= $OldWas)
|
||||
{
|
||||
echo "</table>";
|
||||
//echo '<table id="customers" style="page-break-before:always">';
|
||||
echo '<table id="customers">';
|
||||
echo "<tr><th colspan=3>";
|
||||
echo $Was;
|
||||
echo "</th></tr>";
|
||||
$OldWas=$Was;
|
||||
|
||||
|
||||
}
|
||||
|
||||
echo "<tr><td style='width:100px'>";
|
||||
echo $zeile["Ab"];
|
||||
echo "</td><td style='width:100px'>";
|
||||
echo $zeile["Bis"];
|
||||
echo "</td><td>";
|
||||
|
||||
$db_erg2 = BeteiligteHelfer($db_link,$zeile["SchichtID"]);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg2, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
echo $zeile["Name"];
|
||||
echo " ";
|
||||
echo $zeile["Handy"];
|
||||
echo ",";
|
||||
}
|
||||
echo "</td></tr>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
echo "</table>";
|
||||
|
||||
$OldHelferName="";
|
||||
|
||||
echo "<br><br><table id='customers' style='page-break-before:always'>";
|
||||
?>
|
||||
<tr>
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button> <b>Übersicht Helfer und Ihre Schichten DAS 2023</b></th>
|
||||
</tr>
|
||||
<?php
|
||||
$db_erg = AlleHelferSchichtenUebersicht($db_link);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName = $zeile["Name"];
|
||||
|
||||
if($HelferName!= $OldHelferName)
|
||||
{
|
||||
echo "</table>";
|
||||
//echo '<table id="customers" style="page-break-before:always">';
|
||||
echo '<table id="customers">';
|
||||
echo "<tr><th colspan=3>";
|
||||
echo $HelferName;
|
||||
echo "</th></tr>";
|
||||
$OldHelferName=$HelferName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
echo "<tr><td style='width:100px'>";
|
||||
echo (int)$zeile["Dauer"];
|
||||
echo "</td><td>";
|
||||
echo $zeile["Was"];
|
||||
echo "</td></tr>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
echo "</table>";
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
?>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.0"
|
||||
width="145"
|
||||
height="129"
|
||||
viewBox="0 0 580.6125 517.08825"
|
||||
id="svg2283"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="Attention_Sign.svg"
|
||||
inkscape:version="1.2 (56b05e47e7, 2022-06-09, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview159"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.5314742"
|
||||
inkscape:cx="289.59025"
|
||||
inkscape:cy="243.88266"
|
||||
inkscape:window-width="1848"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="72"
|
||||
inkscape:window-y="387"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2283" /><defs
|
||||
id="defs2300" />
|
||||
<g
|
||||
id="Layer_4"
|
||||
transform="translate(-24.34836,-31.424255)">
|
||||
<g
|
||||
id="g2286">
|
||||
<polygon
|
||||
points="314.611,102.892 93.581,485.725 535.637,485.725 "
|
||||
style="fill:none"
|
||||
id="polygon2288" />
|
||||
<path
|
||||
d="M 590.194,472.222 353.581,62.393 c -8.039,-13.924 -22.895,-22.501 -38.972,-22.501 -16.077,0 -30.931,8.577 -38.97,22.499 L 39.021,472.222 c -4.02,6.962 -6.029,14.731 -6.029,22.5 0,7.77 2.009,15.539 6.029,22.5 8.039,13.925 22.895,22.502 38.972,22.502 h 473.232 c 16.074,0 30.932,-8.577 38.971,-22.502 4.02,-6.961 6.029,-14.729 6.027,-22.499 0,-7.768 -2.01,-15.538 -6.029,-22.501 z"
|
||||
style="fill:#ed171f"
|
||||
id="path2290" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="Layer_5"
|
||||
transform="translate(-24.34836,-31.424255)">
|
||||
<polygon
|
||||
points="535.635,485.725 93.58,485.725 314.61,102.892 "
|
||||
style="fill:#feb82f"
|
||||
id="polygon2293" />
|
||||
</g>
|
||||
<g
|
||||
id="Layer_3"
|
||||
transform="translate(-24.34836,-31.424255)">
|
||||
<circle
|
||||
cx="314.60699"
|
||||
cy="436.29401"
|
||||
r="27.247"
|
||||
id="circle2237" />
|
||||
<path
|
||||
d="m 314.608,192.817 c -16.974,0 -28,11.271 -27.628,23.088 0.273,8.587 1.258,37.549 2.927,56.63 l 8.223,91.644 c 1.312,11.147 3.202,19.351 5.672,24.692 2.197,4.754 5.798,7.358 10.806,7.854 5.008,-0.495 8.61,-3.1 10.806,-7.854 2.469,-5.342 4.358,-13.545 5.671,-24.692 l 8.225,-91.644 c 1.67,-19.081 2.654,-48.043 2.926,-56.63 0.344,-10.931 -10.654,-23.088 -27.628,-23.088 z"
|
||||
id="path2297" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 156 B |
|
After Width: | Height: | Size: 528 B |
|
After Width: | Height: | Size: 272 B |
|
|
@ -0,0 +1,178 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Drop Am See 2023</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
|
||||
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
SESSION_START();
|
||||
//$HelferID = $_SESSION["HelferId"];
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
|
||||
if(isset($_POST['sent'])) {
|
||||
|
||||
$messages = [];
|
||||
|
||||
$HelferName = $_POST['helfer-name'];
|
||||
$HelferEmail = $_POST['helfer-email'];
|
||||
$HelferHandy = $_POST['helfer-handy'];
|
||||
$HelferLevel = $_POST['helfer-level'];
|
||||
$HelferPasswort = $_POST['helfer-passwort'];;
|
||||
$HelferPasswort2 = $_POST['helfer-passwort2'];;
|
||||
|
||||
//echo $HelferName;
|
||||
//echo $HelferEmail;
|
||||
//echo $HelferHandy;
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
|
||||
if(!filter_var($HelferEmail, FILTER_VALIDATE_EMAIL)) {
|
||||
$messages[] = 'Bitte prüfen Sie die eingegebene E-Mail-Adresse.';
|
||||
}
|
||||
|
||||
//if(!filter_var($HelferHandy, FILTER_VALIDATE_INT)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebene Handynummer';
|
||||
//}
|
||||
|
||||
if($HelferPasswort!=$HelferPasswort2)
|
||||
{
|
||||
$messages[] = 'Passwörter stimmen nicht überein';
|
||||
$HelferPasswort ="";
|
||||
$HelferPasswort2 = "";
|
||||
}
|
||||
if(strlen($HelferPasswort)<8)
|
||||
{
|
||||
$messages[] = 'Passwörter zu kurz';
|
||||
$HelferPasswort ="";
|
||||
$HelferPasswort2 = "";
|
||||
}
|
||||
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
$db_erg = CreateHelfer($db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);
|
||||
if ( $db_erg )
|
||||
{
|
||||
//$insertID = mysql_insert_id();
|
||||
//echo "InserId = ".$insertID;
|
||||
|
||||
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
|
||||
echo "Helfer mit Emailadresse ".$HelferEmail." Angelegt.<br><br>";
|
||||
$HelferName = '';
|
||||
$HelferEmail = '';
|
||||
$HelferHandy = '';
|
||||
$HelferPasswort = '';
|
||||
$HelferPasswort2 = '';
|
||||
|
||||
//die('<div class="Helfer wurde angelegt.</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Helfer konnte nicht Angelegt werden, möglichweise exisistiert die Emailadresse ".$HelferEmail." bereits.<br><br>";
|
||||
}
|
||||
} else {
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<p>Hier können Sie sich selbst einen Account als Helfer anlegen.</p>
|
||||
<form method="post">
|
||||
|
||||
<table id="customers">
|
||||
<tr>
|
||||
<th>Helferdaten</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
</tr>
|
||||
<tr><td>
|
||||
<input name="helfer-name" type="text" value="<?=htmlspecialchars($HelferName??'')?>" required>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td>Email</td>
|
||||
</tr>
|
||||
<tr><td>
|
||||
<input name="helfer-email" type="email " value="<?=htmlspecialchars($HelferEmail??'')?>" required>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td>Handy</td>
|
||||
</tr>
|
||||
<tr><td>
|
||||
<input name="helfer-handy" type="tel" value="<?=htmlspecialchars($HelferHandy??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Passwort</td></tr>
|
||||
<tr><td>
|
||||
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferPasswort??'')?>" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td>Passwort wiederholen </td></tr>
|
||||
<tr><td>
|
||||
<input name="helfer-passwort2" type="password" value="<?=htmlspecialchars($HelferPasswort2??'')?>" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td>Helferlevel </td></tr>
|
||||
<tr><td>
|
||||
<select name="helfer-level">
|
||||
<?php
|
||||
$db_erg = HelferLevel($db_link);
|
||||
$selected="";
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC)) {
|
||||
$HelferLevel = $zeile['HelferLevel'];
|
||||
$HelferLevelBeschreibung = $zeile['HelferLevelBeschreibung'];
|
||||
if($HelferLevel==1){ $selected = " selected " ;};
|
||||
echo "<option value='$HelferLevel' $selected>$HelferLevelBeschreibung</option>";
|
||||
$selected="";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<button name="sent" value="1">Helfer Anlegen</button>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
require_once ('konfiguration.php');
|
||||
|
||||
if(isset($_GET['token']) ) {
|
||||
|
||||
// E-Mail-Adresse des Nutzers
|
||||
$encrypted_data = $_GET['token'];
|
||||
$encrypted_iv = $_GET['iv'];
|
||||
echo "token: $encrypted_data<br> \n";
|
||||
echo "iv: $encrypted_iv<br> \n";
|
||||
|
||||
// Erstellen eines Cipher-Objekts für die Verschlüsselung
|
||||
$cipher_method = "AES-256-CBC";
|
||||
$iv_length = openssl_cipher_iv_length($cipher_method);
|
||||
$iv = base64_decode($encrypted_iv);
|
||||
$cipher_options = OPENSSL_RAW_DATA;
|
||||
$cipher_key = openssl_digest($secret_key, 'SHA256', true);
|
||||
|
||||
// Entschlüsseln des verschlüsselten Textes
|
||||
$decoded_cipher_text = base64_decode($encrypted_data);
|
||||
$iv = base64_decode($encrypted_iv);
|
||||
$iv = substr($decoded_cipher_text, 0, $iv_length);
|
||||
$cipher_text = substr($decoded_cipher_text, $iv_length);
|
||||
$decrypted_email = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
|
||||
|
||||
// Verifikationsstring überprüfen und entfernen
|
||||
$verification_length = strlen($secret_verification);
|
||||
if(substr($decrypted_email, -$verification_length) == $secret_verification) {
|
||||
$decrypted_email = substr($decrypted_email, 0, -$verification_length);
|
||||
}
|
||||
|
||||
// Ausgabe der entschlüsselten E-Mail-Adresse
|
||||
echo "E-Mail-Adresse: ", $decrypted_email, "<br>\n";
|
||||
|
||||
} else {
|
||||
|
||||
echo "Kein gültiges Token!<br>";
|
||||
}
|
||||
|
||||
?>
|
||||
</body></html>
|
||||
|
|
@ -0,0 +1,218 @@
|
|||
<?php
|
||||
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
|
||||
SESSION_START();
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
$db_link=ConnectDB();
|
||||
include '_login.php';
|
||||
include '_crypt.php';
|
||||
|
||||
if($AdminStatus != 1) {
|
||||
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
|
||||
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
|
||||
function validate_email($email) {
|
||||
// Prüfen, ob die Email-Adresse syntaktisch gültig ist
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Prüfen, ob das @-Symbol enthalten ist
|
||||
if (strpos($email, '@') === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Prüfen, ob der Teil nach dem @-Symbol eine gültige Domain enthält
|
||||
$parts = explode('@', $email);
|
||||
$domain = $parts[1];
|
||||
if (!filter_var($domain, FILTER_VALIDATE_DOMAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Alle Checks bestanden
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// wird immer auf 2 (Teilnehmer) gesetzt und wird auch nicht gespeichert, wenn anders gesetzt
|
||||
// andere level muessen jedes Mal gesetzt werden
|
||||
$level=2;
|
||||
|
||||
if(isset($_POST['helfer-status'])) {
|
||||
$level=$_POST['helfer-status'];
|
||||
}
|
||||
|
||||
// nicht sicher, wo so ein default-text herkommen sollte
|
||||
// oder ob es tatsächlich einen geben sollte
|
||||
$email_subject="Drop am See beginnt bald!";
|
||||
if(isset($_POST['email-subject'])) {
|
||||
$email_subject=$_POST['email-subject'];
|
||||
}
|
||||
|
||||
$email_cc="drophelfer@gmail.com";
|
||||
if(isset($_POST['email-cc'])) {
|
||||
$email_cc=$_POST['email-cc'];
|
||||
}
|
||||
|
||||
$email_text="
|
||||
Lieber Teilnehmer,
|
||||
trage dich bitte mit folgendem Link für eine Stunde pro Person als Helfer bei uns ein.Wir verschicken eine Mail pro Emailaddresse, also bitte für alle, die mit dieser Emailaddresse angemeldet sind.
|
||||
|
||||
Danke für deine Mithilfe!
|
||||
|
||||
XXtokenXX
|
||||
|
||||
Du kannst dich auch später wieder über den Link einloggen und die Schicht ändern.
|
||||
|
||||
Viele Grüße,
|
||||
dein Drop am See Team
|
||||
";
|
||||
|
||||
if(isset($_POST['email-text'])) {
|
||||
$email_text=$_POST['email-text'];
|
||||
}
|
||||
|
||||
$sendmail=0;
|
||||
if(isset($_POST['sendmail'])) {
|
||||
$sendmail=$_POST['sendmail'];
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
<head>
|
||||
<title>Helfer Drop am See: Email Tokens generieren</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
|
||||
?>
|
||||
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>
|
||||
<div style="width: 100%;">
|
||||
<p>
|
||||
<h2> Emails mit Login-Link zur HelferDB generieren </h2>
|
||||
Generiert Tokens (bzw URLs mit Token) aus einer Liste von Email-Addressen. <br>
|
||||
Bei Klick auf den generierten Link wird sofort ein Account zur Email angelegt. <br>
|
||||
Als Passwort wird das Token gesetzt. Man kann sich mit dem Link danach wieder in den selben Account einloggen.
|
||||
</p>
|
||||
<p>
|
||||
!! Emails werden erst verschickt, wenn die Checkbox unten angeklickt ist
|
||||
</p>
|
||||
|
||||
<form method="POST" action="EmailZuToken.php">
|
||||
<p>
|
||||
<label for="helfer-status">Status des Accounts, den der Link erstellt:</label>
|
||||
<select style="width:260px" id="helfer-status" name="helfer-status">
|
||||
<!-- TODO: aus DB abfragen -->
|
||||
<option value="2"<?php if($level==2){echo "selected";}?>>Teilnehmer</option>
|
||||
<option value="1" <?php if($level==1){echo "selected";}?>>Dauerhelfer</option>
|
||||
</select>
|
||||
</p><p>
|
||||
Subject der Email: <br>
|
||||
<input id="email-subject" name="email-subject" type="textbox" value="<?=htmlspecialchars($email_subject??'');?>">
|
||||
</p><p>
|
||||
CC (Kopie) der Email geht an: <br>
|
||||
<input id="email-cc" name="email-cc" type="textbox" value="drophelfer@gmail.com">
|
||||
</p><p>
|
||||
Emailtext (XXtokenXX an die Stelle schreiben, an der der Link im Emailtext stehen soll):
|
||||
</p><p>
|
||||
<textarea id="email-text" name="email-text" rows="20" cols="80">
|
||||
<?=htmlspecialchars($email_text??'');?>
|
||||
</textarea>
|
||||
</p>
|
||||
<p>
|
||||
Liste von Emails, an die Anschreiben verschickt wird (Eine Email pro Zeile, nur die Email xxx@yyy.zz, keine Leerzeichen):<br>
|
||||
<textarea id="helfer-email-liste" name="helfer-email-liste" rows="20" cols="80"></textarea> <br>
|
||||
</p>
|
||||
<div>
|
||||
<input type="checkbox" id="sendmail" name="sendmail" value="1" style="align:left;width:40px;!important">
|
||||
<label for="sendmail">Emails verschicken</label>
|
||||
</div>
|
||||
<br>
|
||||
<button name="email-liste" value="1">Token generieren</button>
|
||||
</form>
|
||||
</p>
|
||||
<?php
|
||||
|
||||
if(isset($_POST['email-liste'])) {
|
||||
// TODO: check if email-text contains tokentext to substitute
|
||||
// TODO: check if subject is set
|
||||
// get email addresses from textarea
|
||||
$email_list = $_POST['helfer-email-liste'];
|
||||
// Aufteilen der Textbox in einzelne Emails
|
||||
|
||||
//mit explode: jede Email in einer Zeile, andere Leerzeichen koennen zur Email werden
|
||||
// $emails = explode("\n", $email_list);
|
||||
|
||||
//preg_split, um bei allen Leerzeichen zu trennen
|
||||
$email_array = preg_split('/\s+/', $email_list); // Trennzeichen: 1 oder mehr Whitespace-Zeichen
|
||||
foreach ($email_array as $email) {
|
||||
$email=trim($email);
|
||||
$encrypted_data=encode_string($secret_key, $email,$level,$secret_verification);
|
||||
$token_url = "$urlprefix?token=$encrypted_data";
|
||||
// Ausgabe des verschluesselten Textes in der URL
|
||||
$decrypted_data = decode_string($secret_key, urldecode($encrypted_data),$secret_verification);
|
||||
$email_subst_text = str_replace('XXtokenXX', $token_url, $email_text);
|
||||
if($sendmail != 1){
|
||||
// keine Emails verschicken, wir gebeben die Inhalte unten als Text aus
|
||||
echo "Verschicken nicht ausgewählt. Zeige Emails an:<br>";
|
||||
echo $sendmail ."<br>";
|
||||
echo "=======================================<br>";
|
||||
echo "To: ".$decrypted_data['email']." (level: ".$decrypted_data['level']."):<br>";
|
||||
echo "CC: ".$email_cc."<br>";
|
||||
echo "<pre>".$email_subst_text."</pre><br>";
|
||||
echo "$email: <a href='$token_url'> $token_url</a> (check: ".$decrypted_data['email'].", lv: ".$decrypted_data['level'].")<br>";
|
||||
} else {
|
||||
// Email verschicken - send mail
|
||||
$to=$decrypted_data['email'];
|
||||
$from="root";
|
||||
$headers = 'From: ' . $from. "\r\n";
|
||||
$headers .= 'CC: ' . $email_cc . "\r\n";
|
||||
if (mail($to, $email_subject, $email_subst_text, $headers)) {
|
||||
echo "Die E-Mail an $to wurde erfolgreich versendet.";
|
||||
error_log(date('Y-m-d H:i') . "(AdminID:$AdminID) Name: $HelferName (HelferID:$HelferID) hat Email mit Link verschickt an: $to mit CC an: $email_cc\n",3,LOGFILE);
|
||||
} else {
|
||||
echo "Beim Versenden der E-Mail an $to ist ein Fehler aufgetreten.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
<!--Einzelne Email
|
||||
<p>
|
||||
<form method="GET">
|
||||
<input id="helfer-email" name="helfer-email" type="textbox" value="<?=htmlspecialchars($HelferEmail??'')?>">
|
||||
<button name="sent" value="1">Token generieren</button>
|
||||
</form>
|
||||
</p>
|
||||
-->
|
||||
|
||||
<?php
|
||||
//single email
|
||||
#if(isset($_GET['helfer-email'])) {
|
||||
# $email = $_GET['helfer-email'];
|
||||
# echo "email: $email <br> \n";
|
||||
# // encode
|
||||
# $encrypted_data=encode_string($secret_key, $email,$secret_verification);
|
||||
# $decrypted_data = decode_string($secret_key, $encrypted_data,$secret_verification);
|
||||
# // Ausgabe des verschlüsselten Textesin der URL
|
||||
# echo "$email: <a href='$linktext'> $urlprefix/$linktext</a>(check: $decrypted_data ) <br>";
|
||||
# exit;
|
||||
#}
|
||||
|
||||
?>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helfer Drop am See Home</title>
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta http-equiv="Refresh" content="0; url=<?php require_once ('konfiguration.php'); echo INFORMATIONS_URL;?>" />
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
<!-- hier Infos zur eigenen Con oder Helferdiensten allgemein angeben -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,198 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title> Helferdienste </title>
|
||||
<meta charset="utf-8">
|
||||
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
|
||||
<script src="../scheduler/codebase/dhtmlxscheduler.js"></script>
|
||||
<!--link href="../scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8"-->
|
||||
<link href="../scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8">
|
||||
<link rel="stylesheet" href="../scheduler/samples/common/controls_styles.css">
|
||||
<style>
|
||||
|
||||
html, body{
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
height:100%;
|
||||
overflow:hidden;
|
||||
}
|
||||
.dhx_cal_event_line,.dhx_body,.dhx_cal_event .dhx_footer,.dhx_cal_event .dhx_header,.dhx_cal_event .dhx_title{
|
||||
border:none !important;
|
||||
border-radius:3px 3px 3px 3px !important;
|
||||
}
|
||||
.dhx_scale_holder {background-image: url('Bilder/calendar_lines1.png') !important; background-blend-mode:color-dodge;}
|
||||
|
||||
</style>
|
||||
<!-- darkstyle
|
||||
style type="text/css" >
|
||||
.filters_wrapper {
|
||||
background-color: black;
|
||||
color: white;
|
||||
font: 500 14px Roboto;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.filters_wrapper span {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
color: rgba(0,0,0,0.7);
|
||||
}
|
||||
.filters_wrapper label {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
</style-->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button><br>
|
||||
<div class="filters_wrapper" id="filters_wrapper">
|
||||
|
||||
Mehrtagesdienste anzeigen: <input id="multidaycheck" class="sch_radio" type="checkbox" checked onchange="toggleMultiday(this)">
|
||||
Einfärben: <input type="text" id="colorize"> <!--onchange="markEntries(this.value);" onpaste = "this.onchange();" onsubmit="markEntries(this.value);"-->
|
||||
Filtern: <input type="text" id="filterWrap">
|
||||
<br/>
|
||||
<!--Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten-->
|
||||
</div>
|
||||
|
||||
<div id="scheduler_here" class="dhx_cal_container" style='width:100%; height:100%;'>
|
||||
<div class="dhx_cal_navline">
|
||||
<div class="dhx_cal_prev_button"> </div>
|
||||
<div class="dhx_cal_next_button"> </div>
|
||||
<div class="dhx_cal_today_button"></div>
|
||||
<div class="dhx_cal_date"></div>
|
||||
<div class="dhx_cal_tab" name="day_tab"></div>
|
||||
<div class="dhx_cal_tab" name="week_tab"></div>
|
||||
<div class="dhx_cal_tab" name="month_tab"></div>
|
||||
<div class="dhx_cal_tab" data-tab="con" style="right:280px;"></div>
|
||||
<div class="dhx_cal_tab" data-tab="prep" style="right:280px;" ></div>
|
||||
|
||||
</div>
|
||||
<div class="dhx_cal_header"></div>
|
||||
<div class="dhx_cal_data"></div>
|
||||
</div>
|
||||
<script>
|
||||
//https://docs.dhtmlx.com/scheduler/filtering.html
|
||||
|
||||
var filter = document.querySelector("#filterWrap");
|
||||
filter.addEventListener("input", function(){
|
||||
scheduler.setCurrentView();
|
||||
})
|
||||
scheduler.filter_month = scheduler.filter_day = scheduler.filter_week = scheduler.filter_con = scheduler.filter_prep = function(id, event) {
|
||||
if(filter.value == ""){
|
||||
return true;
|
||||
}
|
||||
if(event.text.toLowerCase().includes(filter.value.toLowerCase()) ){
|
||||
return true;
|
||||
}
|
||||
if(event.Name && event.Name.toLowerCase().includes(filter.value.toLowerCase()) ){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
function toggleMultiday(element)
|
||||
{
|
||||
scheduler.config.multi_day = element.checked ;
|
||||
scheduler.render();
|
||||
//scheduler.updateView(); // this or render work both - whats the difference
|
||||
}
|
||||
document.getElementById('colorize').addEventListener( "change" , colorize);
|
||||
document.getElementById('colorize').addEventListener( "input" , colorize);
|
||||
document.getElementById('colorize').addEventListener( "paste" , colorize);
|
||||
|
||||
function colorize (e){ //KS
|
||||
var text=e.target.value;
|
||||
console.log(text);
|
||||
var evs = scheduler.getEvents();
|
||||
if(!evs[0].oricolor){
|
||||
for (var i=0; i<evs.length; i++){
|
||||
evs[i].oricolor=evs[i].color;
|
||||
console.log("init "+evs[i].color);
|
||||
}
|
||||
}
|
||||
for (var i=0; i<evs.length; i++){
|
||||
if(evs[i].oricolor){evs[i].color=evs[i].oricolor;}
|
||||
|
||||
if(text.length>1 && evs[i].text.includes(text)){ // search description
|
||||
evs[i].color="blue";
|
||||
console.log("colored event: ",evs[i]," ori: ",evs[i].oricolor);
|
||||
}
|
||||
if(text.length>2 && evs[i].Name && evs[i].Name.includes(text)){ // search names
|
||||
evs[i].color="lightblue";
|
||||
console.log("colored event: ",evs[i]," ori: ",evs[i].oricolor);
|
||||
}
|
||||
}
|
||||
scheduler.updateView();
|
||||
}
|
||||
|
||||
scheduler.plugins({
|
||||
tooltip: true,
|
||||
readonly: true,
|
||||
all_timed: true,
|
||||
quick_info: true
|
||||
|
||||
});
|
||||
scheduler.config.full_day=false;
|
||||
scheduler.config.xml_date="%Y-%m-%d %H:%i"; // deprecated but needed for database format
|
||||
scheduler.config.first_hour = 0; // only show from this hour on
|
||||
scheduler.config.last_hour = 24; // last hour
|
||||
scheduler.setLoadMode("day"); // dynamic loading loads only current day if needed
|
||||
scheduler.config.details_on_create=true; // ???
|
||||
scheduler.config.details_on_dblclick=true;
|
||||
scheduler.i18n.setLocale("de"); // german
|
||||
scheduler.config.default_date="%l, %d %F"; // %l long day eg Montag,
|
||||
//scheduler.config.readonly = true; // doesnt show lightbox if true so disabled
|
||||
|
||||
scheduler.locale.labels.con_tab = "4-Tage" // for custom time ranges
|
||||
scheduler.locale.labels.prep_tab = "2-Tage"
|
||||
|
||||
scheduler.attachEvent("onTemplatesReady",function(){ // for custom time ranges
|
||||
//Con timeslot
|
||||
scheduler.date.con_start = function(date){return date;}; //new Date(202x,5,16);}; // calculates start-day of range from current day
|
||||
scheduler.templates.con_date = scheduler.templates.week_date;
|
||||
scheduler.templates.con_scale_date = scheduler.templates.week_scale_date;
|
||||
scheduler.date.add_con=function(date,inc){ return scheduler.date.add(date,inc*4,"day"); }//"next" gives you the next 4 days
|
||||
scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); }
|
||||
|
||||
//preparation phase 2 days
|
||||
function setprep(){scheduler.setCurrentView(new Date(2023,4,16));}
|
||||
scheduler.date.prep_start = function(date){return date};
|
||||
scheduler.templates.prep_date = scheduler.templates.week_date;
|
||||
scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date;
|
||||
scheduler.date.add_prep=function(date,inc){ return scheduler.date.add(date,inc*1,"day"); }//"next" gives you the next 2 days
|
||||
scheduler.date.get_prep_end=function(date){ return scheduler.date.add(date,2,"day"); }
|
||||
|
||||
});
|
||||
|
||||
const dayDate = scheduler.date.date_to_str("%D %d %F %Y");
|
||||
scheduler.templates.day_date = function (date) {
|
||||
return dayDate(date);
|
||||
};
|
||||
|
||||
scheduler.config.all_timed = "short"; // night events arent multi-day - events under 24h are shown
|
||||
scheduler.config.lightbox.sections=[
|
||||
{name:"description", height:130, map_to:"text", type:"textarea" , focus:true},
|
||||
{name:"Dienstbeschreibung", height:90, type:"textarea", map_to:"Info" },
|
||||
{name:"Konakt", height:200, type:"textarea", map_to:"Kontakt" },
|
||||
{name:"time", height:72, type:"time", map_to:"auto"}
|
||||
];
|
||||
|
||||
scheduler.templates.tooltip_text = function(start,end,event) {
|
||||
return "<b>Helfer:</b> <pre>"+event.Name+"</pre><br/></b> ";
|
||||
};
|
||||
|
||||
// actual init
|
||||
scheduler.init('scheduler_here', new Date(2023,4,18), "con");
|
||||
scheduler.load("data/api-full.php");
|
||||
//https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html
|
||||
//var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving
|
||||
//dp.init(scheduler);
|
||||
//dp.setTransactionMode("JSON"); // use to transfer data with JSON
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title> Helferdienste </title>
|
||||
<meta charset="utf-8">
|
||||
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
|
||||
<script src="../scheduler/codebase/dhtmlxscheduler.js"></script>
|
||||
<!-- link href="../scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8"-->
|
||||
<link href="../scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8">
|
||||
<link rel="stylesheet" href="../scheduler/samples/common/controls_styles.css">
|
||||
<style>
|
||||
|
||||
html, body{
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
height:100%;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<!-- darkstyle
|
||||
style type="text/css" >
|
||||
.filters_wrapper {
|
||||
background-color: black;
|
||||
color: white;
|
||||
font: 500 14px Roboto;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.filters_wrapper span {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
color: rgba(0,0,0,0.7);
|
||||
}
|
||||
.filters_wrapper label {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
</style-->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button><br>
|
||||
<div class="filters_wrapper" id="filters_wrapper">
|
||||
|
||||
Mehrtagesdienste anzeigen: <input id="multidaycheck" class="sch_radio" type="checkbox" checked onchange="toggleMultiday(this)">
|
||||
Einfärben: <input type="text" id="colorize"> <!--onchange="markEntries(this.value);" onpaste = "this.onchange();" onsubmit="markEntries(this.value);"-->
|
||||
Filtern: <input type="text" id="filterWrap">
|
||||
<br/>
|
||||
Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten
|
||||
</div>
|
||||
|
||||
<div id="scheduler_here" class="dhx_cal_container" style='width:100%; height:100%;'>
|
||||
<div class="dhx_cal_navline">
|
||||
<div class="dhx_cal_prev_button"> </div>
|
||||
<div class="dhx_cal_next_button"> </div>
|
||||
<div class="dhx_cal_today_button"></div>
|
||||
<div class="dhx_cal_date"></div>
|
||||
<div class="dhx_cal_tab" name="day_tab"></div>
|
||||
<div class="dhx_cal_tab" name="week_tab"></div>
|
||||
<div class="dhx_cal_tab" name="month_tab"></div>
|
||||
<div class="dhx_cal_tab" data-tab="con" style="right:280px;"></div>
|
||||
<div class="dhx_cal_tab" data-tab="prep" style="right:280px;" ></div>
|
||||
|
||||
</div>
|
||||
<div class="dhx_cal_header"></div>
|
||||
<div class="dhx_cal_data"></div>
|
||||
</div>
|
||||
<script>
|
||||
//https://docs.dhtmlx.com/scheduler/filtering.html
|
||||
|
||||
var filter = document.querySelector("#filterWrap");
|
||||
filter.addEventListener("input", function(){
|
||||
scheduler.setCurrentView();
|
||||
})
|
||||
scheduler.filter_month = scheduler.filter_day = scheduler.filter_week = scheduler.filter_con = scheduler.filter_prep = function(id, event) {
|
||||
if(filter.value == ""){
|
||||
return true;
|
||||
}
|
||||
if(event.text.toLowerCase().includes(filter.value.toLowerCase()) ){
|
||||
return true;
|
||||
}
|
||||
if(event.Name && event.Name.toLowerCase().includes(filter.value.toLowerCase()) ){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
function toggleMultiday(element)
|
||||
{
|
||||
scheduler.config.multi_day = element.checked ;
|
||||
scheduler.render();
|
||||
//scheduler.updateView(); // this or render work both - whats the difference
|
||||
}
|
||||
document.getElementById('colorize').addEventListener( "change" , colorize);
|
||||
document.getElementById('colorize').addEventListener( "input" , colorize);
|
||||
document.getElementById('colorize').addEventListener( "paste" , colorize);
|
||||
|
||||
function colorize (e){ //KS
|
||||
var text=e.target.value;
|
||||
console.log(text);
|
||||
var evs = scheduler.getEvents();
|
||||
if(!evs[0].oricolor){
|
||||
for (var i=0; i<evs.length; i++){
|
||||
evs[i].oricolor=evs[i].color;
|
||||
console.log("init "+evs[i].color);
|
||||
}
|
||||
}
|
||||
for (var i=0; i<evs.length; i++){
|
||||
if(evs[i].oricolor){evs[i].color=evs[i].oricolor;}
|
||||
|
||||
if(text.length>1 && evs[i].text.includes(text)){ // search description
|
||||
evs[i].color="blue";
|
||||
console.log("colored event: ",evs[i]," ori: ",evs[i].oricolor);
|
||||
}
|
||||
if(text.length>2 && evs[i].Name && evs[i].Name.includes(text)){ // search names
|
||||
evs[i].color="lightblue";
|
||||
console.log("colored event: ",evs[i]," ori: ",evs[i].oricolor);
|
||||
}
|
||||
}
|
||||
scheduler.updateView();
|
||||
}
|
||||
|
||||
scheduler.plugins({
|
||||
tooltip: true,
|
||||
readonly: true,
|
||||
all_timed: true,
|
||||
quick_info: true
|
||||
|
||||
});
|
||||
scheduler.config.full_day=false;
|
||||
scheduler.config.xml_date="%Y-%m-%d %H:%i"; // deprecated but needed for database format
|
||||
scheduler.config.first_hour = 0; // only show from this hour on
|
||||
scheduler.config.last_hour = 24; // last hour
|
||||
scheduler.setLoadMode("day"); // dynamic loading loads only current day if needed
|
||||
scheduler.config.details_on_create=true; // ???
|
||||
scheduler.config.details_on_dblclick=true;
|
||||
scheduler.i18n.setLocale("de"); // german
|
||||
scheduler.config.default_date="%l, %d %F"; // %l long day eg Montag,
|
||||
//scheduler.config.readonly = true; // doesnt show lightbox if true so disabled
|
||||
|
||||
scheduler.locale.labels.con_tab = "4-Tage" // for custom time ranges
|
||||
scheduler.locale.labels.prep_tab = "2-Tage"
|
||||
|
||||
scheduler.attachEvent("onTemplatesReady",function(){ // for custom time ranges
|
||||
//Con timeslot
|
||||
scheduler.date.con_start = function(date){return date;}; //new Date(202,5,16);}; // calculates start-day of range from current day
|
||||
scheduler.templates.con_date = scheduler.templates.week_date;
|
||||
scheduler.templates.con_scale_date = scheduler.templates.week_scale_date;
|
||||
scheduler.date.add_con=function(date,inc){ return scheduler.date.add(date,inc*4,"day"); }//"next" gives you the next 4 days
|
||||
scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); }
|
||||
|
||||
//preparation phase 2 days
|
||||
function setprep(){scheduler.setCurrentView(new Date(2023,4,16));}
|
||||
scheduler.date.prep_start = function(date){return date};
|
||||
scheduler.templates.prep_date = scheduler.templates.week_date;
|
||||
scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date;
|
||||
scheduler.date.add_prep=function(date,inc){ return scheduler.date.add(date,inc*1,"day"); }//"next" gives you the next 2 days
|
||||
scheduler.date.get_prep_end=function(date){ return scheduler.date.add(date,2,"day"); }
|
||||
|
||||
});
|
||||
|
||||
const dayDate = scheduler.date.date_to_str("%D %d %F %Y");
|
||||
scheduler.templates.day_date = function (date) {
|
||||
return dayDate(date);
|
||||
};
|
||||
|
||||
scheduler.config.all_timed = "short"; // night events arent multi-day - events under 24h are shown
|
||||
scheduler.config.lightbox.sections=[
|
||||
{name:"description", height:130, map_to:"text", type:"textarea" , focus:true},
|
||||
{name:"Dienstbeschreibung", height:90, type:"textarea", map_to:"Info" },
|
||||
{name:"Konakt", height:200, type:"textarea", map_to:"Kontakt" },
|
||||
{name:"time", height:72, type:"time", map_to:"auto"}
|
||||
];
|
||||
|
||||
scheduler.templates.tooltip_text = function(start,end,event) {
|
||||
return "<b>Helfer:</b> <pre>"+event.Name+"</pre><br/></b> ";
|
||||
};
|
||||
|
||||
// actual init
|
||||
scheduler.init('scheduler_here', new Date(2023,4,18), "con");
|
||||
scheduler.load("data/api-helfer.php");
|
||||
//https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html
|
||||
//var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving
|
||||
//dp.init(scheduler);
|
||||
//dp.setTransactionMode("JSON"); // use to transfer data with JSON
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,352 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Admin Drop am See</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button>
|
||||
<div style="width: 100%;">
|
||||
<?php
|
||||
|
||||
|
||||
SESSION_START();
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
//require_once ('SQL.php');
|
||||
include 'SQL.php';
|
||||
|
||||
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
|
||||
|
||||
|
||||
/// Detailinformation zu ausgewaehlten Schicht Holen
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['CloseInfo']))
|
||||
{
|
||||
UNSET($InfoMeineSchichtID);
|
||||
UNSET($InfoAlleSchichtID);
|
||||
}
|
||||
if(isset($_POST['InfoMeineSchichtID']))
|
||||
{
|
||||
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
|
||||
UNSET($InfoAlleSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
|
||||
|
||||
$Was = $zeile['Was'];
|
||||
$Wo = $zeile['Wo'];
|
||||
$Dauer = $zeile['Dauer'];
|
||||
$Leiter = $zeile['Name'];
|
||||
$LeiterHandy = $zeile['Handy'];
|
||||
$LeiterEmail = $zeile['Email'];
|
||||
$Info = $zeile['Info'];
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(isset($_GET['InfoAlleSchichtID']))
|
||||
{
|
||||
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
|
||||
UNSET($InfoMeineSchichtID);
|
||||
//echo "<b>". $SchichtID . "</b><br>";
|
||||
|
||||
$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++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// Logout
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['logout']))
|
||||
{
|
||||
unset($_SESSION["HelferID"]);
|
||||
//$_POST['login'] = 1;
|
||||
}
|
||||
|
||||
/// Login
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['login']))
|
||||
{
|
||||
$messages = [];
|
||||
// Eingaben überprüfen:
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
|
||||
$HelferName = $_POST['helfer-name'];
|
||||
$HelferEmail = $_POST['helfer-email'];
|
||||
$HelferPasswort = $_POST['helfer-passwort'];
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(!isset($_SESSION["HelferID"]))
|
||||
{
|
||||
|
||||
?>
|
||||
<form method="post" action="#Info">
|
||||
|
||||
<fieldset>
|
||||
<legend>Login</legend>
|
||||
|
||||
<table border="0" style="border: 0px solid black;">
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Email</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="helfer-email" type="text" value="<?=htmlspecialchars($HelferEmail??'')?>" required>
|
||||
</td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Passwort</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferHandy??'')?>" required>
|
||||
</td>
|
||||
<tr>
|
||||
</table>
|
||||
|
||||
|
||||
</fieldset>
|
||||
|
||||
<p><button name="login" value="1">Login</button></p>
|
||||
|
||||
|
||||
</form>
|
||||
<?php
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
|
||||
if(isset($_POST['HelferID']))
|
||||
{
|
||||
$HelferID = $_POST['HelferID'];
|
||||
}
|
||||
if(isset($_POST['ShowHelfer'])) {
|
||||
$HelferID=$_POST['HelperSearch'];
|
||||
}
|
||||
|
||||
$_SESSION["HelferID"] = $HelferID;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Schicht Löschen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
if(isset($_POST['Del'])) {
|
||||
|
||||
$messages = [];
|
||||
|
||||
$EinzelSchichtID = $_POST['Del'];
|
||||
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
|
||||
|
||||
|
||||
if(empty($messages)) {
|
||||
|
||||
$db_erg = HelferVonSchichtLoeschen($db_link,$HelferID,$EinzelSchichtID);
|
||||
|
||||
} else {
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Helferliste Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<form method="post" action="MeineSchichten.php#Info">
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Neu Schicht fuer Helfer Eintragen
|
||||
///////////////////////////////////////////////////////////
|
||||
if(isset($_POST['sent'])) {
|
||||
|
||||
$messages = [];
|
||||
$SchichtId = $_POST['sent'];
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
// }
|
||||
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
// Helfer Schicht zuweisen
|
||||
$db_erg = HelferSchichtZuweisen($db_link,$HelferID,$SchichtId);
|
||||
|
||||
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
|
||||
$HelferName = '';
|
||||
$HelferEmail = '';
|
||||
$HelferHandy = '';
|
||||
//die('<div class="Helfer wurde angelegt.</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message)
|
||||
{
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// Ausgabe auf Deutsch umstellen
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
/// Alle Schichten Des Helfers Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
$db_erg = AlleSchichtenEinesHelfers($db_link,$HelferID);
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichten des Helfes ungültige Abfrage";
|
||||
die('Ungültige Abfrage: ' . mysqli_error());
|
||||
}
|
||||
|
||||
$iSQLCount = mysqli_num_rows($db_erg);
|
||||
//$iSQLCount = 3;
|
||||
|
||||
echo '<table id="customers">';
|
||||
|
||||
echo "<thead>";
|
||||
echo "<tr>";
|
||||
echo "<th colspan=4>". "Meine Schichten (".$iSQLCount." Schichten)</th>";
|
||||
echo "</tr><tr>";
|
||||
echo "<th></th>";
|
||||
echo "<th style='width:180px'>". "Von" . "</th>";
|
||||
echo "<th style='width:180px'>". "Bis" . "</th>";
|
||||
echo "<th style='width:90px'>". "Del" . "</th>";
|
||||
echo "</tr>";
|
||||
echo "</thead>";
|
||||
|
||||
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
//echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
|
||||
echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
|
||||
echo "<td>". $zeile['Was'] . "</td>";
|
||||
echo "<td>". $zeile['Ab'] . "</td>";
|
||||
echo "<td>". $zeile['Bis'] . "</td>";
|
||||
echo "<td>". "<button title='Schicht entfernen' name='Del' value='". $zeile['EinzelSchichtID'] ."'>-</button>" . "</td>";
|
||||
echo "</tr>";
|
||||
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
echo "<br><br>";
|
||||
|
||||
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
|
||||
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
|
||||
|
||||
echo '<table id="customers" onclick="window.location.href=\'AlleSchichten.php\'">';
|
||||
echo "<tr>";
|
||||
echo "<th>".'<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">'. " Alle Schichten der Con (".$iBelegteSchichtenCount."/".$iAlleSchichtenCount.")</th>";
|
||||
echo "</tr>";
|
||||
echo "</table>";
|
||||
|
||||
|
||||
mysqli_free_result( $db_erg );
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helfer - Logs </title>
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
|
||||
<!--meta name="viewport" content="width=480" /-->
|
||||
<?php
|
||||
require_once ('konfiguration.php');
|
||||
SESSION_START();
|
||||
|
||||
|
||||
// if we are not logged in, we redirect in the header back to the main page
|
||||
if(!isset($_SESSION["HelferID"]) || ! $_SESSION["HelferID"] > 0) {
|
||||
echo ' <meta http-equiv="Refresh" content="0; URL=index.php" />
|
||||
';
|
||||
}
|
||||
// print top of page if we are logged in and not redirecting
|
||||
echo " </head> \n <body> \n";
|
||||
echo '<button name="BackHelferdaten" value="1" onclick="window.location.href = \'index.php\';"><b>↩</b></button><br>'."\n";
|
||||
echo '<H1> Helferdaten - Log </H1>';
|
||||
echo '<p>Hier werden alle Aktionen, die einen Helfer betreffen aufgelistet</p>';
|
||||
echo '<table id="customers">'."\n";
|
||||
|
||||
//check for admin status
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
include 'SQL.php';
|
||||
$db_link = mysqli_connect ( MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK );
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
$db_erg = Helferdaten($db_link,$HelferID);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName=$zeile['Name'];
|
||||
$HelferIsAdmin=$zeile['Admin'];
|
||||
}
|
||||
|
||||
// Wir suchen nach HelferID:<zahl> - wenn das Admin Flag gesetzt ist, kann man den Suchstring auf etwas anderes aendern
|
||||
$regex = "\(HelferID:$HelferID\)";
|
||||
if($HelferIsAdmin){
|
||||
if(isset($_POST['suche']) || isset($_GET['suche'])){
|
||||
$regex=$_POST['suche'].$_GET['suche'];
|
||||
}
|
||||
echo "<form>";
|
||||
echo "Nur Admins: Suchbegriff (Per Default der selbe Suchtext, wie bei nicht-Admin Helfern):<input name='suche' type='text' size=35 value='$regex'><br> \n";
|
||||
echo "Der Suchbegriff ist ein <a href='https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck'>Regulärer Ausdruck</a><br><br>";
|
||||
echo "</form>";
|
||||
}
|
||||
|
||||
$regex = "/"."$regex"."/";
|
||||
foreach(file(LOGFILE) as $line) {
|
||||
#echo "not: $line<br>\n";
|
||||
if(preg_match($regex,$line,$matches)){
|
||||
echo "<tr><td> $line</td></tr>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,935 @@
|
|||
|
||||
<?php
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
|
||||
function ConnectDB(){
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
return $db_link;
|
||||
}
|
||||
|
||||
function CreateHelfer($db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel=1)
|
||||
{
|
||||
$HelferName=mysqli_real_escape_string($db_link, $HelferName);
|
||||
$HelferEmail=mysqli_real_escape_string($db_link, $HelferEmail);
|
||||
$HelferHandy=mysqli_real_escape_string($db_link, $HelferHandy);
|
||||
// level: Teilnehmer/Dauerhelfer/(Teamleiter)
|
||||
$HelferLevel=mysqli_real_escape_string($db_link, $HelferLevel);
|
||||
|
||||
//$HelferName=mysqli_real_escape($db_link,$HelferName);
|
||||
$HelferPasswort = "€".$HelferPasswort."ß";
|
||||
//echo "<b>".$HelferPasswort."</b>";
|
||||
$PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT);
|
||||
|
||||
|
||||
// Neuen Helfer anlegen
|
||||
$sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel) VALUES ('$HelferName','$HelferEmail','$HelferHandy',1,'',0,'$PasswortHash','$HelferLevel')";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
error_log(date('Y-m-d H:i') . " CreateHelfer: $HelferName angelegt mit Email $HelferEmail Handy $HelferHandy \n",3,LOGFILE);
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
// testet fuer urllogin, ob Helfer bereits existiert
|
||||
function HelferIstVorhanden ($db_link,$Email) {
|
||||
$Email=mysqli_real_escape_string($db_link, $Email);
|
||||
$sql = "SELECT count(HelferID) as Anzahl FROM Helfer Where Email = '" . $Email."'";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
|
||||
return $zeile['Anzahl'];
|
||||
|
||||
};
|
||||
|
||||
//TODO: pruefen, ob Helfer bereits eingeloggt
|
||||
function HelferLogin($db_link,$HelferEmail,$HelferPasswort,$HelferStatus)
|
||||
{
|
||||
$HelferEmail=mysqli_real_escape_string($db_link, $HelferEmail);
|
||||
$HelferStatus=mysqli_real_escape_string($db_link, $HelferStatus);
|
||||
|
||||
//echo "Test<br>";
|
||||
// Helfer Suchen
|
||||
$sql = "Select HelferID,Admin,Name,Passwort,HelferLevel From Helfer Where Email='".$HelferEmail."'";
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Login ungueltige Abfrage";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferPasswort = "€".$HelferPasswort."ß";
|
||||
//echo "<b>".$HelferPasswort."</b><br>";
|
||||
//echo "<b>".$zeile['Passwort']."</b><br>";
|
||||
if(password_verify( $HelferPasswort , $zeile['Passwort']) )
|
||||
{
|
||||
$_SESSION["HelferID"] = $zeile['HelferID'];
|
||||
$_SESSION["HelferName"] = $zeile['Name'];
|
||||
//TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
|
||||
$_SESSION["AdminID"] = $zeile['HelferID'];
|
||||
$_SESSION["AdminStatus"] = $zeile['Admin'];
|
||||
$_SESSION["HelferLevel"] = $zeile['HelferLevel'];
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Falsches Passwort<br>";
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Liste der Helfer fuer Admin-Seite
|
||||
//TODO: HelferLevel
|
||||
function HelferListe($db_link)
|
||||
{
|
||||
|
||||
$sql = "SELECT HelferID,Name FROM Helfer";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Helferliste ungueltige Abfrage";
|
||||
die('Unueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
|
||||
function Helferdaten($db_link,$HelferID)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
|
||||
$sql = "SELECT * FROM Helfer Where HelferID =".$HelferID;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Helferdaten ungueltige Abfrage<br>\n";
|
||||
echo "sql:$sql<br>\n";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
function HelferdatenAendern($db_link,$HelferName,$HelferEmail,$HelferHandy,$HelferNewPasswort,$HelferID,$HelferIsAdmin=-1,$AdminID=0)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
$HelferName=mysqli_real_escape_string($db_link, $HelferName);
|
||||
$HelferEmail=mysqli_real_escape_string($db_link, $HelferEmail);
|
||||
$HelferHandy=mysqli_real_escape_string($db_link, $HelferHandy);
|
||||
|
||||
if( $HelferNewPasswort == "")
|
||||
{
|
||||
//$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID;
|
||||
if ($HelferIsAdmin==-1)
|
||||
{
|
||||
$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' Where HelferId=".$HelferID;
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Admin=$HelferIsAdmin Where HelferId=".$HelferID;
|
||||
}
|
||||
echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
echo "<li>Helferdaten geändert</li>";
|
||||
if($AdminID!=0)
|
||||
{
|
||||
error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n",3,LOGFILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n",3,LOGFILE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$HelferNewPasswort = "€".$HelferNewPasswort."ß";
|
||||
$PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT);
|
||||
if ($HelferIsAdmin==-1)
|
||||
{
|
||||
$sql = "UPDATE Helfer SET Name='".$HelferName."',Email='".$HelferEmail."',Handy='".$HelferHandy."',Passwort='".$PasswortHash."' Where HelferId=".$HelferID;
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=".$HelferID;
|
||||
}
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
echo "<li>Passwort geändert</li>";
|
||||
if($AdminID!=0)
|
||||
{
|
||||
error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n",3,LOGFILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n",3,LOGFILE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "HelferdatenAendern ungueltiges Statement";
|
||||
echo $sql;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
function AlleSchichten($db_link,$Sort,$HelferLevel=1)
|
||||
{
|
||||
|
||||
$Sort=mysqli_real_escape_string($db_link, $Sort);
|
||||
|
||||
if($Sort=='1')
|
||||
{
|
||||
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Von";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Was,Von";
|
||||
}
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichten ungueltige Abfrage";
|
||||
echo $Sort;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function AlleSchichtenCount($db_link, $HelferLevel=1)
|
||||
{
|
||||
|
||||
//$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel";
|
||||
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
|
||||
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichtenCount ungueltige Abfrage";
|
||||
echo $Sort;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
|
||||
return $zeile['Anzahl'];
|
||||
|
||||
};
|
||||
|
||||
|
||||
function AlleBelegteSchichtenCount($db_link,$HelferLevel=1)
|
||||
{
|
||||
|
||||
$sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
|
||||
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichtenCount ungueltige Abfrage";
|
||||
echo $Sort;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
|
||||
return $zeile['Anzahl'];
|
||||
|
||||
};
|
||||
|
||||
|
||||
function AlleSchichtenImZeitbereich($db_link,$Von,$Bis,$HelferLevel=1)
|
||||
{
|
||||
// SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
|
||||
$Von=mysqli_real_escape_string($db_link, $Von);
|
||||
$Bis=mysqli_real_escape_string($db_link, $Bis);
|
||||
$HelferLevel=mysqli_real_escape_string($db_link, $HelferLevel);
|
||||
$sql_helferlevel="and Dienst.HelferLevel=$HelferLevel";
|
||||
if($HelferLevel==-1){
|
||||
$sql_helferlevel="";
|
||||
}
|
||||
|
||||
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= '".$Von."' and Von <'".$Bis."' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von";
|
||||
error_log($sql);
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichtenImZeitbereich ungueltige Abfrage<br>";
|
||||
echo $sql;
|
||||
die('<br>Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
|
||||
function AlleSchichtenEinesHelfers($db_link,$HelferID)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
|
||||
$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von";
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichtenEinesHelfers ungueltige Abfrage";
|
||||
echo $HelferID;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function HelferLoeschen($db_link,$HelferID,$AdminID)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
|
||||
|
||||
$db_erg = Helferdaten($db_link,$HelferID);
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
|
||||
$HelferName=$zeile['Name'];
|
||||
//echo "HelferName=$HelferName<br>";
|
||||
}
|
||||
|
||||
$db_erg = AlleSchichtenEinesHelfers($db_link,$HelferID);
|
||||
|
||||
$AnzahlHelferschichten=mysqli_num_rows($db_erg);
|
||||
if($AnzahlHelferschichten==0)
|
||||
{
|
||||
$sql="Delete from Helfer where HelferID='$HelferID'";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if( ! $db_erg )
|
||||
{
|
||||
echo "Helfer $HelferName konnte nicht gelöscht werden<br>";
|
||||
echo "$sql <br>";
|
||||
return -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
echo "Helfer $HelferName (HelferID:$HelferID) wurde erfolgreich geloescht<br>";
|
||||
error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helfer loeschen: Name: $HelferName (HelferID:$HelferID)\n",3,LOGFILE);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Helfer $HelferName hat noch $AnzahlHelferschichten Schichten. Bitte erst die Schichten löschen<br>";
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function SchichtIdArrayEinesHelfers($db_link,$HelferID)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
|
||||
// Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn
|
||||
$sql = "SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID";
|
||||
//print_r($sql);
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
$schichtIDs = array();
|
||||
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_NUM)) {
|
||||
$schichtIDs[] = $zeile[0];
|
||||
}
|
||||
return($schichtIDs);
|
||||
}
|
||||
|
||||
function AlleSchichtenEinesHelfersVonJetzt($db_link,$HelferID)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
#TODO: fix GETDATE() array to string conversion
|
||||
$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'".GETDATE()."' order by Von";
|
||||
|
||||
//$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von";
|
||||
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleSchichtenEinesHelfers ungueltige Abfrage";
|
||||
echo $HelferID;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function SchichtenSummeEinesHelfers($db_link,$HelferID)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
|
||||
//$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von";
|
||||
$sql = "select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID;
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "SchichtenSummeEinesHelfers ungueltige Abfrage";
|
||||
echo $HelferID;
|
||||
echo $sql;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID=0)
|
||||
{
|
||||
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
$SchichtId=mysqli_real_escape_string($db_link, $SchichtId);
|
||||
$EinzelSchichtId=mysqli_real_escape_string($db_link, $EinzelSchichtId);
|
||||
$Aktion=mysqli_real_escape_string($db_link, $Aktion);
|
||||
$AdminID=mysqli_real_escape_string($db_link, $AdminID);
|
||||
|
||||
$sql = "SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name
|
||||
FROM EinzelSchicht
|
||||
JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID
|
||||
JOIN Dienst ON Schicht.DienstID = Dienst.DienstID
|
||||
JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID
|
||||
WHERE EinzelSchicht.HelferID = $HelferID
|
||||
AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId)
|
||||
";
|
||||
//error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE);
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if (mysqli_num_rows($db_erg) > 1) {
|
||||
echo "HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegeben\n <br>";
|
||||
# Fehler geht ins normale Error-Management, nicht ins Logfile
|
||||
error_log(date('Y-m-d H:i') . " HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegben.\n",0);
|
||||
} else if (mysqli_num_rows($db_erg) == 1) {
|
||||
$row = mysqli_fetch_assoc($db_erg);
|
||||
$Von = $row["Von"];
|
||||
$Bis = $row["Bis"];
|
||||
$Was = $row["Was"];
|
||||
$HelferName= $row["Name"];
|
||||
} else {
|
||||
echo "Es wurde keine Zeile zurueckgegeben.";
|
||||
}
|
||||
|
||||
if($AdminID==0)
|
||||
{
|
||||
error_log(date('Y-m-d H:i') . " HelferSchicht: $HelferName (HelferID:$HelferID) hat Dienst $Was von $Von bis $Bis $Aktion.\n",3,LOGFILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_log(date('Y-m-d H:i') . " HelferSchicht: Admin:$AdminID hat von $HelferName (HelferID:$HelferID) den Dienst $Was von $Von bis $Bis $Aktion.\n",3,LOGFILE);
|
||||
}
|
||||
}
|
||||
|
||||
function HelferSchichtZuweisen($db_link,$HelferID,$SchichtId,$AdminID=0)
|
||||
{
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
$SchichtId=mysqli_real_escape_string($db_link, $SchichtId);
|
||||
|
||||
// Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert
|
||||
$sql = "SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID='$SchichtId' and HelferID='$HelferID'";
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if(mysqli_num_rows($db_erg) > 0) {
|
||||
echo "HelferSchichtZuweisen: Schicht existiert bereits!";
|
||||
return false;
|
||||
}
|
||||
|
||||
// Helfer Schicht zuweisen
|
||||
$sql = 'INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (\''
|
||||
. $SchichtId . '\',\''
|
||||
. $HelferID . '\')';
|
||||
//echo '<script> console.log("Schicht zuweiweisen: '.$sql.'")</script>';
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "HelferSchichtZuweisen ungueltige Abfrage";
|
||||
echo $HelferID;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen",$AdminID);
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function HelferVonSchichtLoeschen($db_link,$HelferID,$EinzelSchichtID,$AdminID=0)
|
||||
{
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
$SchichtId=mysqli_real_escape_string($db_link, $SchichtId);
|
||||
|
||||
|
||||
// Log vor Löschen, damit Einzelschicht abgefragt werden kann
|
||||
LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt",$AdminID);
|
||||
|
||||
// Lösche Einzelschicht
|
||||
$sql = "Delete From EinzelSchicht Where EinzelSchichtID =".$EinzelSchichtID;
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function HelferVonSchichtLoeschen_SchichtID($db_link,$HelferID,$SchichtID,$AdminID=0)
|
||||
{
|
||||
$HelferID=mysqli_real_escape_string($db_link, $HelferID);
|
||||
$SchichtId=mysqli_real_escape_string($db_link, $SchichtId);
|
||||
|
||||
|
||||
// Log vor Löschen, damit Einzelschicht abgefragt werden kann
|
||||
LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt",$AdminID);
|
||||
|
||||
// Lösche Einzelschicht
|
||||
$sql = "Delete From EinzelSchicht Where SchichtID = $SchichtID and HelferID = $HelferID limit 1;";
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function DetailSchicht($db_link,$InfoSchichtID)
|
||||
{
|
||||
$InfoSchichtID=mysqli_real_escape_string($db_link, $InfoSchichtID);
|
||||
|
||||
|
||||
$sql = "select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=".$InfoSchichtID;
|
||||
|
||||
//echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Details ungueltige Abfrage ";
|
||||
echo $InfoSchichtID;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
|
||||
return $zeile;
|
||||
|
||||
};
|
||||
|
||||
|
||||
function BeteiligteHelfer($db_link,$InfoSchichtID)
|
||||
{
|
||||
$InfoSchichtID=mysqli_real_escape_string($db_link, $InfoSchichtID);
|
||||
|
||||
$sql = "select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=".$InfoSchichtID;
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Details ungueltige Abfrage ";
|
||||
echo $InfoSchichtID;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
return $db_erg;
|
||||
|
||||
};
|
||||
|
||||
function GetDienste($db_link)
|
||||
{
|
||||
$sql = "SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "GetDienste ungueltige Abfrage";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return $db_erg;
|
||||
}
|
||||
|
||||
function GetDiensteChilds($db_link,$DienstID)
|
||||
{
|
||||
$DienstID=mysqli_real_escape_string($db_link, $DienstID);
|
||||
|
||||
$sql = "SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID='".$DienstID."' order by Was";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "GetDienste ungueltige Abfrage";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return $db_erg;
|
||||
}
|
||||
|
||||
|
||||
function ChangeDienst($db_link,$DienstID,$Was,$Wo,$Info,$Leiter,$Gruppe,$HelferLevel)
|
||||
{
|
||||
$DienstID=mysqli_real_escape_string($db_link, $DienstID);
|
||||
$Was=mysqli_real_escape_string($db_link, $Was);
|
||||
$Wo=mysqli_real_escape_string($db_link, $Wo);
|
||||
$Info=mysqli_real_escape_string($db_link, $Info);
|
||||
$Leiter=mysqli_real_escape_string($db_link, $Leiter);
|
||||
$Gruppe=mysqli_real_escape_string($db_link, $Gruppe);
|
||||
$HelferLevel=mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer
|
||||
|
||||
$sql = "UPDATE Dienst SET Was='".$Was."', Wo='".$Wo."', Info='".$Info."', Leiter=".$Leiter.", ElternDienstID=".$Gruppe." where DienstID=".$DienstID;
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler Change Dienst";
|
||||
echo $sql;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
}
|
||||
|
||||
function NewDienst($db_link,$DienstID,$Was,$Wo,$Info,$Leiter,$Gruppe,$HelferLevel)
|
||||
{
|
||||
|
||||
$DienstID=mysqli_real_escape_string($db_link, $DienstID);
|
||||
$Was=mysqli_real_escape_string($db_link, $Was); //Name des Dienstes
|
||||
$Wo=mysqli_real_escape_string($db_link, $Wo); //Ort
|
||||
$Info=mysqli_real_escape_string($db_link, $Info); //vollstaendige Beschreibung
|
||||
$Leiter=mysqli_real_escape_string($db_link, $Leiter); // int HelferID des Leiters
|
||||
$Gruppe=mysqli_real_escape_string($db_link, $Gruppe); // ??
|
||||
$HelferLevel=mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer
|
||||
|
||||
|
||||
$sql = "INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values ('$Was','$Wo','$Info',$Leiter,$Gruppe,$HelferLevel)";
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler New Dienst";
|
||||
// echo $sql;
|
||||
$err= mysqli_error($db_link);
|
||||
die('Ungueltige Abfrage: ' . $err);
|
||||
error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n",3,LOGFILE);
|
||||
|
||||
} else {
|
||||
error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName(ID:HelferID) hat Dienst angelegt mit Was: $WAS Wo: $Wo Info: $Info Leiter: $Leiter Gruppe $Gruppe, HelferLevel $HelferLevel \n",3,LOGFILE);
|
||||
}
|
||||
}
|
||||
|
||||
function DeleteDienst($db_link,$DienstID,$Rekursiv)
|
||||
{
|
||||
$DienstID=mysqli_real_escape_string($db_link, $DienstID);
|
||||
|
||||
|
||||
if ($Rekursiv)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Pruefen ob noch Schichten eingetragen sind
|
||||
$sql = "SELECT SchichtID FROM Schicht where DienstID=".$DienstID;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler DeleteDienst";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
if( mysqli_num_rows($db_erg)==0)
|
||||
{
|
||||
|
||||
// Eintrag löschen
|
||||
$sql = "DELETE FROM Dienst where DienstID=".$DienstID;
|
||||
|
||||
echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler DeleteDienst";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function GetSchichtenEinesDienstes($db_link,$DienstID)
|
||||
{
|
||||
$DienstID=mysqli_real_escape_string($db_link, $DienstID);
|
||||
|
||||
|
||||
//$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID;
|
||||
$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=".$DienstID;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "GetSchichtenEinesDienstes ungueltige Abfrage";
|
||||
echo $sql;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return $db_erg;
|
||||
}
|
||||
|
||||
function ChangeSchicht($db_link,$SchichtID,$Von,$Bis,$Soll)
|
||||
{
|
||||
$SchichtID=mysqli_real_escape_string($db_link, $SchichtID);
|
||||
$Von=mysqli_real_escape_string($db_link, $Von);
|
||||
$Bis=mysqli_real_escape_string($db_link, $Bis);
|
||||
$Soll=mysqli_real_escape_string($db_link, $Soll);
|
||||
|
||||
|
||||
$sql = "UPDATE Schicht SET Von='".$Von."', Bis='".$Bis."', Soll='".$Soll."' where SchichtID=".$SchichtID;
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler ChangeSchicht";
|
||||
echo $sql;
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
}
|
||||
|
||||
function NewSchicht($db_link,$DienstID,$Von,$Bis,$Soll)
|
||||
{
|
||||
|
||||
$DienstID=mysqli_real_escape_string($db_link, $DienstID);
|
||||
$Von=mysqli_real_escape_string($db_link, $Von);
|
||||
$Bis=mysqli_real_escape_string($db_link, $Bis);
|
||||
$Soll=mysqli_real_escape_string($db_link, $Soll);
|
||||
|
||||
/*
|
||||
if(validateDate($Von))
|
||||
{
|
||||
echo "Keine Schicht erstellt Fehler in Von";
|
||||
return;
|
||||
}
|
||||
if(validateDate($Bis, DateTime::ATOM))
|
||||
{
|
||||
echo "Keine Schicht erstellt Fehler in Bis";
|
||||
return Null;
|
||||
}
|
||||
*/
|
||||
$sql = "INSERT INTO Schicht (DienstID, Von, Bis, Soll) values ('".$DienstID."','".$Von."','".$Bis."',".$Soll.")";
|
||||
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Keine Schicht erstellt";
|
||||
//echo $sql;
|
||||
error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n",3,LOGFILE);
|
||||
$err=mysqli_error($db_link);
|
||||
die('Ungueltige Abfrage: ' . $err);
|
||||
}
|
||||
else{
|
||||
//TODO: DienstID aufloesen
|
||||
error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName hat Schicht angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n",3,LOGFILE);
|
||||
}
|
||||
}
|
||||
|
||||
function DeleteSchicht($db_link,$SchichtID,$Rekursiv)
|
||||
{
|
||||
$SchichtID=mysqli_real_escape_string($db_link, $SchichtID);
|
||||
|
||||
if ($Rekursiv)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Pruefen ob noch Helfer auf der Schicht eingetragen sind
|
||||
$sql = "SELECT Name FROM EinzelSchicht,Helfer where SchichtID=".$SchichtID." and Helfer.HelferID=EinzelSchicht.HelferID";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler Change Dienst";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
|
||||
if( mysqli_num_rows($db_erg)==0)
|
||||
{
|
||||
|
||||
// Eintrag löschen
|
||||
$sql = "DELETE FROM Schicht where SchichtID=".$SchichtID;
|
||||
|
||||
echo $sql;
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Fehler Change Dienst";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function AlleHelferSchichtenUebersicht($db_link)
|
||||
|
||||
{
|
||||
$sql="select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "AlleHelferSchichtenUebersicht ungueltige Abfrage";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return $db_erg;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function DatenbankAufDeutsch($db_link)
|
||||
{
|
||||
$sql = "SET lc_time_names = 'de_DE'";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "ungueltiges umstellen auf Deutsch";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
function HelferLevel($db_link){
|
||||
$sql = "select HelferLevel,HelferLevelBeschreibung from HelferLevel";
|
||||
$db_erg = mysqli_query( $db_link, $sql );
|
||||
if ( ! $db_erg )
|
||||
{
|
||||
echo "Konnte HelferLevel nicht abfragen";
|
||||
die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
}
|
||||
return $db_erg;
|
||||
}
|
||||
// TODO: als Array zurueckgeben (CreateHelfer anpassen)
|
||||
// TODO:
|
||||
//function HelferLevel($db_link){
|
||||
// $sql = "SELECT HelferLevel, HelferLevelBeschreibung FROM HelferLevel";
|
||||
// $db_erg = mysqli_query($db_link, $sql);
|
||||
// if (!$db_erg) {
|
||||
// echo "Konnte HelferLevel nicht abfragen";
|
||||
// die('Ungueltige Abfrage: ' . mysqli_error($db_link));
|
||||
// }
|
||||
//
|
||||
// $results = array();
|
||||
// while ($row = mysqli_fetch_assoc($db_erg)) {
|
||||
// $results[] = $row;
|
||||
// }
|
||||
//
|
||||
// mysqli_free_result($db_erg); // Freigabe des Ergebnisobjekts
|
||||
//
|
||||
// return $results;
|
||||
//}
|
||||
|
||||
|
||||
function DebugAusgabeDbErgebnis($db_erg)
|
||||
{
|
||||
// Ausgabe auf Browser Console
|
||||
|
||||
#if(mysqli_num_rows($db_erg) > 0) {
|
||||
# $fields = mysqli_fetch_fields($db_erg);
|
||||
# $field_names = [];
|
||||
# foreach($fields as $field) {
|
||||
# $field_names[] = $field->name;
|
||||
# }
|
||||
# $rows = array();
|
||||
# while($row = mysqli_fetch_row($db_erg)) {
|
||||
# $rows[] = $row;
|
||||
# }
|
||||
#
|
||||
# $js_code = "console.log('Query results:');";
|
||||
# $js_code .= "console.log('" . implode('\t', $field_names) . "');";
|
||||
# foreach($rows as $row) {
|
||||
# $js_code .= "console.log('" . implode('\t', $row) . "');";
|
||||
# }
|
||||
# echo "<script>" . $js_code . "</script>";
|
||||
#} else {
|
||||
# echo "Keine Ergebnisse gefunden.";
|
||||
#}
|
||||
#
|
||||
|
||||
|
||||
// direkte ausgabe in Seite
|
||||
echo "<table>";
|
||||
if(mysqli_num_rows($db_erg) > 0) {
|
||||
// Tabellenkopf ausgeben
|
||||
echo "<tr>";
|
||||
$fields = mysqli_fetch_fields($db_erg);
|
||||
foreach($fields as $field) {
|
||||
echo "<th>" . $field->name . "</th>";
|
||||
}
|
||||
echo "</tr>";
|
||||
|
||||
// Tabelleninhalt ausgeben
|
||||
while($row = mysqli_fetch_row($db_erg)) {
|
||||
echo "<tr>";
|
||||
foreach($row as $value) {
|
||||
echo "<td>" . $value . "</td>";
|
||||
}
|
||||
echo "</tr>";
|
||||
}
|
||||
} else {
|
||||
echo "<tr><td>Keine Ergebnisse gefunden.</td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
|
||||
<?php
|
||||
SESSION_START();
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
include '_crypt.php';
|
||||
|
||||
|
||||
$head="<!doctype html>
|
||||
<head></head> <body> ";
|
||||
$foot="</body></html>";
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
# ist jetzt in _crypt.php, aber aus der anderen Datei, deshalb hier erst
|
||||
# nur auskommentiert
|
||||
#function Entschluessle($encrypted_data,$secret_verification,$secret_key){
|
||||
#
|
||||
# // Erstellen eines Cipher-Objekts für die Verschlüsselung
|
||||
# $cipher_method = "AES-256-CBC";
|
||||
# $iv_length = openssl_cipher_iv_length($cipher_method);
|
||||
# $cipher_options = OPENSSL_RAW_DATA;
|
||||
# $cipher_key = openssl_digest($secret_key, 'SHA256', true);
|
||||
#
|
||||
# // Entschlüsseln des verschlüsselten Textes
|
||||
# // zuerst base64 entfernen. *kein* urldecode, das passiert durch get/post automatisch
|
||||
# $decoded_cipher_text = base64_decode($encrypted_data);
|
||||
# $iv = substr($decoded_cipher_text, 0, $iv_length);
|
||||
# $cipher_text = substr($decoded_cipher_text, $iv_length);
|
||||
# $decrypted_email = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
|
||||
#
|
||||
# // Verifikationsstring überprüfen und entfernen
|
||||
# $verification_length = strlen($secret_verification);
|
||||
# if(substr($decrypted_email, -$verification_length) == $secret_verification) {
|
||||
# $decrypted_email = substr($decrypted_email, 0, -$verification_length);
|
||||
# }
|
||||
# return($decrypted_email);
|
||||
#}
|
||||
|
||||
if(isset($_GET['token']) || isset($_POST['token']) ) {
|
||||
// E-Mail-Adresse des Nutzers
|
||||
$token = $_GET['token'];
|
||||
//$email = Entschluessle($token,$secret_verification,$secret_key);
|
||||
$decrypted_data = decode_string($secret_key, $token, $secret_verification);
|
||||
//error_log("decrytped_data: ". $decrypted_data);
|
||||
$email=$decrypted_data['email'];
|
||||
$helfer_level=$decrypted_data['level'];
|
||||
$success=$decrypted_data['success'];
|
||||
//error_log("email: ".$email.",level: ".$helfer_level.",success: ".$success);
|
||||
} else {
|
||||
echo "$head Kein Token angegeben!<br> $foot";
|
||||
exit;
|
||||
}
|
||||
if($success != 1) {
|
||||
// if ( $db_erg ) {
|
||||
// echo ' <meta http-equiv="Refresh" content="0; URL=index.php" />';
|
||||
// } else {
|
||||
echo "$head Kein gültiges Token!<br>$foot";
|
||||
exit;
|
||||
}
|
||||
//}
|
||||
//TODO: Variablendoppelung aufloesen und oben gleich einmal setzen
|
||||
if($success == 1 && $email != ""){
|
||||
// Ausgabe der entschlüsselten E-Mail-Adresse
|
||||
//echo "E-Mail-Adresse: ", $email, "<br>\n";
|
||||
//echo "Passwort: ",$token,"<br>\n";
|
||||
$HelferName = $email;
|
||||
$HelferEmail = $email;
|
||||
$HelferLevel = $helfer_level;
|
||||
$HelferHandy = "";
|
||||
$HelferPasswort = $token;
|
||||
|
||||
if(!filter_var($HelferEmail, FILTER_VALIDATE_EMAIL)) {
|
||||
echo 'Problem mit E-Mail-Adresse.';
|
||||
exit;
|
||||
}
|
||||
error_log("2email: ".$HelferEmail.",level: ".$helfer_level.",success: ".$success);
|
||||
// Helfer Anlegen, wenn er nicht existiert
|
||||
if( ! HelferIstVorhanden($db_link,$HelferEmail) ) {
|
||||
error_log("Helfer ".$HelferEmail." nicht vorhanden, lege an");
|
||||
error_log("CreateHelfer(db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);");
|
||||
$db_erg = CreateHelfer($db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);
|
||||
}
|
||||
// Login-Versuch, entweder direkt nach Anlegen oder wenn existiert hat
|
||||
// Login und auf Haupt-Seite gehen
|
||||
HelferLogin($db_link,$HelferEmail,$HelferPasswort,0);
|
||||
echo '<html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Drop am See Helferdaten ändern</title>
|
||||
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<meta name="viewport" content="width=480" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
|
||||
SESSION_START();
|
||||
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
//require_once ('SQL.php');
|
||||
include 'SQL.php';
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
/// Helferdaten Aendern
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
if(isset($_POST['change'])) {
|
||||
$messages = [];
|
||||
|
||||
|
||||
// Eingaben überprüfen:
|
||||
|
||||
|
||||
if(strlen($_POST['helfer-newpasswort'])<8 and $_POST['helfer-newpasswort']!="")
|
||||
{
|
||||
$messages[] = 'Neues Passwort zu kurz';
|
||||
}
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
$HelferName = $_POST['helfer-name'];
|
||||
$HelferEmail = $_POST['helfer-email'];
|
||||
$HelferHandy = $_POST['helfer-handy'];
|
||||
$HelferNewPasswort = $_POST['helfer-newpasswort'];
|
||||
if(empty($messages)) {
|
||||
// Helferdaten Ändern
|
||||
HelferdatenAendern($db_link,$HelferName,$HelferEmail,$HelferHandy,$HelferNewPasswort,$HelferID);
|
||||
|
||||
} else {
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Helferdate holen
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
$db_erg = Helferdaten($db_link,$HelferID);
|
||||
|
||||
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
{
|
||||
$HelferName = $zeile['Name'];
|
||||
$HelferEmail = $zeile['Email'];
|
||||
$HelferHandy = $zeile['Handy'];
|
||||
}
|
||||
|
||||
/// Logout
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['logout']))
|
||||
{
|
||||
unset($_SESSION["HelferID"]);
|
||||
//$_POST['login'] = 1;
|
||||
}
|
||||
|
||||
/// Login
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['login']))
|
||||
{
|
||||
$messages = [];
|
||||
// Eingaben überprüfen:
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
|
||||
$HelferName = $_POST['helfer-name'];
|
||||
$HelferEmail = $_POST['helfer-email'];
|
||||
$HelferPasswort = $_POST['helfer-passwort'];
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<table id="customers">
|
||||
<tr>
|
||||
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button> Helferdaten</th>
|
||||
</tr>
|
||||
<form method="post">
|
||||
<tr>
|
||||
<td>Name</td></tr><tr><td>
|
||||
<input name="helfer-name" type="text" value="<?=htmlspecialchars($HelferName??'')?>" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Email</td></tr><tr><td>
|
||||
<input name="helfer-email" type="email " value="<?=htmlspecialchars($HelferEmail??'')?>" required>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Handy</td></tr><tr><td>
|
||||
<input name="helfer-handy" type="tel" value="<?=htmlspecialchars($HelferHandy??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Altes Helfer Passwort</td></tr><tr><td>
|
||||
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Neues Helfer Passwort</td></tr><tr><td>
|
||||
<input name="helfer-newpasswort" type="text" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<p><button name="change" style="width:150px !important" value="1">Ändern</button></p>
|
||||
</form>
|
||||
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>↩</b></button>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
function encode_string($key, $email, $level, $verification) {
|
||||
// String verification anfuegen am Ende, um abgeschnittene URLs zu verhindern
|
||||
$token_content = $email . '|' . $level . '|' . $verification;
|
||||
|
||||
// Erstellen eines Cipher-Objekts für die Verschlüsselung
|
||||
$cipher_method = "AES-256-CBC";
|
||||
$iv_length = openssl_cipher_iv_length($cipher_method);
|
||||
$iv = openssl_random_pseudo_bytes($iv_length);
|
||||
$cipher_options = OPENSSL_RAW_DATA;
|
||||
// sha256 hash des passworts, damit das Geheimnis lang genug ist
|
||||
$cipher_key = openssl_digest($key, 'SHA256', true);
|
||||
$cipher_text = openssl_encrypt($token_content, $cipher_method, $cipher_key, $cipher_options, $iv);
|
||||
|
||||
if(isset($debug)) {
|
||||
echo "<br>encode: cipher:".chunk_split(bin2hex($cipher_text),4,' ')." <br>iv:".chunk_split(bin2hex($iv),4,' ')." <br>iv_length:$iv_length<br>cipher_key ".chunk_split(bin2hex($cipher_key),4,' ')."<br>";
|
||||
}
|
||||
|
||||
$cipher_text = $iv . $cipher_text;
|
||||
// verschlüsselter Textes als base64 und dann noch mit urlencode, weil base64 zB + enthaelt
|
||||
$encrypted_data = urlencode(base64_encode($cipher_text));
|
||||
|
||||
return $encrypted_data;
|
||||
}
|
||||
|
||||
function decode_string($key, $encrypted_data, $verification) {
|
||||
// Entschlüsseln des verschuesselten Textes
|
||||
// erst base64 entfernen - urldecode muss wenn noetig vorher angewendet werden
|
||||
$decoded_cipher_text = base64_decode($encrypted_data);
|
||||
// iv vom Anfang abtrennen
|
||||
$cipher_method = "AES-256-CBC";
|
||||
$iv_length = openssl_cipher_iv_length($cipher_method);
|
||||
$iv = substr($decoded_cipher_text, 0, $iv_length);
|
||||
$cipher_text = substr($decoded_cipher_text, $iv_length);
|
||||
$cipher_options = OPENSSL_RAW_DATA;
|
||||
$cipher_key = openssl_digest($key, 'SHA256', true);
|
||||
|
||||
if(isset($debug)){
|
||||
echo "<br>decode: cipher:".chunk_split(bin2hex($cipher_text),4,' '). " <br>iv:".chunk_split(bin2hex($iv),4,' '). " <br>iv_length:$iv_length<br>cipher_key ". chunk_split(bin2hex($cipher_key),4,' ');
|
||||
}
|
||||
|
||||
$decrypted_data = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
|
||||
|
||||
if(isset($debug)){echo "<br> decrypted_data " . $decrypted_data." end<br>";}
|
||||
$verification_length = strlen($verification);
|
||||
|
||||
if(substr($decrypted_data, -$verification_length) == $verification) {
|
||||
list($email, $level, $verification_code) = explode('|', $decrypted_data);
|
||||
return array(
|
||||
'email' => $email,
|
||||
'level' => $level,
|
||||
'success' => 1
|
||||
);
|
||||
} else {
|
||||
error_log("Verschlüsseltes Token enthielt den Verifikationscode nicht: $decrypted_data<br>\n");
|
||||
return array(
|
||||
'success' => 0
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
/// Logout
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_GET['logout']) || isset($_POST['logout']))
|
||||
{
|
||||
// remove all session variables
|
||||
session_unset();
|
||||
|
||||
// destroy the session
|
||||
session_destroy();
|
||||
echo '<!doctype html><html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
|
||||
|
||||
}
|
||||
|
||||
/// Login
|
||||
////////////////////////////////////////////////////////
|
||||
if(isset($_POST['login']))
|
||||
{
|
||||
$messages = [];
|
||||
// Eingaben überprüfen:
|
||||
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
|
||||
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
|
||||
//}
|
||||
|
||||
//if (isset ($_POST['helfer-name'])) {
|
||||
// $HelferName = $_POST['helfer-name'];
|
||||
//} // delete - login shouldnt provide this
|
||||
$HelferEmail = $_POST['helfer-email'];
|
||||
$HelferPasswort = $_POST['helfer-passwort'];
|
||||
|
||||
if(empty($messages))
|
||||
{
|
||||
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fehlermeldungen ausgeben:
|
||||
echo '<div class="error"><ul>';
|
||||
foreach($messages as $message) {
|
||||
echo '<li>'.htmlspecialchars($message).'</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(!isset($_SESSION["HelferID"]))
|
||||
{
|
||||
|
||||
?>
|
||||
<form method="post" action="#Info">
|
||||
|
||||
<fieldset>
|
||||
<legend>Login</legend>
|
||||
|
||||
<table border="0" style="border: 0px solid black;">
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Email</td></tr><tr><td style="border: 0px solid black;">
|
||||
<input name="helfer-email" type="text" size=35 value="<?=htmlspecialchars($HelferEmail??'')?>" required>
|
||||
</td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td style="border: 0px solid black;">Passwort</td></tr>
|
||||
<tr><td style="border: 0px solid black;">
|
||||
<input name="helfer-passwort" id="helfer-passwort" type="password" size=35 value="<?=htmlspecialchars($HelferHandy??'')?>" required>
|
||||
</td><td style="border: 0px solid black;">
|
||||
<input type="button" value="Passwort zeigen" style="width:180px !important" onclick="showPassword('helfer-passwort')">
|
||||
</td>
|
||||
<tr>
|
||||
</table>
|
||||
|
||||
|
||||
</fieldset>
|
||||
|
||||
<p><button style="width: 100px" name="login" value="1">Login</button></p>
|
||||
|
||||
|
||||
</form>
|
||||
<?php
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
$HelferName = $_SESSION["HelferName"];
|
||||
$AdminID = $_SESSION["AdminID"];
|
||||
//TODO vereinheitlichen. index.php verwendet HelferIsAdmin
|
||||
$HelferIsAdmin=$AdminStatus = $_SESSION["AdminStatus"];
|
||||
$HelferLevel= $_SESSION["HelferLevel"];
|
||||
?>
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
table, p, div, td, th, input {
|
||||
font-size: inherit ;
|
||||
}
|
||||
|
||||
.commontable a {
|
||||
color: inherit;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
.commontable,#customers {
|
||||
font-size: inherit;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.commontable td,#customers td, .commontable th,#customers th {
|
||||
border: 1px solid #ddd;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.commontable tr:nth-child(even),#customers tr:nth-child(even){background-color: #f2f2f2;}
|
||||
|
||||
.commontable tr:hover ,#customers tr:hover {background-color: #ddd;}
|
||||
|
||||
.commontable th,#customers th {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
height: 40px;
|
||||
text-align: left;
|
||||
background-color: #1090CF;
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
#selected th {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
text-align: left;
|
||||
background-color: #0000FF;
|
||||
color: white;
|
||||
}
|
||||
|
||||
thead {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
color: black;
|
||||
background: white;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.commontable button,.back button,.helfer button,#customers button {
|
||||
text-decoration: none; /* dont underline links */
|
||||
display: inline-block; /* makes it possible to set top and bottom margins */
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
details[open] summary ~ * {
|
||||
animation: spoiler 1s ease-in-out;
|
||||
padding: 2rem;
|
||||
background: #cdddff;
|
||||
border-radius: 1rem
|
||||
}
|
||||
summary {
|
||||
font-size: 3px;
|
||||
height: 2px;
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
@import "style_common.css";
|
||||
|
||||
html, body {
|
||||
font-size: 17;
|
||||
}
|
||||
|
||||
|
||||
button,select {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
@import "style_common.css";
|
||||
|
||||
html, body {
|
||||
font-size: 25;
|
||||
}
|
||||
|
||||
button,select {
|
||||
font-size: 27;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
@import "style_common.css";
|
||||
|
||||
html, body {
|
||||
font-size: 12;
|
||||
}
|
||||
|
||||
|
||||
button {
|
||||
font-size: 0px;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: 0px;
|
||||
|
||||
}
|
||||
|
||||
nav, footer {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
require_once("../konfiguration.php");
|
||||
$options=[];
|
||||
$db = new PDO($dsn, MYSQL_BENUTZER, MYSQL_KENNWORT, $options);
|
||||
|
||||
function read($db, $requestParams){
|
||||
$queryParams = [];
|
||||
$queryText = "
|
||||
select Schicht.SchichtID as id,
|
||||
Schicht.Von as start_date,
|
||||
Schicht.Bis as end_date,
|
||||
concat(Dienst.Was, ' [',Dienst.Wo,'](', SchichtUebersicht.C,'/',SchichtUebersicht.Soll,')') as text,
|
||||
group_concat(Helfer.Name separator '\\n' ) as Name,
|
||||
group_concat(concat(Helfer.Name,'+',Helfer.Handy) separator '\\n' ) as Kontakt,
|
||||
Dienst.Info,
|
||||
CASE WHEN (SchichtUebersicht.Soll-SchichtUebersicht.C)<=0 THEN '#005d00'
|
||||
WHEN SchichtUebersicht.C>0 THEN '#dd9000'
|
||||
ELSE '#4d0000'
|
||||
END as color,
|
||||
CASE WHEN (SchichtUebersicht.Soll-SchichtUebersicht.C)<=0 THEN 'white'
|
||||
WHEN SchichtUebersicht.C>0 THEN 'black'
|
||||
ELSE 'white'
|
||||
END as textColor
|
||||
FROM EinzelSchicht
|
||||
INNER JOIN Helfer ON EinzelSchicht.HelferID=Helfer.HelferId
|
||||
RIGHT JOIN Schicht ON Schicht.SchichtID=EinzelSchicht.SchichtID
|
||||
INNER JOIN Dienst ON Dienst.DienstID=Schicht.DienstID
|
||||
INNER JOIN SchichtUebersicht ON Dienst.DienstID=SchichtUebersicht.DienstID AND SchichtUebersicht.SchichtID=Schicht.SchichtID
|
||||
GROUP BY Schicht.SchichtID;";
|
||||
|
||||
//error_log(date('Y-m-d H:i ') . $queryText,3,"/tmp/sql.log");
|
||||
// handle dynamic loading
|
||||
if (isset($requestParams["from"]) && isset($requestParams["to"])) {
|
||||
//error_log("timespan given. from: ".$requestParams["from"]." to: ".$requestParams["to"]);
|
||||
$queryText .= " WHERE `Schicht.Bis`>=? AND `Schicht.Von` < ?;";
|
||||
$queryParams = [filter_var($requestParams["from"],FILTER_SANITIZE_NUMBER_FLOAT), filter_var($requestParams["to"],FILTER_SANITIZE_NUMBER_FLOAT)];
|
||||
}
|
||||
$query = $db->prepare($queryText);
|
||||
$query->execute($queryParams);
|
||||
$events = $query->fetchAll();
|
||||
return $events;
|
||||
}
|
||||
|
||||
switch ($_SERVER["REQUEST_METHOD"]) {
|
||||
case "GET":
|
||||
$result = read($db, $_GET);
|
||||
break;
|
||||
case "POST":
|
||||
// only if changes will be allowed
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Unexpected Method");
|
||||
break;
|
||||
}
|
||||
header("Content-Type: application/json");
|
||||
echo json_encode($result);
|
||||
?>
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
require_once("../konfiguration.php");
|
||||
$options=[];
|
||||
SESSION_START();
|
||||
$db = new PDO($dsn, MYSQL_BENUTZER, MYSQL_KENNWORT, $options);
|
||||
if(!isset($_SESSION["HelferID"])){ exit ; }
|
||||
$HelferID = $_SESSION["HelferID"];
|
||||
|
||||
function read_from_db($db, $requestParams,$HelferID){
|
||||
$queryParams = [];
|
||||
$queryText = "
|
||||
select Schicht.SchichtID as id,
|
||||
Schicht.Von as start_date,
|
||||
Schicht.Bis as end_date,
|
||||
concat(Dienst.Was, ' [',Dienst.Wo,'](', SchichtUebersicht.C,'/',SchichtUebersicht.Soll,')') as text,
|
||||
group_concat(Helfer.Name separator '\\n' ) as Name,
|
||||
group_concat(concat(Helfer.Name,'+',Helfer.Handy) separator '\\n' ) as Kontakt,
|
||||
Dienst.Info,
|
||||
CASE WHEN (SchichtUebersicht.Soll-SchichtUebersicht.C)<=0 THEN 'darkgreen'
|
||||
WHEN SchichtUebersicht.C>0 THEN '#dd9000'
|
||||
ELSE 'darkred'
|
||||
END as color,
|
||||
CASE WHEN (SchichtUebersicht.Soll-SchichtUebersicht.C)<=0 THEN 'white'
|
||||
WHEN SchichtUebersicht.C>0 THEN 'black'
|
||||
ELSE 'yellow'
|
||||
END as textColor
|
||||
FROM EinzelSchicht
|
||||
INNER JOIN Helfer ON EinzelSchicht.HelferID=Helfer.HelferId
|
||||
RIGHT JOIN Schicht ON Schicht.SchichtID=EinzelSchicht.SchichtID
|
||||
INNER JOIN Dienst ON Dienst.DienstID=Schicht.DienstID
|
||||
INNER JOIN SchichtUebersicht ON Dienst.DienstID=SchichtUebersicht.DienstID AND SchichtUebersicht.SchichtID=Schicht.SchichtID
|
||||
WHERE Helfer.HelferID=$HelferID
|
||||
GROUP BY Schicht.SchichtID";
|
||||
|
||||
$query = $db->prepare($queryText);
|
||||
$query->execute($queryParams);
|
||||
error_log(date('Y-m-d H:i ') . print_r($queryText,true),3,"/var/log/dropamsee/debug.log");
|
||||
$events = $query->fetchAll();
|
||||
return $events;
|
||||
}
|
||||
|
||||
switch ($_SERVER["REQUEST_METHOD"]) {
|
||||
case "GET":
|
||||
$result = read_from_db($db, $_GET,$HelferID);
|
||||
break;
|
||||
case "POST":
|
||||
// only if changes will be allowed
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Unexpected Method");
|
||||
break;
|
||||
}
|
||||
header("Content-Type: application/json");
|
||||
echo json_encode($result);
|
||||
?>
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
<!doctype html>
|
||||
<html lang=de>
|
||||
<head>
|
||||
<title>Helfer Drop am See Home</title>
|
||||
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
|
||||
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
|
||||
<script src=js/helferdb.js></script>
|
||||
<meta name="viewport" content="width=480" />
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
SESSION_START();
|
||||
|
||||
require_once ('konfiguration.php');
|
||||
include 'SQL.php';
|
||||
|
||||
$db_link = mysqli_connect (
|
||||
MYSQL_HOST,
|
||||
MYSQL_BENUTZER,
|
||||
MYSQL_KENNWORT,
|
||||
MYSQL_DATENBANK
|
||||
);
|
||||
|
||||
DatenbankAufDeutsch($db_link);
|
||||
|
||||
include '_login.php';
|
||||
|
||||
// wird von _login.php miterledigt
|
||||
// TODO: hier wird HelferIsAdmin verwendet, woanders ist es AdminStatus
|
||||
//$db_erg = Helferdaten($db_link,$HelferID);
|
||||
//while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
|
||||
//{
|
||||
// $HelferName=$zeile['Name'];
|
||||
// $HelferIsAdmin=$zeile['Admin'];
|
||||
//}
|
||||
|
||||
?>
|
||||
|
||||
<div style="width: 100%;">
|
||||
|
||||
<table id="customers" >
|
||||
<tr onclick="window.location.href='Info.php';">
|
||||
<th><img src="Bilder/Info.jpeg" style="width:30px;height:30px;"> <b>Drop am See 2023</b></th>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='Userdaten.php';">
|
||||
<td > <img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;">
|
||||
<b>
|
||||
<?php
|
||||
if($HelferIsAdmin)
|
||||
{
|
||||
echo "Admin ";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Helfer ";
|
||||
}
|
||||
echo $HelferName;
|
||||
?>
|
||||
</b> </td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='MeineSchichten.php';">
|
||||
<td>
|
||||
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Helferschichten:</b>
|
||||
|
||||
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
|
||||
<?php
|
||||
//<li>Fr 08:00 Leitung Halle</li>
|
||||
//<li>So 12:00 Abbau</li>
|
||||
/// Die 3 nächsten Schichten Des Helfers Anzeigen
|
||||
////////////////////////////////////////////////////////
|
||||
//$HelferID=72;
|
||||
|
||||
$db_erg = AlleSchichtenEinesHelfersVonJetzt($db_link,$HelferID);
|
||||
|
||||
|
||||
$iSQLCount = mysqli_num_rows($db_erg);
|
||||
//$iSQLCount = 3;
|
||||
|
||||
|
||||
$iCount=0;
|
||||
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC) and $iCount<3)
|
||||
{
|
||||
echo "<li>". $zeile['Ab'] . " ". $zeile['Was'] . "</li>";
|
||||
$iCount++;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
</ul>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!--
|
||||
<tr onclick="window.location.href='Ereignisse.php';">
|
||||
<td>
|
||||
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Ereignisse:</b>
|
||||
|
||||
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
|
||||
<li>Sa 20:00 Show im Milchwerk</li>
|
||||
<li>So 15:00 Gaukelgames</li>
|
||||
</ul>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='Workshop.php';">
|
||||
<td>
|
||||
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Workshops:</b>
|
||||
|
||||
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
|
||||
<li>Sa 14:00 8 Bälle für Anfänger</li>
|
||||
<li>Sa 15:00 Devilstick Hubschrauber beidseitig</li>
|
||||
</ul>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr onclick="window.location.href='Wichtig.php';">
|
||||
<td>
|
||||
<img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"> <b>Wichtig:</b>
|
||||
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
|
||||
<li>Warnung vor Sturm ab 21 Uhr</li>
|
||||
</ul>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr onclick="window.location.href='AlleSchichten.php';">
|
||||
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b>Schicht Hinzufügen</b></td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr onclick="window.location.href='Kalender.php';">
|
||||
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Kalenderansicht</b></td>
|
||||
|
||||
</tr>
|
||||
<tr onclick="window.location.href='ReadLog.php';">
|
||||
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logs</b></td>
|
||||
|
||||
</tr>
|
||||
<?php
|
||||
if ($HelferIsAdmin)
|
||||
{
|
||||
?>
|
||||
<tr onclick="window.location.href='Admin.php';">
|
||||
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Admin</b></td>
|
||||
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</tr>
|
||||
<tr onclick="window.location.href='index.php?logout=1';">
|
||||
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logout</b></td>
|
||||
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
function showPassword(id) {
|
||||
var x = document.getElementById(id);
|
||||
if (x.type === "password") {
|
||||
x.type = "text";
|
||||
} else {
|
||||
x.type = "password";
|
||||
}
|
||||
}
|
||||
|
||||
//// https://www.w3schools.com/howto/howto_js_collapsible.asp
|
||||
//var coll = document.getElementsByClassName("collapsible");
|
||||
//var i;
|
||||
//
|
||||
//for (i = 0; i < coll.length; i++) {
|
||||
// coll[i].addEventListener("click", function() {
|
||||
// this.classList.toggle("active");
|
||||
// var content = this.nextElementSibling;
|
||||
// if (content.style.display === "block") {
|
||||
// content.style.display = "none";
|
||||
// } else {
|
||||
// content.style.display = "block";
|
||||
// }
|
||||
// });
|
||||
//}
|
||||
//
|
||||
|
||||
//// collapse column rows that are not header
|
||||
function collapse_table_rows(){
|
||||
$(document).ready(function() {
|
||||
$('tr:not(.header)').hide();
|
||||
|
||||
$('tr.header').click(function() {
|
||||
$(this).find('span').text(function(_, value) {
|
||||
return value == '-' ? '+' : '-'
|
||||
});
|
||||
|
||||
$(this).nextUntil('tr.header').slideToggle(100, function() {});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function expand_all_table_rows(){
|
||||
|
||||
$('tr:not(.header)').hide(); // make all collapsed so that slideToggle doesnt close opened ones
|
||||
$('tr:not(.header)').slideToggle(100, function() {});
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
<?php
|
||||
// datenbank-defines extern
|
||||
require_once('/etc/helferdb_konfiguration.php');
|
||||
// die folgenden Zeilen ohne Kommentarzeichen nach /etc/helferdb_konfiguration.php
|
||||
// kopieren und an die eigene Datenbank anpassen
|
||||
#define( 'MYSQL_HOST', 'localhost' );
|
||||
#define( 'MYSQL_BENUTZER', 'benutzername_der_datenbank' );
|
||||
#define( 'MYSQL_KENNWORT', 'passwort_des_db_nutzers' );
|
||||
#define( 'MYSQL_DATENBANK', 'name_der_datenbank' );
|
||||
#define( 'LOGFILE', "/pfad/zu/einer/www-schreibbaren/datei");
|
||||
#define( VERANSTALTUNGSNAME, "dubbelcon");
|
||||
#define( INFORMATIONS_URL, "http://drop-am-see.de/Gelaende");
|
||||
|
||||
date_default_timezone_set('Europe/Berlin');
|
||||
setlocale(LC_TIME, "de_DE.UTF-8");
|
||||
$start_date = new DateTimeImmutable("2023-05-18");
|
||||
define ('TAGE_DAUER', 4);
|
||||
|
||||
// Geheimer Schlüssel für die Verschlüsselung von Tokens
|
||||
// das ist das Passwort, mit dem sich aus den Tokens auch wieder der Username/Email extrahieren lässt
|
||||
|
||||
# $secret_key = "irgendwasZufaelliges";
|
||||
// Geheimes Wort, das an die Email angehaengt wird, um zu ueberpruefen, dass die Addresse nicht abgeschnitten ist
|
||||
// das Wort darf kein "|" enthalten, das wird als Trenner verwendet
|
||||
|
||||
# $secret_verification = "irgendwasanderes,istegalwas";
|
||||
// urlprefix: https Addresse des php Scripts, das die Tokens empfaengt und einen Account anlegt
|
||||
// volle URL, da sie u.a. per Email ersetzt wird
|
||||
|
||||
# $urlprefix="https://meinserver.de/2023dev/UrlLogin.php";
|
||||
|
||||
|
||||
|
||||
|
||||
// muss nicht angepasst werden // no changes needed
|
||||
// Zeitbereich: -1 davor, 0 kein Limit, 1-N Tag N der Con, 1000: nach der Con
|
||||
$ZeitBereichWerte=range(-1,TAGE_DAUER);
|
||||
array_push($ZeitBereichWerte,1000);
|
||||
define('ZEITBEREICHWERTE', $ZeitBereichWerte);
|
||||
$TageNamenDeutsch=array("So","Mo","Di","Mi","Do","Fr","Sa");
|
||||
|
||||
//Kalender-Konfiguration
|
||||
$dsn = "mysql:host=localhost;dbname=".MYSQL_DATENBANK; # dsn fuer Kalender
|
||||
$options = array(
|
||||
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
);
|
||||
|
||||
|
||||
?>
|
||||