diff --git a/homepage/redesign2018/css/cwsvJudo-2018-wkKalender.css b/homepage/redesign2018/css/cwsvJudo-2018-wkKalender.css index 2902f10..9bcede5 100644 --- a/homepage/redesign2018/css/cwsvJudo-2018-wkKalender.css +++ b/homepage/redesign2018/css/cwsvJudo-2018-wkKalender.css @@ -100,6 +100,16 @@ display: none; } +.wkInfoBox nav ul li { + background-color: #FF8100; + display: inline-block; + padding: .25em; + margin: .25em; + box-shadow: 0.1em 0.1em 0.05em grey; + border-radius: .5em; +} + + /*abgeschaut*/ .shadow-z-1 { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.24); diff --git a/homepage/redesign2018/markdownExperiment/Makefile b/homepage/redesign2018/markdownExperiment/Makefile index bf182f3..5c514de 100644 --- a/homepage/redesign2018/markdownExperiment/Makefile +++ b/homepage/redesign2018/markdownExperiment/Makefile @@ -172,14 +172,14 @@ build/graphiken/cwsvLogoWappen/cwsvLogoWappen.png: graphiken/cwsvLogoWappen.xcf build/graphiken/cwsvJudoLogoWappen/cwsvJudoLogoWappen.%w.png: build/graphiken/cwsvJudoLogoWappen/cwsvJudoLogoWappen.png mkdir -p $(dir $@) convert -layers merge -background transparent -resize $*x $< $@ - zopflipng --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent $@ $@ -# zopflipng -my $@ $@ + pngquant --speed 1 --ext .png --force $@ + zopflipng -y --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent $@ $@ build/graphiken/cwsvLogoWappen/cwsvLogoWappen.%w.png: build/graphiken/cwsvLogoWappen/cwsvLogoWappen.png mkdir -p $(dir $@) convert -layers flatten -background transparent -resize $*x $< $@ - zopflipng --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent $@ $@ -# zopflipng -my $@ $@ + pngquant --speed 1 --ext .png --force $@ + zopflipng -y --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent $@ $@ .PHONY: favIcons diff --git a/homepage/redesign2018/markdownExperiment/admin/newsAdmin.php b/homepage/redesign2018/markdownExperiment/admin/newsAdmin.php index e269fbe..af51ae0 100644 --- a/homepage/redesign2018/markdownExperiment/admin/newsAdmin.php +++ b/homepage/redesign2018/markdownExperiment/admin/newsAdmin.php @@ -60,6 +60,7 @@ return; $defaultPromoImg['src'] = "http://cwsvjudo.bplaced.net/ressourcen/graphiken/logos/cwsvJudoLogoWappen.x256.png"; $defaultPromoImg['width'] = "207"; $defaultPromoImg['height'] = "256"; + $defaultPromoImg['alt'] = "cwsvJudo"; /// Auslesen des Newsarrays @@ -88,6 +89,7 @@ return; // @todo Validierung! $newsArticle['datum'] = !empty($_POST['nachrichtenDatum']) ? $_POST['nachrichtenDatum'] : strftime ( "%F" ); $newsArticle['betreff'] = !empty($_POST['nachrichtenBetreff']) ? $_POST['nachrichtenBetreff'] : "Kein Betreff!"; + if(empty($newsArticle['promoImg']['alt'])) $newsArticle['promoImg']['alt'] = $newsArticle['betreff']." (Promobildchen)"; $newsArticle['text'] = !empty($_POST['nachrichtenText']) ? $_POST['nachrichtenText'] : "Kein Text!"; $newsArticle['autor'] = !empty($_POST['nachrichtenAutor']) ? $_POST['nachrichtenAutor'] : "Kein Autor!"; diff --git a/homepage/redesign2018/markdownExperiment/admin/phpcount/phpcountLog.php b/homepage/redesign2018/markdownExperiment/admin/phpcount/phpcountLog.php index 6ecee2a..d2c816c 100644 --- a/homepage/redesign2018/markdownExperiment/admin/phpcount/phpcountLog.php +++ b/homepage/redesign2018/markdownExperiment/admin/phpcount/phpcountLog.php @@ -24,6 +24,12 @@ try{ ); $uniqueHitsQuery->execute(); $uniqueHitsList = $uniqueHitsQuery->fetchAll(PDO::FETCH_ASSOC); + + $pagehitsQuery = $dbConnection->prepare( + "SELECT timeStamp, pageId, userHash FROM `phpcount_pageHits` ORDER BY timeStamp DESC;" + ); + $pagehitsQuery->execute(); + $pagehitsList = $pagehitsQuery->fetchAll(PDO::FETCH_ASSOC); } catch(PDOException $db_error){ die( "Error!: " . $db_error->getMessage() ); @@ -35,13 +41,19 @@ catch(PDOException $db_error){ " ); + echo( "\t\t\t\t" ); ?>
datetimes
".$nodupesEntry['date']."".$nodupesEntry['anz']."
".$nodupesEntry['date']."".$nodupesEntry['anz']."
" ); + echo( "\t\t\t\t" ); +?> +
Seitetimes
".$uniqueHitsEntry['pageid']."".$uniqueHitsEntry['hitcount']."
".$uniqueHitsEntry['pageid']."".$uniqueHitsEntry['hitcount']."
+ + +" ); ?>
timeStamppageIduserHash
".$pagehitsEntry['timeStamp']."".$pagehitsEntry['pageId']."".substr($pagehitsEntry['userHash'], 0, 5)."...
diff --git a/homepage/redesign2018/markdownExperiment/config/phpcount.config.php b/homepage/redesign2018/markdownExperiment/config/phpcount.config.php index cf10786..df1d3a0 100644 --- a/homepage/redesign2018/markdownExperiment/config/phpcount.config.php +++ b/homepage/redesign2018/markdownExperiment/config/phpcount.config.php @@ -4,6 +4,7 @@ $phpcountConfig["db"]["name"] = "cwsvjudo"; $phpcountConfig["db"]["user"] = "cwsvjudo"; $phpcountConfig["db"]["password"] = "Dee4oquu"; -$phpcountConfig["db"]["hitsTable"] = "phpcount_hits"; -$phpcountConfig["db"]["nodupesTable"] = "phpcount_nodupes"; +$phpcountConfig["db"]["hitsTable"] = "phpcount_hits"; +$phpcountConfig["db"]["nodupesTable"] = "phpcount_nodupes"; +$phpcountConfig["db"]["pagehitsTable"] = "phpcount_pageHits"; ?> diff --git a/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess b/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess index 24bdf38..e9bdf08 100644 --- a/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess +++ b/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess @@ -19,6 +19,8 @@ ExpiresDefault "access 1 month" # Weiterleitungen ### +## Hotfixes + ## www auf nichtwww umleiten RewriteEngine On diff --git a/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess-backup2018-08-14 b/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess-backup2018-08-14 new file mode 100644 index 0000000..24bdf38 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/htaccess/cwsvjudo.bplaced.net/.htaccess-backup2018-08-14 @@ -0,0 +1,113 @@ +## EXPIRES CACHING ## + +ExpiresActive On +ExpiresByType image/jpg "access 1 year" +ExpiresByType image/jpeg "access 1 year" +ExpiresByType image/gif "access 1 year" +ExpiresByType image/png "access 1 year" +ExpiresByType text/css "access 1 month" +ExpiresByType text/html "access 1 month" +ExpiresByType application/pdf "access 1 month" +ExpiresByType text/x-javascript "access 1 month" +ExpiresByType application/x-shockwave-flash "access 1 month" +ExpiresByType image/x-icon "access 1 year" +ExpiresDefault "access 1 month" + +## EXPIRES CACHING ## + +### +# Weiterleitungen +### + +## www auf nichtwww umleiten + +RewriteEngine On +RewriteBase / +RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] +RewriteRule ^(.*)$ http://%1/$1 [R=301,L] + +RewriteRule ^wk/([0-9]+)$ pages/desktop/verein.wettkampf.php?wkId=$1 + +RewriteRule ^gallery/([0-9]+)$ ?galId=$1 [L] +RewriteRule ^gallery/([0-9]+)/.*$ ?galId=$1 [L] + +RewriteRule ^galerie/([0-9]+)$ ?galId=$1 [L] +RewriteRule ^galerie/([0-9]+)/.*$ ?galId=$1 [L] + + + +Header set Content-Security-Policy "script-src 'self'" + + +Header always set X-FRAME-OPTIONS "DENY" + + + +# Auf die Fontdatei wird von der Subdomain aus zugegriffen +# - das gesamte ressourcenVerzeichnis wird auf die Maindomain umgeleitet +# - die mainDomain erlaubt aber anscheinend nicht, das fremde domains bei ihr anfragen startet +# - deshalb zumindest für das otf-File den cross domain zugriff erlauben +# (seltsam, dass der Zugriff auf die Bilder unter Photoalben aber erlaubt wird...) + + + Header set Access-Control-Allow-Origin "*" + + + + +### +# redesign2018 Test +### + + +# Url-Rewriting aktivieren +RewriteEngine on +# Das Request ist für diese Domain +# Für uns eigentlich irrelevant, da alle Domains (mit/ohne +# www/ch/de/net) auf das Unterverzeichnis geleitet werden soll, aber +# interessant zu wissen +# Und jetzt nützlich: Ich kann es unter der .de-Domain testen! +#RewriteCond %{HTTP_HOST} ^(www.)?cwsvjudo.bplaced.de$ [NC] + +# einige hotfixes +RewriteRule ^pages/desktop/verein.wettkampfkalender.php$ pages/responsive/wkKalender.php [L] +RewriteRule ^ressourcen/(.*)$ ressourcen/$1 [L] +RewriteRule ^photoalben/(.*)$ photoalben/$1 [L] +RewriteRule ^videoalben/(.*)$ videoalben/$1 [L] +RewriteRule ^downloads/(.*)$ downloads/$1 [L] +RewriteRule ^temp/(.*)$ temp/$1 [L] +RewriteRule ^admin/(.*)$ admin/$1 [L] + + +RewriteCond %{REQUEST_URI} ^/$ +RewriteCond %{QUERY_STRING} ^wkId=([0-9]+)$ +RewriteRule ^(.*)$ /pages/responsive/wkKalender.php [L] + + +# Die angeforderte Ressource ist nicht bereits in dem Zielverzeichnis: +RewriteCond %{REQUEST_URI} !^/pages/responsive/ + +# Die angeforderte Ressource (als Datei) ist nicht im Rootverzeichnis +RewriteCond %{REQUEST_FILENAME} !-f + +# Die angeforderte Ressource (als Verzeichnis) ist nicht im +# Rootverzeichnis +RewriteCond %{REQUEST_FILENAME} !-d + +# An die angeforderte Ressource das Zielverzeichnis präfixen +RewriteRule ^(.*)$ /pages/responsive/$1 + +RewriteRule ^(.*)wkKalender/([0-9]+)(.*)$ $1/wkKalender?wkId=$2 +#RewriteCond %{HTTP_HOST} ^(www.)?cwsvjudo.bplaced.de$ [NC] +RewriteRule ^gallery/([0-9]+)$ ?galId=$1 [L] +RewriteRule ^galerie/([0-9]+)$ ?galId=$1 [L] + + +# Ein Request für die Root-Ressource auf die index.php im +# Zielverzeichnis umleiten + +#RewriteCond %{HTTP_HOST} ^(www.)?cwsvjudo.bplaced.de$ [NC] +RewriteRule ^(/)?$ pages/responsive/index.php [L] + + +# Ende redesign2018-Test diff --git a/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.amp.pandocTemplate b/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.amp.pandocTemplate index d6c00c8..5857525 100644 --- a/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.amp.pandocTemplate +++ b/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.amp.pandocTemplate @@ -18,7 +18,11 @@ galleryRedirector(); +$if(phpTitleString)$ + PHPCount::AddHit($phpTitleString$." (Amp)");?> +$else$ PHPCount::AddHit("$title$ (Amp)");?> +$endif$ @@ -102,6 +106,31 @@ $for(header-includes)$ $endfor$ + +$if(jsonSdFiles)$ + $for(jsonSdFiles)$ + + $endfor$ +$endif$ diff --git a/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.html5.pandocTemplate b/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.html5.pandocTemplate index a95a6c7..226d8c5 100644 --- a/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.html5.pandocTemplate +++ b/homepage/redesign2018/markdownExperiment/pandocTemplate/cwsvJudo.html5.pandocTemplate @@ -5,7 +5,6 @@ /// - theoretisch sollte es bereits von der aufrufenden Datei /// eingebunden sein require_once("./config.inc.php"); -// include_once("./config.inc.php"); require_once($$basePath."/config/phpcount.config.php"); require_once($$basePath."/config/cwsvJudo.config.php"); require_once($$basePath."/ressourcen/phpLib/cwsvJudo/miscAssis.php"); @@ -46,8 +45,8 @@ $endif$ $if(ampVersionLink)$ $endif$ -$if(phpTitleFunction)$ - <?php $phpTitleFunction$();?> +$if(phpTitleString)$ + <?php echo( $phpTitleString$ );?> $else$ $if(title-prefix)$$title-prefix$ – $endif$$pagetitle$ $endif$ @@ -79,18 +78,26 @@ $endif$ { "@context": "http://www.schema.org", "@type": "WebSite", +$if(phpTitleString)$ + "name": "", +$else$ "name": "$title$", +$endif$ "alternateName": "$description$", +$if(canonicalLink)$ + "url": "$canonicalLink$", +$else$ "url": "http://cwsvjudo.bplaced.net", +$endif$ "image": "http://cwsvjudo.bplaced.net/ressourcen/graphiken/logos/cwsvJudoLogoWappen.256w.png" } $if(jsonSdFiles)$ - + $endfor$ $endif$ $if(jsLibs)$ $for(jsLibs)$ diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/galTable.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/galTable.php index 2e1a645..24328bc 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/galTable.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/galTable.php @@ -145,7 +145,8 @@ $messages=array(); foreach($galListe as $gal){ $galDate = mb_convert_encoding($gal['datum'], 'UTF-8', 'ISO-8859-1'); echo( - "". + "". +// "". // "". "". "". diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/miscAssis.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/miscAssis.php index 638898c..ec8f622 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/miscAssis.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/miscAssis.php @@ -4,6 +4,20 @@ function is_positive_integer($str){ return (is_numeric($str) && $str > 0 && $str == round($str)); } +function getPdoDbConnection($hostname, $dbName, $user, $password){ + try{ + $dbConnection = new PDO( + 'mysql:host='.$hostname.';dbname='.$dbName, + $user, + $password + ); + } + catch(PDOException $dbError){ + echo( "Error whilst getting a dbConnection!: " . $dbError->getMessage() ); + } +return $dbConnection; +} + function getCwsvJudoDbConn(){ global $cwsvJudoConfig; // Datenbankverbindung bereit stellen @@ -20,7 +34,6 @@ global $cwsvJudoConfig; return $db_connection; } - /// Gibt entweder das erste, nichtleere Element zurück, oder null function firstNonEmptyOf($somePossibleEmptyStuff){ if (is_array($somePossibleEmptyStuff) || $somePossibleEmptyStuff instanceof Traversable){ @@ -93,7 +106,6 @@ if( empty($optionsArray['outCharset']) ) $optionsArray['outCharset'] = "UTF-8"; return $retZitat; } - /// filtert aus einem Array einträge in der gegebenen Reihenfolge function arrayKeyFilter($anArray, $someKeys){ // var_dump($anArray, $someKeys); @@ -126,11 +138,27 @@ return arrayKeyFilter( function echoThisOrThat($This, $that){ echo( !empty($This) ? $This : $that ); } + function echoThisWhenThat($This, $that){ if( !empty($that) ) echo( $This ); } + function thisWhenThat($This, $that){ if( empty($that) ) return ""; return $This; } + +setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); +function toAscii($str, $replace=array(), $delimiter='-') { + if( !empty($replace) ) { + $str = str_replace((array)$replace, ' ', $str); + } + + $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str); + $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean); + $clean = strtolower(trim($clean, '-')); + $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean); + + return $clean; +} ?> diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsLib.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsLib.php index 0876b89..3fb47d6 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsLib.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsLib.php @@ -84,6 +84,7 @@ $options = getKeyValueArray($someOptions); $retHtml = ""; $retHtml .= "
"; + $retHtml .= ""; $retHtml .= "
"; $retHtml .= "
"; $retHtml .= "
" . $aNews['betreff'] . "
"; @@ -96,7 +97,15 @@ $options = getKeyValueArray($someOptions); // falls KEIN explizites PromoImage gesetzt ist, versuche es aus dem // Nachrichtentext heraus zu lesen // @toDo: woher bekomme ich width and height bei explizitem promoImg? - if( !filter_var($aNews['promoImg'], FILTER_VALIDATE_URL) || !filter_var($aNews['promoImg']['src'], FILTER_VALIDATE_URL) ){ + if(!$aNews['promoImg']) + $aNews['promoImg'] = array('src'=>""); + if(is_string($aNews['promoImg'])){ + if(json_decode($aNews['promoImg'])){ + $aNews['promoImg'] = json_decode($aNews['promoImg'], true); + } + } +// var_dump($aNews); + if( !filter_var($aNews['promoImg'], FILTER_VALIDATE_URL) && !filter_var($aNews['promoImg']['src'], FILTER_VALIDATE_URL) ){ $domDoc = new DOMDocument(); $domDoc->loadHTML( mb_convert_encoding($aNews['nachricht'], 'HTML-ENTITIES', "UTF-8") ); foreach($domDoc->getElementsByTagName('a') as $anchor){ @@ -147,4 +156,36 @@ $options = getKeyValueArray($someOptions); $retHtml .= "
"; return $retHtml; } + +function news2jsonSdArticle($aNews){ +return json_encode( + array( + '@context'=>"http://schema.org", + '@type'=>"NewsArticle", + 'mainEntityOfPage'=>array( + '@type'=>"WebPage", + '@id'=>"https://cwsvjudo.bplaced.net/news/".$aNews['nr']."/".toAscii($aNews['datum']."-".$aNews['betreff']) + ), + 'headline'=>"Article headline", + 'image'=>array( + "http://cwsvjudo.bplaced.net/ressourcen/graphiken/logos/cwsvJudoLogoWappen.256w.png" + ), + 'datePublished'=>$aNews['datum'], + 'dateModified'=>$aNews['datum'], + 'author'=>array( + '@type'=>"Person", + 'name'=>$aNews['autor'] + ), + 'publisher'=>array( + '@type'=>"Organization", + 'name'=>"cwsvJudo", + 'logo'=>array( + '@type'=>"ImageObject", + 'url'=>"http://cwsvjudo.bplaced.net/ressourcen/graphiken/logos/cwsvJudoLogoWappen.256w.png" + ) + ), + 'description'=>$aNews['betreff'] + ) +); +} ?> diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsTableHtml.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsTableHtml.php index c3ca961..3e6f675 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsTableHtml.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/newsTableHtml.php @@ -7,8 +7,6 @@ global $basePath; // Sammlung von Fehlermeldungen o.ä. $message = array(); -//require_once($basePath."/bonus/db.inc"); -//include_once($basePath."/config/db.inc"); $limit = is_positive_integer($someOptions['limit'])?$someOptions['limit']:1; @@ -30,6 +28,12 @@ $limit = is_positive_integer($someOptions['limit'])?$someOptions['limit']:1; // $newsList = getNews($db_connection, array('limit'=>$limit)); $newsList = getNews($db_connection, $someOptions); + $newsHeading = "Aktuelle Meldungen"; +//var_dump($options); + if($someOptions['newsId']) $newsHeading=$newsList[0]['betreff']; + if($someOptions['jahr']) $newsHeading="Nachrichten des Jahres ".$someOptions['jahr']; + + echo("

".$newsHeading."

"); if( is_array( $newsList ) || is_object( $newsList ) ) foreach($newsList as $news) echo( getHtmlNews($news, "headingLevel=2")."
" ); diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php index 70f2a67..ba236c2 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php @@ -11,7 +11,11 @@ function echoWkTitle(){ } /// Einen Wettkampfnamen per ID abfragen function getWkName( $wkId, $alternative="Judo-Wettkampf" ){ - if( !is_positive_integer($wkId) ) return $alternative; + +if( !is_positive_integer($wkId) ) return $alternative; + +if( empty($optionsArray['dbCharset']) ) $optionsArray['dbCharset'] = "ISO-8859-1"; +if( empty($optionsArray['outCharset']) ) $optionsArray['outCharset'] = "UTF-8"; // Datenbankverbindung bereit stellen global $cwsvJudoConfig; @@ -35,7 +39,7 @@ function getWkName( $wkId, $alternative="Judo-Wettkampf" ){ $pdoStatementForQuerryingWkById->execute(); $ret = $pdoStatementForQuerryingWkById->fetchAll(PDO::FETCH_ASSOC); - return $ret[0]['Veranstaltung']; + return iconv($optionsArray['dbCharset'], $optionsArray['outCharset'], $ret[0]['Veranstaltung']); } catch(PDOException $db_error){ // $siteData['errors'][] = "Error!: " . $db_error->getMessage(); @@ -178,6 +182,8 @@ $htmlWkTableString = ""; $htmlWkTableString .= "".$lastMonthName.""; } + $wkJsonSd = wkArray2jsonSdEvent($wk); + // schlechter Hack solange die Browser nicht von selbst ordentlich trennen $wk['Veranstaltung'] = str_replace("meisterschaft", "­meisterschaft", $wk['Veranstaltung']); @@ -189,10 +195,12 @@ $htmlWkTableString = ""; str_replace("randori", "­randori", $wk['Veranstaltung']); $wk['Veranstaltung'] = str_replace("spiele", "­spiele", $wk['Veranstaltung']); + $wk['Veranstaltung'] = + str_replace("mannschaft", "mann­schaft", $wk['Veranstaltung']); $htmlWkTableString .= - "". - "". + "". + "". "". "iCal". "". - "\n"; + "\n"; } $htmlWkTableString .= "". @@ -231,18 +239,29 @@ $htmlWkTableString = ""; return $htmlWkTableString; } + +function nicerAkList($akArray){ + $ret=explode( " ", $akArray ); + + $last = array_slice($ret, -1); + $first = join(', ', array_slice($ret, 0, -1)); + $both = array_filter(array_merge(array($first), $last), 'strlen'); + + $ret = join(' und ', $both); +return $ret; +} /// Wettkampfdaten als json-formatierte strukturierte Event-Daten function wkArray2jsonSdEvent($wk){ return "{". "\"@context\": \"http://schema.org\",". "\"@type\": \"Event\",". - "\"name\": \"".$wk['Veranstaltung']."\",". + "\"name\": \"".html_entity_decode( $wk['Veranstaltung'] )."\",". "\"startDate\": \"".$wk['Datum']."\",". "\"endDate\": \"".$wk['Datum']."\",". // "\"url\": \"http://cwsvjudo.bplaced.net/pages/desktop/verein.wettkampfkalender.php?wkId=".$wk['lfdeNr']."\",". - "\"url\": \"http://cwsvjudo.bplaced.net/wkKalender/".$wk['lfdeNr']."\",". - "\"description\": \"Judo-Wettkampf der Altersklasse(n) ".$wk['Altersklassen']."\",". + "\"url\": \"http://cwsvjudo.bplaced.net/wkKalender/".$wk['lfdeNr']."/".toAscii( html_entity_decode( $wk['Veranstaltung'] ))."\",". + "\"description\": \"Judo-Wettkampf der Altersklasse(n) ".nicerAkList( $wk['Altersklassen'] )."\",". "\"location\": {". "\"@type\": \"Place\",". "\"name\": \"".$wk['Ort']."\",". @@ -281,7 +300,8 @@ function wkTableHtml(){ foreach($wkInfo as $wk){ $siteData['mainContent'] .= "

Einzelansicht

". - "
". + "
". + "". "

".$wk['Veranstaltung']."

". "

Veranstaltungsdaten

". "
". "
"; +// echo(wkInfoBoxHtml($wk)); } } else{ @@ -394,4 +424,56 @@ function wkTableHtml(){ echo( $siteData['mainContent'] ); return; } + +/// Eine Box mit allen Informationen/Links eines Wettkampfes +function wkInfoBoxHtml($aWk){ +//var_dump($aWk); +if(empty($aWk)) return null; +$wkInfoBoxHtml = ""; + + $wkInfoBoxHtml .= + "
".wkArray2jsonSdEvent($aWk). + "

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

". + "

Veranstaltungsdaten

". + "". + "

Links zur Veranstaltung

". + "
"; +return $wkInfoBoxHtml; +} + ?> diff --git a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php.bak b/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php.bak deleted file mode 100644 index 7c8ad7e..0000000 --- a/homepage/redesign2018/markdownExperiment/phpLib/cwsvJudo/wkKalender.php.bak +++ /dev/null @@ -1,323 +0,0 @@ -real_escape_string($anWkId) - ); - $results = $anMysqlConn->query($query); - if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); - $ret = $results->fetch_assoc(); -return $ret; -} - -/// Einen Gallerie per ID abfragen -/// -/// Der Rückgabewert sollte vor Verwendung (und zur Fehlerbehandlung) -/// auf NULL und/oder leeres Array getestet werden. -/// Der Zeichensatz wird von "ISO-8859-1" auf "UTF-8" gesetzt -/// @aMysqlConn -/// mySql-Datenbankverbindung via PDO -/// @optionsArray -/// dbCharset - Zeichensatz der Datenbank -/// outCharset - Ausgabezeichensatz in den konvertiert werden soll -/// @return Array von Galleriedaten im Erfolsfalle (evtl. aber leer, wenn in der Datenbank keine entsprechenden Nachrichten gefunden wurden), sonst NULL -function getGal($aMysqlConn, $optionsArray = array("dbCharset" => "ISO-8859-1", "outCharset" => "UTF-8", "limit" => "1", "galId" => "0", "wkId"=>"0")){ -if(!$aMysqlConn) return NULL; - -if( empty($optionsArray['dbCharset']) ) $optionsArray['dbCharset'] = "ISO-8859-1"; -if( empty($optionsArray['outCharset']) ) $optionsArray['outCharset'] = "UTF-8"; - -if( !is_positive_integer($optionsArray['limit']) ) $optionsArray['limit'] = "1"; - -$ret = array(); - - if( is_positive_integer($optionsArray['wkId']) ){ - // datenbank.tabelle könnte noch vaiabel gestaltet werden - $pdoStatementForQuerryingGalById = $aMysqlConn->prepare( - "SELECT * FROM cwsvjudo.wkGalerien WHERE wkGalerien.datum <= (SELECT wkGalerien.datum FROM wkGalerien WHERE wkGalerien.wkId = :wkId ) ORDER BY wkGalerien.datum DESC LIMIT :limit OFFSET 0;" - ); - $pdoStatementForQuerryingGalById->bindParam(':limit', intval($optionsArray['limit']), PDO::PARAM_INT); - $pdoStatementForQuerryingGalById->bindParam(':wkId', intval($optionsArray['wkId']), PDO::PARAM_INT); - $pdoStatementForQuerryingGalById->execute(); - $ret = $pdoStatementForQuerryingGalById->fetchAll(PDO::FETCH_ASSOC); - } - else{ - $pdoStatementForQuerryingGalById = $aMysqlConn->prepare( - "SELECT * FROM wkGalerien ORDER BY datum DESC, id DESC LIMIT :limit;" - ); - $pdoStatementForQuerryingGalById->bindParam(':limit', intval($optionsArray['limit']), PDO::PARAM_INT); - $pdoStatementForQuerryingGalById->execute(); - $ret = $pdoStatementForQuerryingGalById->fetchAll(PDO::FETCH_ASSOC); - } -// Zeichensatzkonvertierung - foreach($ret as &$entry){ - array_walk( - $entry, - function (&$value, $key, $optionsArray) { - $value = iconv($optionsArray['dbCharset'], $optionsArray['outCharset'], $value); - }, - $optionsArray - ); - } - -return $ret; -} - -// Ausgabe der Wettkampftabelle -// @todo: elaborieren -function wkTableHtml(){ -global $cwsvJudoConfig; -// Vermutung ist, dass $__GET sowieso (?super?)global -// global $__GET -global $basePath; -//require_once($basePath."/bonus/db.inc"); -//include_once($basePath."/bonus/db.inc"); - - // Deutsches Datumsformat - setlocale(LC_ALL, 'de_DE'); - - $message = array(); - - if(is_positive_integer($_GET['wkId'])){ -// $sqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); - $sqlConn = @new mysqli( - $cwsvJudoConfig["db"]["host"], - $cwsvJudoConfig["db"]["user"], - $cwsvJudoConfig["db"]["password"], - $cwsvJudoConfig["db"]["name"] - ); - if ($sqlConn->connect_error) { - $message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $sqlConn->connect_error . "
"; - } - else{ - $wkData = getWkData($sqlConn, $_GET["wkId"]); - if( empty($wkData) ) $message['error'] .= "Fehler: WettkampfId ".$_GET['wkId']." nicht gefunden!
"; - } - } -// else $message['error'] .= "Fehler: wkId ist kein pos. Int (".$_GET['wkId'].")
"; - - if(!empty($message['error'])) - echo( "
".$message['error']."
" ); - - if( !empty($wkData) ){ - echo( "

Wettkampfdaten ".mb_convert_encoding($wkData['Veranstaltung'], 'UTF-8', 'ISO-8859-1')."

" ); - - echo( "" ); - } - - try{ - $db_connection = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_user, $db_password); - - // mögliche Werte für das jahr herausfinden - $jahre = array(); - $query = "SELECT DISTINCT DATE_FORMAT( Datum, '%Y') FROM cwsvjudo.wettkampfkalender WHERE 1 ORDER BY DATE_FORMAT( Datum, '%Y' ) DESC"; - $ergebnis = $db_connection->query($query); - foreach($ergebnis as $row){ - array_push($jahre, $row["DATE_FORMAT( Datum, '%Y')"]); - } - // ist das übergebene jahr ein gültiges? - $jahr = $_GET["jahr"]; - if($jahr){ - if(in_array($jahr, $jahre)){ - $minDate = $jahr."-01-01"; - $maxDate = $jahr."-12-31"; - - echo( "

Wettkampfkalender ".$jahr."

" ); - } - else{ - echo "Keine Wettkämpfe für das Jahr".$jahr." gefunden!"; -// die(); - } - } - else{ - $minDate = date("Y-m-d", time()); - $maxDate = ""; - - echo( "

Kommende Wettkämpfe

" ); - } - - $query="SELECT Datum,Veranstaltung,Ausschreibung,Ort,Routenplaner,Altersklassen,lfdeNr FROM wettkampfkalender WHERE Datum >= \"".$minDate."\" ORDER BY Datum ASC"; - if($maxDate){ - $query="SELECT Datum,Veranstaltung,Ausschreibung,Ort,Routenplaner,Altersklassen,lfdeNr FROM wettkampfkalender WHERE Datum >= \"".$minDate."\" AND Datum <= \"".$maxDate."\" ORDER BY Datum ASC"; - } - $ergebnis = $db_connection->query($query); - - echo( ""); - echo( "" ); - echo( "" ); - - $ergebnis = $db_connection->query($query); - -// echo( "Debug: " . gettype($ergebnis) . " " . count($ergebnis) . "\n" ); - foreach($ergebnis as $wk){ - echo( "" - ); - -// schlechter Hack solange die Browser nicht von selbst ordentlich trennen - $wk['Veranstaltung'] = - str_replace("meisterschaft", "­meisterschaft", $wk['Veranstaltung']); - $wk['Veranstaltung'] = - str_replace("turnier", "­turnier", $wk['Veranstaltung']); - $wk['Veranstaltung'] = - str_replace("randori", "­randori", $wk['Veranstaltung']); - - echo( - "". - "". - "". - "". - "". - "" ); - } - echo( - "". - "". - "
DatumVeranstaltungOrtAltersklasse(n)iCal
". - "". - "". - "".mb_convert_encoding($wk['Veranstaltung'], 'UTF-8', 'ISO-8859-1')."". - "". - "".mb_convert_encoding($wk['Ort'], 'UTF-8', 'ISO-8859-1')."". - "".mb_convert_encoding($wk['Altersklassen'], 'UTF-8', 'ISO-8859-1')."". - "iCal". - "
DatumVeranstaltungOrtAltersklasse(n)iCal
". - "
Alle Angaben ohne Gewähr! Fehler und Ergänzungen dürfen gerne gemeldet werden.
". - "Link zum Archiv mit allen Ausschreibungen." ); -/* - -
-
- Im folgendem kann man sich mehrere Wettkampftermine in einer ICalendar-Datei zusammenstellen. Zum An-/Abwählen bei gedrückter Strg-Taste mit der linken Maustaste die jeweiligen Wettkämpfe anklicken. -
- -
- -
-getMessage() . "
"; -// die(); - } -/* -?> -
-
- - - - - - - - - - -*/ -return; -} -?> diff --git a/homepage/redesign2018/markdownExperiment/phpLib/videoGallery/videoGallery.tmpl.php b/homepage/redesign2018/markdownExperiment/phpLib/videoGallery/videoGallery.tmpl.php index 0a1fe04..848cc77 100644 --- a/homepage/redesign2018/markdownExperiment/phpLib/videoGallery/videoGallery.tmpl.php +++ b/homepage/redesign2018/markdownExperiment/phpLib/videoGallery/videoGallery.tmpl.php @@ -1,7 +1,13 @@ <?php echo $wkName?> - Videoalbum + @@ -44,12 +51,20 @@ return $retVal; + + + + + - - - - " )."". (!empty($_SESSION['login'])? - "
angemeldete Starter
".( - empty($starters)? - "Noch hat sich niemand für diesen Wettkampf gemeldet!": - count($starters) + "
eingeschriebene Starter
".( + ( $anzahlKaempfer == 0 )? + "Noch hat sich niemand für diesen Wettkampf eingeschrieben!": + $anzahlKaempfer + )."
" + :""). + (!empty($_SESSION['login'])? + "
eingeschriebene Zuschauer
".( + ( $anzahlZuschauer == 0 )? + "Noch will sich niemand diesen Wettkampf anschauen!": + $anzahlZuschauer )."
" :""). (empty($_SESSION['login'])? @@ -1257,7 +1269,7 @@ $retHtml = ""; ). "" ). - "Anzahl Mitfahrgelegenheiten
" . $anzPlätze . "
". + "Anzahl Mitfahrgelegenheiten
" . $anzPlätze . "
". (empty($_SESSION['login'])? "
Das Anbieten von Mitfahrgelegenheiten ist nur eingeloggt möglich!
" :"
". diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php index e940971..8fb4bd7 100644 --- a/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php @@ -64,6 +64,7 @@
  • Frist zum Einschreiben: Einschreibefrist in den Google Calendar übernehmen
  • Altersklassen:
  • Ort:
  • +
  • Bemerkungen: