From c3a324fa4e3741bef2030d9dd33c5bb00478c5ac Mon Sep 17 00:00:00 2001 From: marko Date: Fri, 23 Nov 2018 12:00:18 +0100 Subject: [PATCH 1/4] - Arbeitsversionen modified: homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload modified: homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php modified: homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGalInsert.py --- .../src/Makefiles/Makefile.ftpUpload | 12 +++++++---- .../src/galleryHelper/vidGal.php | 20 +++++++++++-------- .../src/galleryHelper/vidGalInsert.py | 4 +++- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload b/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload index 9fe7b08..064ed7e 100644 --- a/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload +++ b/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload @@ -23,7 +23,11 @@ ftpUpload: lftp -e 'set net:limit-rate 25600; mkdir -f $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR); mkdir -f $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/thumbnails; mkdir -f $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/webm; put $(vidGalIndexPhp) -o $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/index.php; put videos/config.inc.php -o $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/config.inc.php; mirror $(dryRun) $(timeHandling) -R videos/thumbnails $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/thumbnails; mirror $(dryRun) $(timeHandling) -R videos/webm $(ftpPathBase)/$(ftpFilePath)/$(VID_GAL_DIR)/webm; quit; ' \ -u $(ftpUser),$(ftpPassword) ftp://$(ftpServer) - for file in videos/webm/*; do \ - filename=$${file##*/}; \ - $(vidGalInsertScript) --shiaiYamlFile=./shiaiData.yaml --vidUrl="http://cwsvjudo-media-2018.unaux.com/$(ftpFilePath)/$(VID_GAL_DIR)/webm/$${filename}" --checkSum=$${filename%.*};\ - done;\ +# for file in videos/webm/*; do \ +# filename=$${file##*/}; \ +# $(vidGalInsertScript) \ +# --shiaiYamlFile=./shiaiData.yaml \ +# --vidUrl="http://cwsvjudo-media-2018.unaux.com/$(ftpFilePath)/$(VID_GAL_DIR)/webm/$${filename}" \ +# --posterUrl="http://cwsvjudo-media-2018.unaux.com/$(ftpFilePath)/$(VID_GAL_DIR)/thumbnails/$${filename%.*}.jpg" \ +# --checkSum=$${filename%.*};\ +# done;\ diff --git a/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php b/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php index f88279e..9513974 100644 --- a/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php +++ b/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php @@ -18,29 +18,33 @@ if($_GET['action'] == "INSERT"){ $wkId = $_GET['wkId']; $checkSum = urldecode( $_GET['checkSum'] ); $vidUrl = urldecode( $_GET['vidUrl'] ); + $posterUrl = urldecode( $_GET['posterUrl'] ); - echo("CheckSum is ".$checkSum); - echo("vidUrl is ".$vidUrl); + echo("CheckSum is ".$checkSum."\n"); + echo("vidUrl is ".$vidUrl."\n"); + echo("posterUrl is ".$posterUrl."\n"); $vidQuery = $cwsvJudoDbConnection->prepare( - "INSERT IGNORE INTO cwsvjudo.`shiai.videos` ( wkId, checkSum, url ) VALUES ( :wkId, HEX(:checkSum), :vidUrl);" + "INSERT IGNORE INTO cwsvjudo.`shiai.videos` ( wkId, checkSum, url, posterUrl ) VALUES ( :wkId, UNHEX(:checkSum), :vidUrl, :posterUrl );" ); $vidQuery->bindParam(':wkId', intval($wkId), PDO::PARAM_INT); $vidQuery->bindParam(':checkSum', $checkSum ); $vidQuery->bindParam(':vidUrl', $vidUrl ); - + $vidQuery->bindParam(':posterUrl', $posterUrl ); + echo("INSERT IGNORE INTO cwsvjudo.`shiai.videos` ( wkId, checkSum, url, posterUrl ) VALUES ( ".$wkId.", UNHEX('".$checkSum."' ), '".$vidUrl."', '".$posterUrl."' );\n"); $vidQuery->execute(); $vidQuery = $cwsvJudoDbConnection->prepare( - "UPDATE cwsvjudo.`shiai.videos` SET wkId=:wkId, url=:vidUrl WHERE checkSum=HEX( :checkSum );" + "UPDATE cwsvjudo.`shiai.videos` SET wkId=:wkId, url=:vidUrl, posterUrl=:posterUrl WHERE checkSum=UNHEX( :checkSum );" // "UPDATE cwsvjudo.`shiai.videos` url=:vidUrl WHERE checkSum=HEX(:checkSum);" ); $vidQuery->bindParam(':wkId', intval($wkId), PDO::PARAM_INT); $vidQuery->bindParam(':checkSum', $checkSum ); $vidQuery->bindParam(':vidUrl', $vidUrl ); - + $vidQuery->bindParam(':posterUrl', $posterUrl ); + echo( "UPDATE cwsvjudo.`shiai.videos` SET wkId=".$wkId.", url='".$vidUrl."', posterUrl='".$posterUrl."' WHERE checkSum=UNHEX( '".$checkSum."' );\n"); $vidQuery->execute(); } @@ -64,8 +68,8 @@ if($_GET['action'] == "INSERT"){ diff --git a/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGalInsert.py b/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGalInsert.py index 7027920..d2bc080 100644 --- a/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGalInsert.py +++ b/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGalInsert.py @@ -13,6 +13,7 @@ argParser = argparse.ArgumentParser() #argParser.add_argument("wkId", type=int) argParser.add_argument("--checkSum") argParser.add_argument("--vidUrl") +argParser.add_argument("--posterUrl") argParser.add_argument("--shiaiYamlFile") argv = argParser.parse_args() @@ -26,7 +27,8 @@ payLoad = { 'action' : "INSERT", 'wkId' : shiaiData['wkId'], 'checkSum': urllib.parse.quote(argv.checkSum), - 'vidUrl' : urllib.parse.quote(argv.vidUrl) + 'vidUrl' : urllib.parse.quote(argv.vidUrl), + 'posterUrl' : urllib.parse.quote(argv.posterUrl) } r = requests.get('http://cwsvjudo.bplaced.net/admin/vidGal.php', params=payLoad, auth=('marko', '***REMOVED***')) From 21922347d34e2e16c1c9644cc464ec800193bf95 Mon Sep 17 00:00:00 2001 From: marko Date: Thu, 29 Nov 2018 15:52:09 +0100 Subject: [PATCH 2/4] Ereignisse brauchen nicht mehr zwingend einen Wettkampf im Wettkampfkalender MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Die Ereignisse wurden um ihr Datum erweitert - Daten, die sonst aus dem Wettkampfeintrag des zugehörigen Wettkampfes gezogen worden wären, müssen jetzt als json in die Bemerkunksspalte geschrieben werden - Events ohne zugehörigen Wettkampf im Wettkampfkalender müssen momentan noch per Hand eingefügt werden. Es gibt keine Oberfläche dafür. Changes to be committed: modified: addFahrt.php modified: addStarter.php modified: addStarterDev.php modified: admin/adminAddStarter.php modified: admin/newsLetter.php modified: admin/showEvent.php modified: admin/showFahrt.php modified: auth.php modified: authLogin.php modified: index.php modified: lib/wkParticipoLib.inc.php modified: showWkEvent.php --- .../wkParticipo/addFahrt.php | 4 +- .../wkParticipo/addStarter.php | 3 +- .../wkParticipo/addStarterDev.php | 2 +- .../wkParticipo/admin/adminAddStarter.php | 2 +- .../wkParticipo/admin/newsLetter.php | 133 ++++++++++++------ .../wkParticipo/admin/showEvent.php | 17 +-- .../wkParticipo/admin/showFahrt.php | 4 +- .../markdownExperiment/wkParticipo/auth.php | 5 +- .../wkParticipo/authLogin.php | 4 +- .../markdownExperiment/wkParticipo/index.php | 1 + .../wkParticipo/lib/wkParticipoLib.inc.php | 36 +++-- .../wkParticipo/showWkEvent.php | 55 +++++--- 12 files changed, 181 insertions(+), 85 deletions(-) diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php index d731494..a7dfa59 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php @@ -33,7 +33,7 @@ "Neue Fahrt für eventId " . $_POST['f']['eventId'] . " mit " . $_POST['f']['anzPlaetze'] . " hinzugefügt"; $userData = getUserData($mysqli, $_SESSION['user']['userId']); - $eventData = getEventData($mysqli, $_POST['f']['eventId']); + $eventData = getWkEventData($mysqli, $_POST['f']['eventId']); $wkData = getWkData($mysqli, $eventData['wkId']); $notificationMail['to'] = $userData['eMail']; @@ -74,7 +74,7 @@ $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; } - $eventData = getEventData($mysqli, $_POST['f']['eventId']); + $eventData = getWkEventData($mysqli, $_POST['f']['eventId']); $wkData = getWkData($mysqli, $eventData['wkId']); ?>
diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php index 7201661..6f8682b 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php @@ -20,7 +20,7 @@ $message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."
$wkEventData['meldefrist']){ $message['error'] .= "Die Meldefrist ist bereits abgelaufen!
"; @@ -56,6 +56,7 @@ } } else{ + // @todo hier müsste das Auslösen der Meldung $userData = getUserData($mysqlConn, $_SESSION['user']['userId']); $starterData = getUserData($mysqlConn, $_POST['f']['userId']); // $wkData = getWkData($mysqlConn, $eventData['wkId']); diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php index 4eba386..347420a 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php @@ -19,7 +19,7 @@ $message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."
$wkEventData['meldefrist']){ $message['error'] .= "Die Meldefrist ist bereits abgelaufen!
"; diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php index f2f98c7..26157c9 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php @@ -22,7 +22,7 @@ $message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."
$wkEventData['meldefrist']){ $message['error'] .= "Die Meldefrist ist bereits abgelaufen!
"; diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php index 2cff8ff..0c778ed 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php @@ -18,41 +18,72 @@ // print_r($eMailAdresses);die(); $queryForEinschreibefristen = - "SELECT cwsvjudo.wettkampfkalender.lfdeNr, ". - "cwsvjudo.wettkampfkalender.Datum, ". - "cwsvjudo.wettkampfkalender.Veranstaltung, ". - "cwsvjudo.wettkampfkalender.Altersklassen, ". - "cwsvjudo.wkParticipo_Events.id, ". - "cwsvjudo.wkParticipo_Events.meldefrist, ". - "cwsvjudo.wkParticipo_Events.wkId, ". - "cwsvjudo.wkParticipo_Events.bemerkungen ". - "FROM cwsvjudo.wettkampfkalender JOIN cwsvjudo.wkParticipo_Events ". - "ON cwsvjudo.wettkampfkalender.lfdeNr = cwsvjudo.wkParticipo_Events.wkId ". - "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ". -// "WHERE cwsvjudo.wkParticipo_Events.meldefrist > DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 4 WEEK) ". -// "WHERE wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND wkParticipo_Events.meldefrist >= CURDATE() ". - "ORDER BY wkParticipo_Events.meldefrist;"; + "SELECT ". + "cwsvjudo.wkParticipo_Events.id, ". + "cwsvjudo.wkParticipo_Events.date, ". + "cwsvjudo.wkParticipo_Events.meldefrist, ". + "cwsvjudo.wkParticipo_Events.wkId, ". + "cwsvjudo.wkParticipo_Events.bemerkungen, ". + "cwsvjudo.wettkampfkalender.lfdeNr, ". + "cwsvjudo.wettkampfkalender.Datum, ". + "cwsvjudo.wettkampfkalender.Veranstaltung, ". + "cwsvjudo.wettkampfkalender.Altersklassen ". + "FROM ". + "cwsvjudo.wkParticipo_Events LEFT JOIN cwsvjudo.wettkampfkalender ". + "ON cwsvjudo.wkParticipo_Events.wkId = cwsvjudo.wettkampfkalender.lfdeNr ". + "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ". + "ORDER BY wkParticipo_Events.meldefrist;"; $ergebnisEinschreibefristen = $mysqlConn->query( $queryForEinschreibefristen ); - - $dringendeEinschreibeFristen = $ergebnisEinschreibefristen->fetchAll(); + $someOptions=array(); + if( empty($someOptions['dbCharset']) ) $someOptions['dbCharset'] = "ISO-8859-1"; + //if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "UTF-8";// das spätere, gewünschte Verhalten + if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "ISO-8859-1"; + $dringendeEinschreibeFristen = array(); + if( !empty($ergebnisEinschreibefristen) ){ + while( $result = $ergebnisEinschreibefristen->fetch() ){ + array_walk( + $result, + function (&$value, $key, $someOptions) { + $value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value); + }, + $someOptions + ); + array_push( $dringendeEinschreibeFristen, $result); + } + } + $queryForEinschreibefristen = - "SELECT cwsvjudo.wettkampfkalender.lfdeNr, ". - "cwsvjudo.wettkampfkalender.Datum, ". - "cwsvjudo.wettkampfkalender.Veranstaltung, ". - "cwsvjudo.wettkampfkalender.Altersklassen, ". - "cwsvjudo.wkParticipo_Events.id, ". - "cwsvjudo.wkParticipo_Events.meldefrist, ". - "cwsvjudo.wkParticipo_Events.wkId, ". - "cwsvjudo.wkParticipo_Events.bemerkungen ". - "FROM cwsvjudo.wettkampfkalender JOIN cwsvjudo.wkParticipo_Events ". - "ON cwsvjudo.wettkampfkalender.lfdeNr = cwsvjudo.wkParticipo_Events.wkId ". -// "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ". - "WHERE cwsvjudo.wkParticipo_Events.meldefrist > DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 4 WEEK) ". - "ORDER BY wkParticipo_Events.meldefrist;"; + "SELECT ". + "cwsvjudo.wkParticipo_Events.id, ". + "cwsvjudo.wkParticipo_Events.date, ". + "cwsvjudo.wkParticipo_Events.meldefrist, ". + "cwsvjudo.wkParticipo_Events.wkId, ". + "cwsvjudo.wkParticipo_Events.bemerkungen, ". + "cwsvjudo.wettkampfkalender.lfdeNr, ". + "cwsvjudo.wettkampfkalender.Datum, ". + "cwsvjudo.wettkampfkalender.Veranstaltung, ". + "cwsvjudo.wettkampfkalender.Altersklassen ". + "FROM ". + "cwsvjudo.wkParticipo_Events LEFT JOIN cwsvjudo.wettkampfkalender ". + "ON cwsvjudo.wkParticipo_Events.wkId = cwsvjudo.wettkampfkalender.lfdeNr ". + "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 4 WEEK) ". + "ORDER BY wkParticipo_Events.meldefrist;"; $ergebnisEinschreibefristen = $mysqlConn->query( $queryForEinschreibefristen ); - $weitereEinschreibefristen = $ergebnisEinschreibefristen->fetchAll(); + $weitereEinschreibefristen = array(); + if( !empty($ergebnisEinschreibefristen) ){ + while( $result = $ergebnisEinschreibefristen->fetch() ){ + array_walk( + $result, + function (&$value, $key, $someOptions) { + $value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value); + }, + $someOptions + ); + array_push( $weitereEinschreibefristen, $result); + } + } $mysqlConn = NULL; } @@ -82,13 +113,24 @@ $newsletter['message'] .= "Keine!\r\n"; foreach( $dringendeEinschreibeFristen as $event ){ - $newsletter['message'] .= "\tDatum: ".mb_convert_encoding($event['Datum'], 'UTF-8', 'ISO-8859-1')."\r\n"; - $newsletter['message'] .= "\tWettkampf: ".html_entity_decode(mb_convert_encoding($event['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))."\r\n"; - $newsletter['message'] .= "\tAltersklassen: ".mb_convert_encoding($event['Altersklassen'], 'UTF-8', 'ISO-8859-1')."\r\n"; - $newsletter['message'] .= "\tMeldefrist: ".mb_convert_encoding($event['meldefrist'], 'UTF-8', 'ISO-8859-1')."\r\n"; +// var_dump($event); + if(!empty($event['bemerkungen'])){ + $tmpJson = json_decode( mb_convert_encoding($event['bemerkungen'], 'UTF-8', 'ISO-8859-1'), true); + if($tmpJson){ + $event['Datum'] = $tmpJson['Datum']; + $event['Veranstaltung'] = $tmpJson['Veranstaltung']; + $event['Altersklassen'] = $tmpJson['Altersklassen']; + $event['bemerkungen'] = $tmpJson['bemerkungen']; + } + } + + $newsletter['message'] .= "\tDatum: ".$event['Datum']."\r\n"; + $newsletter['message'] .= "\tWettkampf: ".html_entity_decode( $event['Veranstaltung'] )."\r\n"; + $newsletter['message'] .= "\tAltersklassen: ".$event['Altersklassen']."\r\n"; + $newsletter['message'] .= "\tMeldefrist: ".$event['meldefrist']."\r\n"; $newsletter['message'] .= "\tLink: http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$event['id']."\r\n"; - if(!empty($event['bemerkungen'])) - $newsletter['message'] .= "\tBemerkungen: ".$event['bemerkungen']."\r\n"; + if( !empty($event['bemerkungen']) ) + $newsletter['message'] .= "\tBemerkungen: ".$event['bemerkungen']."\r\n"; $newsletter['message'] .= "\t\r\n"; } @@ -97,10 +139,21 @@ $newsletter['message'] .= "Erstmal Keine\r\n"; foreach( $weitereEinschreibefristen as $event ){ - $newsletter['message'] .= "\tDatum: ".mb_convert_encoding($event['Datum'], 'UTF-8', 'ISO-8859-1')."\r\n"; - $newsletter['message'] .= "\tWettkampf: ".html_entity_decode(mb_convert_encoding($event['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))."\r\n"; - $newsletter['message'] .= "\tAltersklassen: ".mb_convert_encoding($event['Altersklassen'], 'UTF-8', 'ISO-8859-1')."\r\n"; - $newsletter['message'] .= "\tMeldefrist: ".mb_convert_encoding($event['meldefrist'], 'UTF-8', 'ISO-8859-1')."\r\n"; +// var_dump($event); + if(!empty($event['bemerkungen'])){ + $tmpJson = json_decode( mb_convert_encoding($event['bemerkungen'], 'UTF-8', 'ISO-8859-1'), true); +// var_dump( $tmpJson, json_decode( $event['bemerkungen'], true) ); + if($tmpJson){ + $event['Datum'] = $tmpJson['Datum']; + $event['Veranstaltung'] = $tmpJson['Veranstaltung']; + $event['Altersklassen'] = $tmpJson['Altersklassen']; + $event['bemerkungen'] = $tmpJson['bemerkungen']; + } + } + $newsletter['message'] .= "\tDatum: ".$event['Datum']."\r\n"; + $newsletter['message'] .= "\tWettkampf: ".html_entity_decode( $event['Veranstaltung'] )."\r\n"; + $newsletter['message'] .= "\tAltersklassen: ".$event['Altersklassen']."\r\n"; + $newsletter['message'] .= "\tMeldefrist: ".$event['meldefrist']."\r\n"; $newsletter['message'] .= "\tLink: http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$event['id']."\r\n"; if(!empty($event['bemerkungen'])) $newsletter['message'] .= "\tBemerkungen: ".$event['bemerkungen']."\r\n"; diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php index 37c2f19..e114990 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php @@ -16,19 +16,20 @@ } else{ if( (string)(int)$_POST['f']['eventId'] == $_POST['f']['eventId'] ){ - $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); - if ($mysqli->connect_error) { - $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqlConn->connect_error) { + $sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; } else{ // Abfrage der Eventdaten - $eventData = getEventData($mysqli, $_POST['f']['eventId']); + $eventData = getWkEventData($mysqlConn, $_POST['f']['eventId'], array('outCharset'=>"UTF-8")); if( empty($eventData) ) $message['error'] = 'Fehler: keine Eventdaten zurückgeliefert!'; else{ - // Abfrage der Starterdaten des Events - $starterData = getStarterForEvent($mysqli, $eventData['id']); - // Abfrage der Fahrtdaten des Events - $fahrten = getFahrtenForEvent($mysqli, $eventData['id']); + // Abfrage der Starterdaten des Events + $starterData = getStarterForEvent($mysqlConn, $eventData['id']); + // Abfrage der Fahrtdaten des Events + $fahrten = getFahrtenForEvent($mysqlConn, $eventData['id']); } } } diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php index 8b13169..e956c27 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php @@ -21,7 +21,7 @@ $message['error'] .= "fahrtId \"".$_POST['f']['fahrtId']."\" nicht gefunden
"; } else{ - $event = getEventData($mysqli, $fahrt['eventId']); + $event = getWkEventData($mysqli, $fahrt['eventId']); if( empty($event) ){ $message['error'] .= "eventId \"".$fahrt['eventId']."\" nicht gefunden
"; } @@ -58,7 +58,7 @@ $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; } else{ - $eventData = getEventData($mysqli, $_POST['f']['eventId']); + $eventData = getWkEventData($mysqli, $_POST['f']['eventId']); if( empty($eventData) ) $message['error'] = 'Fehler: keine Eventdaten zurückgeliefert!'; } } diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php b/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php index d6b7056..93206fa 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php @@ -1,5 +1,7 @@ 86400, // 86400s sind 24h + ]); session_regenerate_id(); // Falls der serverseitige Logincookie nicht gesetzt ist, leite zur if (empty($_SESSION['login'])) { @@ -12,6 +14,5 @@ "Sie sind als ".htmlspecialchars($_SESSION['user']['username'])." angemeldet.
". "Sitzung beenden". "
"; - //
".var_export($_SESSION, true)."
"; } ?> diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php b/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php index c1bdb81..76073ae 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php @@ -1,5 +1,7 @@ 86400, // 86400s sind 24h + ]); session_regenerate_id(); // Falls der serverseitige Logincookie nicht gesetzt ist, leite zur if (empty($_SESSION['login'])){ diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/index.php b/homepage/redesign2018/markdownExperiment/wkParticipo/index.php index 0ebb60d..73ac27a 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/index.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/index.php @@ -204,6 +204,7 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); "UTF-8")); diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php index 1388387..a291e12 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php @@ -269,6 +269,7 @@ function getFahrtData($anMysqlConn, $anFahrtId){ return $ret; } +/* function getEventData($anMysqlConn, $anEventId){ $ret = array(); if( (string)(int)$anEventId != $anEventId ) return $ret; @@ -276,6 +277,7 @@ if( (string)(int)$anEventId != $anEventId ) return $ret; $query = sprintf( "SELECT ". "wkParticipo_Events.id, ". + "wkParticipo_Events.date, ". "wkParticipo_Events.wkId, ". "wkParticipo_Events.meldefrist, ". "wkParticipo_Events.bemerkungen, ". @@ -286,7 +288,8 @@ if( (string)(int)$anEventId != $anEventId ) return $ret; "wettkampfkalender.Ausschreibung, ". "wettkampfkalender.Routenplaner ". "FROM wkParticipo_Events ". - "JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "LEFT JOIN wettkampfkalender ". + "ON wkParticipo_Events.wkId = wettkampfkalender.lfdeNr ". "WHERE wkParticipo_Events.id = '%s';", $anMysqlConn->real_escape_string($anEventId) ); $results = $anMysqlConn->query($query); @@ -294,7 +297,7 @@ if( (string)(int)$anEventId != $anEventId ) return $ret; /// @ToDo: Anzahl Ergebnise auf ==1 testen $ret = $results->fetch_assoc(); return $ret; -} +}*/ /// Daten eines einzelnen wkEvents via eventId abfragen /// @@ -306,6 +309,8 @@ return $ret; /// function getWkEventData($anMysqlConn, $anEventId, $someOptions = array()){ +//var_dump($anMysqlConn, $anEventId, $someOptions); + if( empty($someOptions['dbCharset']) ) $someOptions['dbCharset'] = "ISO-8859-1"; if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "UTF-8"; @@ -326,7 +331,7 @@ if( (string)(int)$anEventId != $anEventId ) return $ret; "wettkampfkalender.Ausschreibung, ". "wettkampfkalender.Routenplaner ". "FROM wkParticipo_Events ". - "JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "LEFT JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". "WHERE wkParticipo_Events.id = '%s';", $anMysqlConn->real_escape_string($anEventId) ); @@ -375,6 +380,7 @@ $ret = array(); $query = sprintf( "SELECT ". "wkParticipo_Events.id, ". + "wkParticipo_Events.date, ". "wkParticipo_Events.wkId, ". "wkParticipo_Events.meldefrist, ". "wkParticipo_Events.bemerkungen, ". @@ -386,10 +392,11 @@ $ret = array(); "wettkampfkalender.Ausschreibung, ". "wettkampfkalender.Routenplaner ". "FROM wkParticipo_Events ". - "JOIN wettkampfkalender ". + "LEFT JOIN wettkampfkalender ". "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". - "WHERE wettkampfkalender.Datum >= CURDATE() ". - "ORDER BY wettkampfkalender.Datum;" + "WHERE wettkampfkalender.Datum IS NULL OR wettkampfkalender.Datum >= CURDATE() ". +// "ORDER BY wettkampfkalender.Datum;" + "ORDER BY wkParticipo_Events.date;" ); // echo($query);die(); $results = $anMysqlConn->query($query); @@ -412,7 +419,6 @@ $ret = array(); ); array_push( $ret, $result); } - return $ret; } @@ -479,6 +485,8 @@ return $ret; /// Zukünftige Wettkämpfe abfragen +/// +/// - Fragt in der Zukunft liegende Wettkämpfe aus dem Wettkampfkalender ab function getCommingWk($anMysqlConn){ $ret = array(); $anMysqlConn->query("USE cwsvjudo;"); @@ -927,7 +935,7 @@ $retMessage = array(); return $retMessage; } - $event = getEventData($anMysqlConn, $anEventId); + $event = getWkEventData($anMysqlConn, $anEventId); if( empty($event) ){ $retMessage['error'] .= "eventId ".$anEventId." nicht gefunden
"; return $retMessage; @@ -969,7 +977,7 @@ $retMessage = array(); return $retMessage; } - $event = getEventData($anMysqlConn, $anEventId); + $event = getWkEventData($anMysqlConn, $anEventId); if( empty($event) ){ $retMessage['error'] .= "eventId ".$anEventId." nicht gefunden
"; return $retMessage; @@ -1204,6 +1212,16 @@ function htmlWkEvent($aWkEvent, $starters, $fahrten){ $retHtml = ""; +if( empty($aWkEvent['wkId']) ){ + $tmpWkEvent = json_decode($aWkEvent['bemerkungen'], true); +// var_dump( $tmpWkEvent ); +// var_dump( json_decode($aWkEvent['bemerkungen'], true) ); + $aWkEvent['Datum'] = $tmpWkEvent['Datum']; + $aWkEvent['Veranstaltung'] = $tmpWkEvent['Veranstaltung']; + $aWkEvent['Altersklassen'] = $tmpWkEvent['Altersklassen']; + $aWkEvent['bemerkungen'] = $tmpWkEvent['bemerkungen']; +} + if( empty($aWkEvent['Datum']) ) $aWkEvent['Datum'] = "0000-00-00"; $anzPlätze = 0; diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php index 752fe58..e70fd60 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php @@ -1,9 +1,17 @@ connect_error; } else{ - $eventData = getEventData($mysqli, $_GET['eventId']); + $eventData = getWkEventData($mysqli, $_GET['eventId']); if( empty($eventData) ) $message['error'] .= 'Fehler: keine Eventdaten zurückgeliefert!'; + else{ + if(!empty($eventData['bemerkungen'])){ + $tmpJson = json_decode( $eventData['bemerkungen'], true); + if($tmpJson){ + $eventData['Datum'] = $tmpJson['Datum']; + $eventData['Veranstaltung'] = $tmpJson['Veranstaltung']; + $eventData['Altersklassen'] = $tmpJson['Altersklassen']; + $eventData['Routenplaner'] = $tmpJson['Routenplaner']; + $eventData['Ausschreibung'] = $tmpJson['Ausschreibung']; + $eventData['bemerkungen'] = $tmpJson['bemerkungen']; + } + } + PHPCount::AddHit( + "Wettkampfplaner ". + ($_SESSION['user']['username']?("(".htmlspecialchars($_SESSION['user']['username']).") "):""). + "- ".$eventData['Veranstaltung'] + ); + } } } else $message['error'] .= "Fehler: eventId ist kein Int (".$_GET['eventId'].")"; @@ -34,7 +60,7 @@ - Wettkampfplanung - Wettkampfdetails<?php echo (empty($eventData) ? "" : " ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'));?> + Wettkampfplanung - Wettkampfdetails<?php echo( empty($eventData) ? "" : " ".$eventData['Veranstaltung'] );?> @@ -55,15 +81,15 @@ } else{ ?> -

+

Wettkampfdaten

@@ -85,7 +111,7 @@
  • - +
    Termin in den Google Calendar übernehmen
  • @@ -179,7 +205,7 @@ echo ""; if (!empty($_SESSION['login'])){ - echo( "

    Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (Email an cwsvjudo@arcor.de).

    " ); + echo( "

    Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (Email an cwsvjudo@arcor.de).

    " ); } } else{ @@ -232,13 +258,6 @@ } } if($mysqli) $mysqli->close(); -?> - - From d6d3d983c3a515d9df2aacdd48e322157501bcec Mon Sep 17 00:00:00 2001 From: marko Date: Thu, 29 Nov 2018 15:59:11 +0100 Subject: [PATCH 3/4] Funktionen zum Konvertieren der unterschiedlichen Altereklassenformate in Jahrgangsintervalle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Spielwiese new file: admin/ak2jg.php - Zwei Funktionen hinzugefügt (ak2..) modified: phpLib/cwsvJudo/wkKalender.php - Bonus: die Jahrgangsintervalle als Tooltip im Kalender modified: src/css/cwsvJudo-2018-wkKalender.css --- .../markdownExperiment/admin/ak2jg.php | 58 +++++++++++++ .../phpLib/cwsvJudo/wkKalender.php | 82 ++++++++++++++++++- .../src/css/cwsvJudo-2018-wkKalender.css | 36 ++++++++ 3 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 homepage/redesign2018/markdownExperiment/admin/ak2jg.php diff --git a/homepage/redesign2018/markdownExperiment/admin/ak2jg.php b/homepage/redesign2018/markdownExperiment/admin/ak2jg.php new file mode 100644 index 0000000..0cced4a --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/admin/ak2jg.php @@ -0,0 +1,58 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $akQuery = + $cwsvJudoDbConnection->prepare( + "SELECT lfdeNr, Datum, Veranstaltung, Altersklassen FROM cwsvjudo.`wettkampfkalender` WHERE DATUM > CURRENT_DATE() ORDER BY Datum ASC, lfdeNr ASC LIMIT 24;" + ); + + $akQuery->execute(); + $wkList = $akQuery->fetchAll(PDO::FETCH_ASSOC); + + // Zeichensatzkonvertierung + $someOptions = array(); + if( empty($someOptions['dbCharset']) ) + $someOptions['dbCharset'] = "ISO-8859-1"; + if( empty($someOptions['outCharset']) ) + $someOptions['outCharset'] = "UTF-8"; + + foreach($wkList as &$entry){ + array_walk( + $entry, + function (&$value, $key, $someOptions) { + $value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value); + }, + $someOptions + ); + } + +?> + + + + + + + +"); + } +?> +
    ".$wk['lfdeNr']."".$wk['Datum']."".$wk['Veranstaltung']."".$wk['Altersklassen']."".json_encode($jg)."
    + + diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php index 7437f24..c9ba62c 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php @@ -10,6 +10,7 @@ function echoWkTitle(){ ); } /// Einen Wettkampfnamen per ID abfragen + function getWkName( $wkId, $alternative="Judo-Wettkampf" ){ if( !is_positive_integer($wkId) ) return $alternative; @@ -215,8 +216,8 @@ $htmlWkTableString = ""; "". "".$wk['Ort']."". "". - "". - $wk['Altersklassen']. + "". + $wk['Altersklassen']."".json_encode(akListString2jgArray($wk['Altersklassen']))."". "". "". "iCal". @@ -251,6 +252,83 @@ function nicerAkList($akArray){ return $ret; } +/// Als String gegebene Altersklassen als Jahrgangsintervalle +/// ausdrücken +function akListString2jgArray($akListString, $year = NULL ){ +$ret = array(); + +if($year==NULL) + $year=date("Y"); +else{ + if( !((int)$year == $year && (int)$year >= 0) ) + $year=date("Y"); +} + +$year = (int)$year; + +foreach(explode(" ", $akListString) as $ak) + array_push( + $ret, + akString2jgIntervall($ak, $year) + ); + +return $ret; +} + + +/// Aus einer als String gegebenen Altersklasse ein Jahrgangsintervall +/// machen +function akString2jgIntervall($akString, $year){ +$ret= array(NULL, NULL); + +// Speziell für die Ux-Altersklassen +// Es fehlt noch das <=U +$akUmatchString = "/(.*)U(.*)/"; + +$matches = array(); + +preg_match($akUmatchString, $akString, $matches); +// Wenn wir nicht den gesamten akString Matchen ist etwas schief +// gelaufen +if($matches[0]==$akString){ +// Das ausgelesene Alter der Ux sollte eine positive Integer sein, +// sonst ist was schiefgelaufen + $ageLimit = (int)$matches[2]; + if( ($ageLimit == $matches[2] && $ageLimit > 0) ){ + $ret[0] = $year-$ageLimit+1; + + if($matches[1] == "") + $ret[1] = $year-$ageLimit+2; + else{ + if($matches[1] == "-") + $ret[1] = $year-$ageLimit+3; + else{ + if($matches[1] == "--") + $ret[1] = $year-$ageLimit+4; + } + } + } + return $ret; +} + +// Speziell Altersklassen der Form Jg.x-y +$akUmatchString = "/Jg\.(.*)\-(.*)/"; + +$matches = array(); + +preg_match($akUmatchString, $akString, $matches); +// Wenn wir nicht den gesamten akString Matchen ist etwas schief +// gelaufen +if($matches[0]==$akString){ + $ret[0]=(int)$matches[1]; + $ret[1]=(int)$matches[2]; + + return $ret; +} + +return $ret; +} + /// Wettkampfdaten als json-formatierte strukturierte Event-Daten function wkArray2jsonSdEvent($wk){ diff --git a/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-wkKalender.css b/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-wkKalender.css index c75e16c..9b4c6c0 100644 --- a/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-wkKalender.css +++ b/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-wkKalender.css @@ -835,3 +835,39 @@ .wkBoxMediaGallery > *{ flex-basis:50%; } + + +/* + * Tooltipps + */ + +/* Tooltip container */ +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ +} + +/* Tooltip text */ +.tooltip .tooltiptext { + visibility: hidden; + width: 120px; + background-color: black; + color: #fff; + text-align: center; + padding: 5px 0; + border-radius: 6px; + + /* Position the tooltip text - see examples below! */ + position: absolute; + z-index: 1; +} + + +} + +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltip:hover .tooltiptext { + visibility: visible; +} + From 9b1a33ab0ff9187d81f96ad8a842f12b1ecf7063 Mon Sep 17 00:00:00 2001 From: marko Date: Mon, 3 Dec 2018 07:34:34 +0100 Subject: [PATCH 4/4] =?UTF-8?q?In=20die=20strukturierten=20Daten=20des=20W?= =?UTF-8?q?ettkampfeventes=20die=20antretenden=20Altersklassen=20als=20Per?= =?UTF-8?q?formingGroup=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes to be committed: modified: wkKalender.php --- .../markdownExperiment/phpLib/cwsvJudo/wkKalender.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php index c9ba62c..4a9e3be 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php @@ -342,6 +342,10 @@ return // "\"url\": \"http://cwsvjudo.bplaced.net/pages/desktop/verein.wettkampfkalender.php?wkId=".$wk['lfdeNr']."\",". "\"url\": \"http://cwsvjudo.bplaced.net/wkKalender/".$wk['lfdeNr']."/".toAscii( html_entity_decode( $wk['Veranstaltung'] ))."\",". "\"description\": \"Judo-Wettkampf der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\",". + "\"performer\": {". + "\"@type\": \"PerformingGroup\"\,". + "\"name\": \"Judoka der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\"". + "}". "\"location\": {". "\"@type\": \"Place\",". "\"name\": \"".$wk['Ort']."\",".