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:
@@ -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){
|
||||
|
||||
Reference in New Issue
Block a user