Changes to be committed:

- hotfix für einzelansicht der news
	modified:   htaccess/cwsvjudo.bplaced.net/.htaccess
	new file:   htaccess/cwsvjudo.bplaced.net/.htaccess-backup2018-08-14
- Hilfssfunktion für saubere Url
	modified:   phpLib/cwsvJudo/miscAssis.php
- news jetzt mit struturierten daten (article)
	modified:   phpLib/cwsvJudo/newsLib.php
	modified:   phpLib/cwsvJudo/newsTableHtml.php
- kleinere korrekturen und erweiterungen:
	modified:   phpLib/cwsvJudo/wkKalender.php
	modified:   src/css/cwsvJudo-2018-layout.css
	modified:   src/md/news.md
	modified:   src/md/verein.md
	modified:   wkParticipo/admin/newsLetter.php
	modified:   wkParticipo/showWkEvent.php
This commit is contained in:
marko
2018-08-14 11:33:26 +02:00
parent b57ce57fe1
commit 851213165b
11 changed files with 200 additions and 13 deletions

View File

@@ -19,6 +19,8 @@ ExpiresDefault "access 1 month"
# Weiterleitungen
###
## Hotfixes
## www auf nichtwww umleiten
RewriteEngine On

View File

@@ -0,0 +1,113 @@
## EXPIRES CACHING ##
<IfModule mod_expires.c>
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"
</IfModule>
## 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]
<IfModule mod_headers.c>
Header set Content-Security-Policy "script-src 'self'"
</IfModule>
<IfModule mod_headers.c>
Header always set X-FRAME-OPTIONS "DENY"
</IfModule>
# 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...)
<IfModule mod_headers.c>
<FilesMatch "\.(otf)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
###
# 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

View File

@@ -20,7 +20,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 +92,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 +124,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;
}
?>

View File

@@ -84,6 +84,7 @@ $options = getKeyValueArray($someOptions);
$retHtml = "";
$retHtml .= "<article class=\"newsArtikel\">";
$retHtml .= "<script type=\"application/ld+json\">".news2jsonSdArticle($aNews)."</script>";
$retHtml .= "<div class=\"newsHeader\">";
$retHtml .= "<div class=\"newsDatum\"><time datetime=\"" . $aNews['datum'] . "\">" . $aNews['datum'] . "</time></div>";
$retHtml .= "<div class=\"newsBetreff\" ><h".(!empty($options["headingLevel"])?$options["headingLevel"]:"3").">" . $aNews['betreff'] . "</h".(!empty($options["headingLevel"])?$options["headingLevel"]:"3")."></div>";
@@ -147,4 +148,36 @@ $options = getKeyValueArray($someOptions);
$retHtml .= "</article>";
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']
)
);
}
?>

View File

@@ -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("<h1>".$newsHeading."</h1>");
if( is_array( $newsList ) || is_object( $newsList ) )
foreach($newsList as $news)
echo( getHtmlNews($news, "headingLevel=2")."<hr />" );

View File

@@ -178,6 +178,8 @@ $htmlWkTableString = "";
$htmlWkTableString .= "<tr><th colspan=\"5\" >".$lastMonthName."</th></tr><tr class=\"displayNone\" ><th colspan=\"5\"></th></tr>";
}
$wkJsonSd = wkArray2jsonSdEvent($wk);
// schlechter Hack solange die Browser nicht von selbst ordentlich trennen
$wk['Veranstaltung'] =
str_replace("meisterschaft", "&shy;meisterschaft", $wk['Veranstaltung']);
@@ -192,7 +194,7 @@ $htmlWkTableString = "";
$htmlWkTableString .=
"<tr>".
"<script type=\"application/ld+json\">".wkArray2jsonSdEvent($wk)."</script>".
"<script type=\"application/ld+json\">".$wkJsonSd."</script>".
"<td data-title=\"Datum\" class=\"noWrap\">".
"<time class=\"kalenderDatum\" datetime=".$wk['Datum'].">".
"<span>".strftime("%Y", strtotime($wk['Datum']))."</span>".
@@ -231,18 +233,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']."\",".

View File

@@ -44,6 +44,7 @@ body > * {
.sideNotes{
float: right;
width: 33%;
clear: right;
}
.footerBar{
clear: both;

View File

@@ -8,5 +8,5 @@ keywords:
- News
description: "Bekanntmachungen und Meldungen der Judoka des Chemnitzer WSV"
...
<?php if($_GET['jahr']) $options['jahr']=$_GET['jahr']; else $options['limit']=6; echoNewsTableHtml( $options );?>
<?php if($_GET['newsId']){$options['newsId']=$_GET['newsId']; echoNewsTableHtml( $options );}?>
<?php $options=array(); if($_GET['jahr']) $options['jahr']=$_GET['jahr']; else $options['limit']=6; echoNewsTableHtml( $options );?>

View File

@@ -6,7 +6,7 @@ keywords:
- Judo
- Chemnitz
- Chemnitzer Freizeit- und Wohngebietssportverein
description: "Informationen und weiterführende Links des Chemniitzer Freizeit- und Wohngebitssportvereines"
description: "Informationen und weiterführende Links des Chemnitzer Freizeit- und Wohngebitssportvereines"
canonicalLink: "http://cwsvjudo.bplaced.net/verein"
ampVersionLink: "http://amp.cwsvjudo.bplaced.net/verein"
...

View File

@@ -24,7 +24,8 @@
"cwsvjudo.wettkampfkalender.Altersklassen, ".
"cwsvjudo.wkParticipo_Events.id, ".
"cwsvjudo.wkParticipo_Events.meldefrist, ".
"cwsvjudo.wkParticipo_Events.wkId ".
"cwsvjudo.wkParticipo_Events.wkId, ".
"cwsvjudo.wkParticipo_Events.bemerkungen ".
"FROM cwsvjudo.wettkampfkalender JOIN cwsvjudo.wkParticipo_Events ".
"ON cwsvjudo.wettkampfkalender.lfdeNr = cwsvjudo.wkParticipo_Events.wkId ".
"WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ".
@@ -42,7 +43,8 @@
"cwsvjudo.wettkampfkalender.Altersklassen, ".
"cwsvjudo.wkParticipo_Events.id, ".
"cwsvjudo.wkParticipo_Events.meldefrist, ".
"cwsvjudo.wkParticipo_Events.wkId ".
"cwsvjudo.wkParticipo_Events.wkId, ".
"cwsvjudo.wkParticipo_Events.bemerkungen ".
"FROM cwsvjudo.wettkampfkalender JOIN cwsvjudo.wkParticipo_Events ".
"ON cwsvjudo.wettkampfkalender.lfdeNr = cwsvjudo.wkParticipo_Events.wkId ".
// "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ".
@@ -85,6 +87,8 @@
$newsletter['message'] .= "\tAltersklassen: ".mb_convert_encoding($event['Altersklassen'], 'UTF-8', 'ISO-8859-1')."\r\n";
$newsletter['message'] .= "\tMeldefrist: ".mb_convert_encoding($event['meldefrist'], 'UTF-8', 'ISO-8859-1')."\r\n";
$newsletter['message'] .= "\tLink: http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$event['id']."\r\n";
if(!empty($event['bemerkungen']))
$newsletter['message'] .= "\tBemerkungen: ".$event['bemerkungen']."\r\n";
$newsletter['message'] .= "\t\r\n";
}
@@ -98,6 +102,8 @@
$newsletter['message'] .= "\tAltersklassen: ".mb_convert_encoding($event['Altersklassen'], 'UTF-8', 'ISO-8859-1')."\r\n";
$newsletter['message'] .= "\tMeldefrist: ".mb_convert_encoding($event['meldefrist'], 'UTF-8', 'ISO-8859-1')."\r\n";
$newsletter['message'] .= "\tLink: http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$event['id']."\r\n";
if(!empty($event['bemerkungen']))
$newsletter['message'] .= "\tBemerkungen: ".$event['bemerkungen']."\r\n";
$newsletter['message'] .= "\t\r\n";
}

View File

@@ -64,6 +64,7 @@
<li>Frist zum Einschreiben: <time datetime="<?php echo mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1');?></time> <a class="touchLink" href ="<?php echo(addToGcalUrl(mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'), mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1') ));?>">Einschreibefrist in den Google Calendar übernehmen</a></li>
<li>Altersklassen: <?php echo mb_convert_encoding($eventData['Altersklassen'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Ort: <a class="touchLink" href="<?php echo $eventData['Routenplaner'];?>"><?php echo mb_convert_encoding($eventData['Ort'], 'UTF-8', 'ISO-8859-1');?></a></li>
<li>Bemerkungen: <?php echo $eventData['bemerkungen'];?></li>
</ul>
<nav>