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;
+}
+
|