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..4a9e3be 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){
@@ -264,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']."\",".
diff --git a/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload b/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload
index 21cb1cd..1beed8a 100644
--- a/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload
+++ b/homepage/redesign2018/markdownExperiment/src/Makefiles/Makefile.ftpUpload
@@ -32,7 +32,11 @@ ftpUpload:
lftp -e 'set ftp:ssl-allow no; set net:limit-rate $(lftpNetLimitRate); 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/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;
+}
+
diff --git a/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php b/homepage/redesign2018/markdownExperiment/src/galleryHelper/vidGal.php
index 5342530..6970cf0 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 100755
--- 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***'))
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/showEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php
index 0f9ef97..97e68c5 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 = getWkEventData($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/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 9364e58..98a761d 100644
--- a/homepage/redesign2018/markdownExperiment/wkParticipo/index.php
+++ b/homepage/redesign2018/markdownExperiment/wkParticipo/index.php
@@ -205,6 +205,7 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
"UTF-8"));
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
+ Wettkampfplanung - Wettkampfdetails
@@ -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();
-?>
-
-
|