diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php index 499ca29..d3534c3 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php @@ -2,12 +2,7 @@ setlocale(LC_ALL, 'de_DE.utf8'); function echoWkTitle(){ - echo( - getWkName( - $_GET['wkId'], - "Wettkampfkalender der Judoka des Chemnitzer Freizeit- und Wohngebiets­sportvereines e. V." - ) - ); + echo( getWkName( $_GET['wkId'] ) ); } /// Einen Wettkampfnamen per ID abfragen @@ -34,13 +29,13 @@ if( empty($optionsArray['outCharset']) ) $optionsArray['outCharset'] = "UTF-8"; try{ $pdoStatementForQuerryingWkById = $db_connection->prepare( - "SELECT Veranstaltung FROM cwsvjudo.wettkampfkalender WHERE wettkampfkalender.lfdeNr = :wkId;" + "SELECT Veranstaltung, Datum FROM cwsvjudo.wettkampfkalender WHERE wettkampfkalender.lfdeNr = :wkId;" ); $pdoStatementForQuerryingWkById->bindParam(':wkId', intval($wkId), PDO::PARAM_INT); $pdoStatementForQuerryingWkById->execute(); $ret = $pdoStatementForQuerryingWkById->fetchAll(PDO::FETCH_ASSOC); - return iconv($optionsArray['dbCharset'], $optionsArray['outCharset'], $ret[0]['Veranstaltung']); + return iconv($optionsArray['dbCharset'], $optionsArray['outCharset'], $ret[0]['Veranstaltung']." am ".$ret[0]['Datum']); } catch(PDOException $db_error){ // $siteData['errors'][] = "Error!: " . $db_error->getMessage(); @@ -176,11 +171,9 @@ $htmlWkTableString = ""; } ); - //echo( "locale is ".get_locale() ); - if($lastMonthName != strftime("%B %Y", strtotime($wk['Datum']) )){ $lastMonthName = strftime("%B %Y", strtotime($wk['Datum']) ); - $htmlWkTableString .= "".$lastMonthName.""; + $htmlWkTableString .= "".$lastMonthName.""; } $wkJsonSd = wkArray2jsonSdEvent($wk); @@ -343,9 +336,9 @@ return "\"url\": \"http://cwsvjudo.bplaced.net/wkKalender/".$wk['lfdeNr']."/".toAscii( html_entity_decode( $wk['Veranstaltung'] ))."-am-".$wk['Datum']."\",". "\"description\": \"Judo-Wettkampf der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\",". "\"performer\": {". - "\"@type\": \"PerformingGroup\"\,". + "\"@type\": \"PerformingGroup\",". "\"name\": \"Judoka der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\"". - "}". + "},". "\"location\": {". "\"@type\": \"Place\",". "\"name\": \"".$wk['Ort']."\",". @@ -383,26 +376,25 @@ function wkTableHtml(){ if( !empty($wkInfo) ){ foreach($wkInfo as $wk){ $siteData['mainContent'] .= + "". "

Einzelansicht

". "
". "". "

".$wk['Veranstaltung']."

". wkBoxMediaGalleryHtml($wkGals); -/* - if( !empty($wkGals) ){ - foreach($wkGals as $wkGal){ - // Für den Fall einer ampSeite müssen die imgTags angepasst werden - if( strpos( $_SERVER['ORIG_PATH_TRANSLATED'], "pages/amp" ) !== false ){ - $siteData['mainContent'] .= - "
  • ".( !empty($wkGal['teaserBildUrl'])?(""):"").("
    ".$wkGal['typ']."galerie
    ")."
  • "; - } - else{ - $siteData['mainContent'] .= - "
  • ".( !empty($wkGal['teaserBildUrl'])?(""):"").("
    ".$wkGal['typ']."galerie
    ")."
  • "; - } - } - } -*/ + $siteData['mainContent'] .= "

    Veranstaltungsdaten

    ". "
    ". "
    "; -// echo(wkInfoBoxHtml($wk)); } } else{ @@ -489,6 +480,9 @@ function wkTableHtml(){ } $ergebnis = $db_connection->query($query); + $siteData['mainContent'] .= htmlWkMonthBar($ergebnis); + + $ergebnis = $db_connection->query($query); $siteData['mainContent'] .= wkList2htmlWkTable($ergebnis); $siteData['mainContent'] .= @@ -536,9 +530,21 @@ return; function wkInfoBoxHtml($aWk){ //var_dump($aWk); if(empty($aWk)) return null; -$wkInfoBoxHtml = ""; $wkInfoBoxHtml .= + breadrumbsSd( + array( + array( + 'url'=>"http://cwsvjudo.bplaced.net", 'name'=>"cwsvJudo" + ), + array( + 'url'=>"http://cwsvjudo.bplaced.net/wkKalender", 'name'=>"Wettkampfkalender" + ), + array( + 'url'=>"http://cwsvjudo.bplaced.net/wkKalender/".$aWk['lfdeNr'],'name'=>$aWk['Veranstaltung'] + ) + ) + ). "
    ".wkArray2jsonSdEvent($aWk). "

    Einzelansicht ".$aWk['Veranstaltung']."

    ". "

    Veranstaltungsdaten

    ". @@ -620,4 +626,50 @@ $retHtml .= "
    "; // Ende wkBoxMediaGallery return $retHtml; } +/// Eine Navigationsleiste mit den Wettkampfmonaten einer Wettkampfliste +function htmlWkMonthBar($aWkList){ +setlocale(LC_ALL, 'de_DE.utf8'); + +$wkMonthBar = ""; +$wkMonthBar .= ""; + +return $wkMonthBar; +} + +/// Breadcrumbs als structured Data +/// @param bcList Liste mit Breadcrumbs +function breadrumbsSd($bcList){ + if (is_array($bcList) || is_object($bcList)){ + $bcItemList = array(); + $i=1; + foreach ($bcList as $bcItem){ + $bcItemList[] = array( + '@type' => "ListItem", + 'position' => $i, + 'item' => array( + '@id' => $bcItem['url'], + 'name' => $bcItem['name'] + ) + ); + $i = $i+1; + } + return json_encode(array( + '@context' => "http://schema.org", + '@type' => "BreadcrumbList", + 'itemListElement' => $bcItemList + ), JSON_UNESCAPED_SLASHES); + + } +return "blub"; +} ?> diff --git a/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-content.css b/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-content.css index 4760f72..6c4e51c 100644 --- a/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-content.css +++ b/homepage/redesign2018/markdownExperiment/src/css/cwsvJudo-2018-content.css @@ -3,7 +3,7 @@ */ #content { - overflow: auto; +/* overflow: auto;*/ padding: 1em; background: #FFAE00; } diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipo-userAttribute.php b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipo-userAttribute.php index 23beb0a..a9da008 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipo-userAttribute.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipo-userAttribute.php @@ -9,6 +9,47 @@ $basePath = "/users/cwsvjudo/www"; require_once($basePath."/ressourcen/phpLib/cwsvJudo/miscAssis.php"); +function dbQuery($aDbConnection, $aQueryString, $aBindArray = array(), $someOptions = array( "dbCharset" => "ISO-8859-1", "outCharset" => "UTF-8" ) ){ +//echo("Doing ".$aQueryString); +var_dump($aBindArray); +if( empty($someOptions['dbCharset']) ) $someOptions['dbCharset'] = "ISO-8859-1"; +if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "UTF-8"; +/// @toDo: Bisher wird nur die Rückgabe konvertiert. Eigentlich muss +/// doch auch die Eingabe konvertiert werden. Aber das jetzt +/// umzustellen wird schwer! Die User m Wettkampfplaner sind ja z.B. +/// als UTF8 in latin1(?) gespeichert. + try{ + $pdoStatement = $aDbConnection->prepare( $aQueryString ); + foreach( $aBindArray as $bindName => $bind ){ + $pdoStatement->bindValue( + $bindName, + $bind['value'], + (isset($bind['data_type'])?$bind['data_type']:PDO::PARAM_STR) + ); + } + $pdoStatement->execute(); + $ret = $pdoStatement->fetchAll(PDO::FETCH_ASSOC); + } + catch(PDOException $db_error){ + print "Error!: " . $db_error->getMessage() . "
    "; + return null; + } + //var_dump($ret); +// Zeichensatzkonvertierung + if( is_array($ret) ){ + foreach($ret as &$entry){ + array_walk( + $entry, + function (&$value, $key, $someOptions) { + $value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value); + }, + $someOptions + ); + } + } +return $ret; +} + function array2htmlTableString($anArray){ $ret = ""; if( !is_array($anArray) ) diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php index f586215..6afcfb1 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.inc.php @@ -309,8 +309,6 @@ 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"; @@ -343,21 +341,6 @@ if( (string)(int)$anEventId != $anEventId ) return $ret; // Bei einem leeren Ergebnis (NULL oder leeres Array) soll ein leeres Array zurückgeliefert werden if( empty($ret) ) return array(); -// @todo: nur temporär: fehlende Wettkampdaten aus den Metadaten ergänzen -if( empty($ret['wkId']) ){ - $tmpWkEvent = json_decode($ret['bemerkungen'], true); - if(!empty($tmpWkEvent)){ -// var_dump( $tmpWkEvent ); -// var_dump( json_decode($aWkEvent['bemerkungen'], true) ); - $ret['Datum'] = $tmpWkEvent['Datum']; - $ret['Veranstaltung'] = $tmpWkEvent['Veranstaltung']; - $ret['Altersklassen'] = $tmpWkEvent['Altersklassen']; - $ret['bemerkungen'] = $tmpWkEvent['bemerkungen']; - } -} - - - // Zeichensatzkonvertierung array_walk( $ret, @@ -367,6 +350,23 @@ if( empty($ret['wkId']) ){ $someOptions ); +// @todo: nur temporär: fehlende Wettkampdaten aus den Metadaten ergänzen +if( empty($ret['wkId']) ){ + $tmpWkEvent = json_decode($ret['bemerkungen'], true); +// var_dump($tmpWkEvent, $ret['bemerkungen']); + if(!empty($tmpWkEvent)){ +// var_dump( $tmpWkEvent ); +// var_dump( json_decode($aWkEvent['bemerkungen'], true) ); + $ret['Datum'] = $tmpWkEvent['Datum']; + if($tmpWkEvent['Ort']) + $ret['Ort'] = $tmpWkEvent['Ort']; + if($tmpWkEvent['Routenplaner']) + $ret['Routenplaner'] = $tmpWkEvent['Routenplaner']; + $ret['Veranstaltung'] = $tmpWkEvent['Veranstaltung']; + $ret['Altersklassen'] = $tmpWkEvent['Altersklassen']; + $ret['bemerkungen'] = $tmpWkEvent['bemerkungen']; + } +} return $ret; } @@ -379,7 +379,6 @@ return $ret; /// selber. /// Der Rückgabewert sollte vor Verwendung (und zur Fehlerbeheandlung) /// auf NULL und/oder leeres Array getestet werden. -/// function getCommingWkEvents($anMysqlConn, $someOptions=array() ){ // wir befinden uns in der Übergangsphase: @@ -410,7 +409,9 @@ $ret = array(); "FROM wkParticipo_Events ". "LEFT JOIN wettkampfkalender ". "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". - "WHERE wettkampfkalender.Datum IS NULL OR wettkampfkalender.Datum >= CURDATE() ". +// quickhack; muss noch getestet werden +// "WHERE wettkampfkalender.Datum IS NULL OR wettkampfkalender.Datum >= CURDATE() ". + "WHERE wkParticipo_Events.date >= CURDATE() ". // "ORDER BY wettkampfkalender.Datum;" "ORDER BY wkParticipo_Events.date;" ); @@ -631,25 +632,29 @@ $ret = array(); $anMysqlConn->query("USE cwsvjudo;"); $query = sprintf( "SELECT ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Events.date, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.bemerkungen, ". + "wkParticipo_Events.kvOptions, ". "wettkampfkalender.lfdeNr, ". "wettkampfkalender.Datum, ". "wettkampfkalender.Veranstaltung, ". "wettkampfkalender.Altersklassen, ". "wettkampfkalender.Ort, ". + "wettkampfkalender.Ausschreibung, ". "wettkampfkalender.Routenplaner, ". - "wkParticipo_Events.id, ". - "wkParticipo_Events.meldefrist, ". - "wkParticipo_Events.wkId, ". "wkParticipo_Starter.id, ". "wkParticipo_Starter.eventId, ". "wkParticipo_Starter.type ". - "FROM wettkampfkalender ". - "JOIN wkParticipo_Events ". - "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". - "JOIN wkParticipo_Starter ". - "ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". - "WHERE wettkampfkalender.Datum >= CURDATE() AND wkParticipo_Starter.userId = '%s' ". - "ORDER BY wettkampfkalender.Datum;", + "FROM wkParticipo_Events ". + "LEFT JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "LEFT JOIN wkParticipo_Starter ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". + "WHERE wkParticipo_Events.date >= CURDATE() AND wkParticipo_Starter.userId = '%s' ". +// "WHERE wkParticipo_Starter.userId = '%s' ". +// "ORDER BY wettkampfkalender.Datum;", + "ORDER BY wkParticipo_Events.date;", $anMysqlConn->real_escape_string($anUserId) ); $results = $anMysqlConn->query($query); if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); @@ -665,8 +670,22 @@ $ret = array(); }, $someOptions ); + // @todo: nur temporär: fehlende Wettkampdaten aus den Metadaten ergänzen + if( empty($entry['wkId']) ){ + $tmpWkEvent = json_decode($entry['bemerkungen'], true); + // var_dump($tmpWkEvent, $ret['bemerkungen']); + if(!empty($tmpWkEvent)){ + // var_dump( $tmpWkEvent ); + // var_dump( json_decode($aWkEvent['bemerkungen'], true) ); + $entry['Datum'] = $tmpWkEvent['Datum']; + $entry['Veranstaltung'] = $tmpWkEvent['Veranstaltung']; + $entry['Altersklassen'] = $tmpWkEvent['Altersklassen']; + $entry['bemerkungen'] = $tmpWkEvent['bemerkungen']; + } + } } + return $ret; } @@ -675,23 +694,23 @@ $ret = array(); $anMysqlConn->query("USE cwsvjudo;"); $query = sprintf( "SELECT ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.bemerkungen, ". + "wkParticipo_Events.kvOptions, ". "wettkampfkalender.lfdeNr, ". "wettkampfkalender.Datum, ". "wettkampfkalender.Veranstaltung, ". "wettkampfkalender.Altersklassen, ". "wettkampfkalender.Ort, ". + "wettkampfkalender.Ausschreibung, ". "wettkampfkalender.Routenplaner, ". - "wkParticipo_Events.id, ". - "wkParticipo_Events.meldefrist, ". - "wkParticipo_Events.wkId, ". "wkParticipo_Starter.id, ". "wkParticipo_Starter.eventId ". - "FROM wettkampfkalender ". - "JOIN wkParticipo_Events ". - "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". - "JOIN wkParticipo_Starter ". - "ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". -// "WHERE wettkampfkalender.Datum >= CURDATE() AND wkParticipo_Starter.userId = '%s' ". + "FROM wkParticipo_Events ". + "LEFT JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "LEFT JOIN wkParticipo_Starter ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". "WHERE wkParticipo_Starter.userId = '%s' ". "ORDER BY wettkampfkalender.Datum;", $anMysqlConn->real_escape_string($anUserId) ); @@ -1223,21 +1242,8 @@ return $url; /// Erzeugen des htmlCodes der Infobox für ein wkEvent function htmlWkEvent($aWkEvent, $starters, $fahrten){ -//var_dump($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; @@ -1256,7 +1262,7 @@ if( empty($aWkEvent['wkId']) ){ "".