Funktionen zum Konvertieren der unterschiedlichen Altereklassenformate

in Jahrgangsintervalle

- 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
This commit is contained in:
marko
2018-11-29 15:59:11 +01:00
parent 21922347d3
commit d6d3d983c3
3 changed files with 174 additions and 2 deletions

View File

@@ -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 = "";
"<td data-title=\"Wegbeschreibung\">".
"<a title=\"Wegbeschreibung ".$wk['Veranstaltung']."\" href=\"".$wk['Routenplaner']."\"><span>".$wk['Ort']."</span></a>".
"</td>".
"<td data-title=\"Altersklassen\">".
$wk['Altersklassen'].
"<td data-title=\"Altersklassen\" class=\"tooltip\">".
$wk['Altersklassen']."<span class=\"tooltiptext\">".json_encode(akListString2jgArray($wk['Altersklassen']))."</span>".
"</td>".
"<td data-title=\"iCal\">".
"<a title=\"Termin für ".$wk['Veranstaltung']." in Kalender übernehmen\" href=\"/ressourcen/phpLib/calendar.php?wkID=".$wk['lfdeNr']."\">iCal</a>".
@@ -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){