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

@@ -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']."\",".