Aufräumarbeiten im Zweig redesign2018
Auf Branch redesign2018 zum Commit vorgemerkte Änderungen: neue Datei: backup/ampPages-backup-2018-06-11-06-49/.htaccess neue Datei: backup/ampPages-backup-2018-06-11-06-49/config.inc.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/css/cwsvJudoAmp.css neue Datei: backup/ampPages-backup-2018-06-11-06-49/cwsvJudo.ampTemplate.inc.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/expCounter/counter.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/galerien.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/googlef3ad27a876479282.html neue Datei: backup/ampPages-backup-2018-06-11-06-49/index.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/kontakt.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/news.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/newsDev.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/pages/desktop/verein.galerien.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/phpLib/ampify.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/phpLib/cwsvJudoAmpLib.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/robots.txt neue Datei: backup/ampPages-backup-2018-06-11-06-49/sitemap.xml neue Datei: backup/ampPages-backup-2018-06-11-06-49/trainingszeiten.php neue Datei: backup/ampPages-backup-2018-06-11-06-49/urllist.txt neue Datei: backup/ampPages-backup-2018-06-11-06-49/verein.training.php neue Datei: backup/config.inc.php neue Datei: graphiken/icons/cwsv.ico neue Datei: impressumsVorlagen/impressum-recht-de.html neue Datei: impressumsVorlagen/impressum-recht.de neue Datei: impressumsVorlagen/muster_impressum_vorlage_von_www_jurarat_de.txt neue Datei: impressumsVorlagen/sqr-law.de gelöscht: phpLib/imgGallery.square7/indexDev.php.tmpl.orig neue Datei: sitemap.xml geändert: src/Makefiles/Makefile.vp9 neue Datei: src/tools/config.inc.php neue Datei: src/tools/index.php neue Datei: src/tools/indexHier.php neue Datei: src/tools/indexInArbeit.php neue Datei: src/tools/mkGalGen/Makefile.mkGalGen neue Datei: src/tools/mkGalGen/ReadMe.md neue Datei: src/tools/mkGalGen/createImageList.py neue Datei: src/tools/mkGalGen/jpgListCreator.py neue Datei: src/tools/mkGalGen/jpgListLoader.py neue Datei: src/tools/mkGalGen/jpgSelector.py neue Datei: src/tools/mkGalGen/jsonAlbumTest-Template.sh neue Datei: src/tools/mkGalGen/jsonJpgList2IndexPhp.py neue Datei: src/tools/mkGalGen/jsonJpgList2Makefile.py neue Datei: src/tools/mkGalGen/jsonJpgList2ViewPhp.py neue Datei: src/tools/mkGalGen/sortierer.py neue Datei: src/tools/mkGalGen/testingArea/Makefile
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
RewriteEngine on
|
||||
RewriteRule ^photoalben/(.*) http://cwsvjudo\.bplaced\.net/photoalben/$1
|
||||
RewriteRule ^ressourcen/(.*)$ http://cwsvjudo\.bplaced\.net/ressourcen/$1
|
||||
RewriteRule ^/ressourcen/(.*)$ http://cwsvjudo\.bplaced\.net/ressourcen/$1
|
||||
|
||||
RewriteCond %{HTTP_HOST} cwsvjudo.bplaced.net
|
||||
RewriteRule ^news$ news\.php [L]
|
||||
RewriteCond %{HTTP_HOST} cwsvjudo.bplaced.net
|
||||
RewriteRule ^news/([0-9]+)$ news\.php?newsId=$1
|
||||
|
||||
RewriteCond %{HTTP_HOST} amp.cwsvjudo.bplaced.net
|
||||
RewriteRule ^news$ news\.php [L]
|
||||
RewriteCond %{HTTP_HOST} amp.cwsvjudo.bplaced.net
|
||||
RewriteRule ^news/([0-9]+)$ news\.php?newsId=$1 [L]
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/// Die Basisdomain, unter der die Hauptseite zu erreichen ist
|
||||
$baseDomain = "cwsvjudo.bplaced.net";
|
||||
/// Subdomain, unter dem dieses Verzeichnis zu finden ist (falls der Fall gegeben ist)
|
||||
$subDomain = "amp";
|
||||
/// Basis(/Root)-Verzeichnis auf dem Server (für Dateizugriffe, insbesondere phpIncludes)
|
||||
$basePath = "/users/cwsvjudo/www";
|
||||
|
||||
/// Url zum Zugriff auf "shared Data" unter der Hauptadresse
|
||||
$baseUrl = "http://".$baseDomain;
|
||||
/// Die kanonische Url dieses Verzeichnisses (unter welcher
|
||||
/// Domainadresse die Seiten dieses Verzeichnisses bevorzugt zu
|
||||
/// erreichen seien sollen, also entweder eine SubdomainUrl, oder die
|
||||
/// baseUrl mit dem Verzeichnis angehängt)
|
||||
/// Achtung: Gedacht für eine einheitliche Bezeichnung bei internem
|
||||
/// Verlinken. Der canonicalLink im Header ist bei ampSeiten nicht die
|
||||
/// eigene Adresse, sondern die (kanonische) Adresse der "normalen"
|
||||
/// Version der Seite.
|
||||
$canonicalBaseUrl = "http://".$subDomain.".".$baseDomain;
|
||||
?>
|
||||
@@ -0,0 +1,233 @@
|
||||
/*
|
||||
@font-face {
|
||||
font-family: Orbitron-Medium;
|
||||
src: url(/ressourcen/fonts/Orbitron-Medium.otf);
|
||||
}
|
||||
*/
|
||||
html{
|
||||
background: #FFAE00;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*, ::before, ::after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body{
|
||||
font-size: 4.5vmin;
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
background: #FFAE00;
|
||||
}
|
||||
|
||||
|
||||
.newsTable{
|
||||
border: solid 1px #000000;
|
||||
width:100%;
|
||||
padding: 1%;
|
||||
}
|
||||
|
||||
.newsTableHeader{
|
||||
background: #FF8100;
|
||||
}
|
||||
.newsTableFooter{
|
||||
clear: both;
|
||||
background: #FF8100;
|
||||
}
|
||||
|
||||
.bigPicture{
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.centeredText{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.orbitronFont{
|
||||
font-family: "Orbitron-Medium", Impact, Charcoal, sans-serif;
|
||||
padding-top: .16em;
|
||||
}
|
||||
|
||||
.Inhaltsverzeichnis{
|
||||
padding: 1%;
|
||||
width: 100%;
|
||||
background-color:
|
||||
#FF8100;
|
||||
font-variant:
|
||||
small-caps;
|
||||
font-size:
|
||||
larger;
|
||||
font-weight:
|
||||
bolder;
|
||||
}
|
||||
.Inhaltsverzeichnis a{
|
||||
color: inherit;
|
||||
}
|
||||
.Inhaltsverzeichnis div a:hover{
|
||||
text-decoration:
|
||||
none;
|
||||
color:
|
||||
#993300;
|
||||
}
|
||||
|
||||
.navButton{
|
||||
border-color: white;
|
||||
border-style: outset;
|
||||
border-radius: 1em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
padding-left: .5em;
|
||||
padding-right: .5em;
|
||||
}
|
||||
|
||||
.messageBox{
|
||||
width: 100%;
|
||||
border:solid 1px #000000;
|
||||
background-color:#FF8100;
|
||||
font-size:smaller;
|
||||
}
|
||||
|
||||
.fullWidth{
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.noMargin{
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.rightFloat{
|
||||
float:right;
|
||||
}
|
||||
|
||||
.leftFloat{
|
||||
float:left;
|
||||
}
|
||||
|
||||
.clearBoth{
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/*---
|
||||
* Formatierung der News in Amp
|
||||
*/
|
||||
.ampNewsBox{
|
||||
clear: both;
|
||||
border: solid 1px #000000;
|
||||
width:100%;
|
||||
padding: 1%;
|
||||
}
|
||||
.ampNewsBoxHeader{
|
||||
background: #FF8100;
|
||||
}
|
||||
.ampNewsBoxFooter{
|
||||
clear: both;
|
||||
background: #FF8100;
|
||||
}
|
||||
/*---
|
||||
* Formatierung der subNav in Amp
|
||||
*/
|
||||
.ampSubNav{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
/*---
|
||||
* touchable Links
|
||||
*/
|
||||
.touchLink{
|
||||
display: inline-block;
|
||||
padding: 0.25em 0 0.25em 0;
|
||||
margin: 0.25em 0 0.25em 0;
|
||||
background-color: #FF8100;
|
||||
border-radius: .5em;
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
|
||||
}
|
||||
|
||||
/*---
|
||||
* Eine kleine NachrichtenBox
|
||||
*/
|
||||
.messageBox{
|
||||
width: 100%;
|
||||
border:solid 1px #000000;
|
||||
background-color:#FF8100;
|
||||
font-size:smaller;
|
||||
}
|
||||
|
||||
/*
|
||||
* Unterauswahl-Navigationsleiste
|
||||
*/
|
||||
|
||||
/* der SubNavContainer*/
|
||||
.subNav{
|
||||
display: flex;
|
||||
/* flex-direction: column;*/
|
||||
align-items: stretch;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.subNav a{
|
||||
color: inherit;
|
||||
}
|
||||
.subNavElement{
|
||||
/*width: 100%;*/
|
||||
background: #FF8100;
|
||||
padding-top:.125em;
|
||||
padding-left:.125em;
|
||||
padding-right:.125em;
|
||||
border-style: outset;
|
||||
border-radius: 1em;
|
||||
font-size: 1.125em;
|
||||
text-decoration: none;
|
||||
flex-basis: 20%;
|
||||
border-style: outset;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
.subNavElementIcon{
|
||||
text-align: center;
|
||||
max-width: 2.5em;
|
||||
height: auto;
|
||||
padding: .125em;
|
||||
}
|
||||
.subNavElementCaption{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.activeNav {
|
||||
border-color: #A80101;
|
||||
border-style: inset;
|
||||
}
|
||||
.pngAddress{
|
||||
width: 20em;
|
||||
height: auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Tabelle mit den GalerieLinks
|
||||
*/
|
||||
.galTable{
|
||||
width: 100%;
|
||||
}
|
||||
.galTable tr, th, td {
|
||||
width: auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.galTable tr:nth-child(odd){
|
||||
background-color: #FF8100;
|
||||
}
|
||||
|
||||
.galTable tr td img{
|
||||
display: inline;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.galTable tr td a img{
|
||||
display: inline;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
/// Einbinden der Konfiguration, insbesondere Basisvariablen
|
||||
/// relative Pfadangabe, jedes Verzeichnis soll seine eigene haben
|
||||
require_once("./config.inc.php");
|
||||
/// Daten für den Datenbankzugriff
|
||||
require_once( $basePath."/bonus/db.inc");
|
||||
|
||||
/// Bibliothek mit verschienden Hilfsfunktionen
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
/// Bibliothek für die Arbeit mit der Newsdatenbank
|
||||
// require_once( $basePath."/ressourcen/phpLib/newsLib.php");
|
||||
|
||||
?>
|
||||
|
||||
<!doctype html>
|
||||
<html amp lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<script async src="https://cdn.ampproject.org/v0.js"></script>
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1">
|
||||
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
|
||||
|
||||
<style amp-custom>
|
||||
<?php require_once("./css/cwsvJudoAmp.css");?>
|
||||
<?php echo( "@font-face {font-family: Orbitron-Medium;src: url(".$baseUrl."/ressourcen/fonts/Orbitron-Medium.otf);}\n" );?>
|
||||
</style>
|
||||
|
||||
<!-- favIcon und Co nach der Empfehlung von https://github.com/audreyr/favicon-cheat-sheet -->
|
||||
<?php require_once($basePath."/pages/shared/faviconAmp.inc.html");?>
|
||||
|
||||
<link rel="canonical" href="<?php echo ( empty($siteData['canonicalLink']) ? getCurPagesUrl() : $siteData['canonicalLink'] );?>" />
|
||||
|
||||
<?php echo( empty($siteData['jsonDataHeader'])?"":$siteData['jsonDataHeader'] );?>
|
||||
|
||||
<title><?php echo( !empty($siteData['title']) ? $siteData['title'] : "Judo im Chemnitzer WSV" );?></title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="messageBox">
|
||||
Dies ist die "mobile" Version für Smartphones etc.<br/>
|
||||
<a href="<?php echo( empty($siteData['canonicalLink']) ? $baseUrl : $siteData['canonicalLink'] );?>">Hier gibt es die Desktop-Variante</a>
|
||||
</div>
|
||||
<?php echo(empty($messages['error']) ? "" : "<div class=\"\">".$messages['error']."</div>");?>
|
||||
<header>
|
||||
<h1 class="noMargin centeredText orbitronFont">
|
||||
<?php echo( empty($siteData['headline']) ? "Judo im CWSV" : $siteData['headline']); ?>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<hr />
|
||||
|
||||
<main>
|
||||
<?php echo( empty($siteData['subNav']) ? "" : $siteData['subNav'] );?>
|
||||
<?php
|
||||
if(!empty($siteData['content'])) foreach($siteData['content'] as $section){
|
||||
foreach($section as $article){
|
||||
echo $article;
|
||||
}
|
||||
}
|
||||
?>
|
||||
</main>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="orbitronFont" id="Inhaltsverzeichnis">
|
||||
<div class="Inhaltsverzeichnis">
|
||||
<a
|
||||
title="Bekanntmachungen der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines"
|
||||
href="<?php echo($canonicalBaseUrl."/");?>news.php"
|
||||
>
|
||||
<div class="navButton fullWidth">Bekanntmachungen</div>
|
||||
</a>
|
||||
<a
|
||||
title="Trainingszeiten und -stätten der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines"
|
||||
href="<?php echo($canonicalBaseUrl."/");?>trainingszeiten.php"
|
||||
>
|
||||
<div class="navButton fullWidth">Trainingszeiten</div>
|
||||
</a>
|
||||
<!-- Restlichen Buttons sind noch nicht eingeplegt-->
|
||||
<a
|
||||
title="Termine, Ausschreibungen und Wegbeschreibungen der Wettkämpfe der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines"
|
||||
href="http://cwsvjudo.bplaced.net/pages/mobile/verein.wettkampfkalender.php"
|
||||
>
|
||||
<div class="navButton fullWidth">Wettkampfkalender</div>
|
||||
</a>
|
||||
<a
|
||||
title="Wettkampfplaner der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines"
|
||||
href="http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo"
|
||||
>
|
||||
<div class="navButton fullWidth">Wettkampfplaner</div>
|
||||
</a>
|
||||
<a
|
||||
title="Alben mit Bildern und Videos der Wettkämpfe der Sektion Judo des Chemnitzer Freizeit- und Wohngebietssportvereines"
|
||||
href="http://cwsvjudo.bplaced.net/pages/mobile/verein.wettkampfgalerien.php"
|
||||
>
|
||||
<div class="navButton fullWidth">Wettkampfgalerien</div>
|
||||
</a>
|
||||
<a
|
||||
title="eMail-Adressen, Telephonnummern und Adressen um mit dem Chemnitzer Freizeit- und Wohngebietssportverein Verbindung aufzunehmen"
|
||||
href="<?php echo($canonicalBaseUrl."/");?>kontakt.php"
|
||||
>
|
||||
<div class="navButton fullWidth">Kontaktdaten</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php include($basePath."/pages/shared/sponsorList.amp.inc");?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
require_once( "/users/cwsvjudo/www/expCounter/counter.php" );
|
||||
?>
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
/// Einbinden der Konfiguration, insbesondere Basisvariablen
|
||||
/// relative Pfadangabe, jedes Verzeichnis soll seine eigene haben
|
||||
require_once("./config.inc.php");
|
||||
/// Daten für den Datenbankzugriff
|
||||
require_once( $basePath."/bonus/db.inc");
|
||||
/// Bibliothek für die Arbeit mit der Newsdatenbank
|
||||
//require_once( $basePath."/ressourcen/phpLib/newsLib.php");
|
||||
/// Bibliothek mit verschienden Hilfsfunktionen
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
|
||||
//require_once(__DIR__.'/phpLib/ampify.php');
|
||||
require_once("./phpLib/cwsvJudoAmpLib.php");
|
||||
|
||||
$siteData['canonicalLink'] = $baseUrl."/pages/desktop/verein.galerien.php";
|
||||
$siteData['headline'] = "Galerien";
|
||||
|
||||
$messages['error'] = "";
|
||||
|
||||
// Datenbankverbindung bereitstellen
|
||||
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
|
||||
if($mysqlConn->connect_error){
|
||||
$messages['error'] += "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "<br />";
|
||||
}
|
||||
else{
|
||||
// mögliche Werte für das Jahr herausfinden
|
||||
$galJahresListe = array();
|
||||
|
||||
$queryJahresListe = "
|
||||
SELECT DISTINCT DATE_FORMAT( datum, '%Y')
|
||||
AS jahr
|
||||
FROM cwsvjudo.wkGalerien
|
||||
WHERE 1
|
||||
ORDER BY DATE_FORMAT( datum, '%Y' ) DESC;
|
||||
";
|
||||
|
||||
$mysqlResults = $mysqlConn->query($queryJahresListe);
|
||||
if( !$mysqlResults ){
|
||||
$messages['error'] += "Fehler bei Datenbankabfrage '".$queryJahresListe."'<br />";
|
||||
}
|
||||
else{
|
||||
while( $mysqlResult = $mysqlResults->fetch_assoc() ){
|
||||
array_push( $galJahresListe, $mysqlResult['jahr']);
|
||||
}
|
||||
}
|
||||
|
||||
// standardmäßig frage die letzten 12 Galerien ab
|
||||
$queryGals = "
|
||||
SELECT id,datum,name,url,typ,teaserBildUrl
|
||||
FROM cwsvjudo.wkGalerien
|
||||
WHERE 1
|
||||
ORDER BY datum DESC LIMIT 12
|
||||
";
|
||||
// Falls ein Konkretes Jahr angegebe wurde, fragen wir dies ab
|
||||
if($galJahr != ""){
|
||||
$minDate = $galJahr."-01-01";
|
||||
$maxDate = $galJahr."-12-31";
|
||||
$queryGals = sprintf("
|
||||
SELECT id,datum,name,url,typ,teaserBildUrl
|
||||
FROM cwsvjudo.wkGalerien
|
||||
WHERE datum >= '%s' AND datum <= '%s' ORDER BY datum ASC;",
|
||||
$mysqlConn->real_escape_string($minDate),
|
||||
$mysqlConn->real_escape_string($maxDate)
|
||||
);
|
||||
}
|
||||
|
||||
$galListe = array();
|
||||
$mysqlResults = $mysqlConn->query($queryGals);
|
||||
if( !$mysqlResults ){
|
||||
$messages['error'] += "Fehler bei Datenbankabfrage '".$queryGals."'<br />";
|
||||
}
|
||||
else{
|
||||
while( $mysqlResult = $mysqlResults->fetch_assoc() ){
|
||||
array_push( $galListe, $mysqlResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//$siteData['jsonDataHeader'] = "<script type=\"application/ld+json\">" . news2json( $news ) . "</script>";
|
||||
|
||||
// Modellierung:
|
||||
// - der Content ist eine Menge von Sections
|
||||
// - eine Section ist eine Folge von Articles
|
||||
$siteData['content'] = array();
|
||||
|
||||
// $newsSection = array();
|
||||
|
||||
$siteData['title'] = "Galerien mit Bildern der Judoka des Chemnitzer WSV";
|
||||
|
||||
$siteData['ampSubNav'] = array(
|
||||
array(
|
||||
'caption' => "Trainings­zeiten",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/clockIconFriendly.svg",
|
||||
'title' => "Trainingszeiten und -orte der Judoka des Chemnitzer WSV",
|
||||
'href' => $canonicalBaseUrl."/trainingszeiten.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "Termine",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/calendarIcon.svg",
|
||||
'title' => "Kalender mit Terminen für Wettkämpfe",
|
||||
'href' => $baseUrl."/pages/desktop/verein.wettkampfkalender.php"
|
||||
),
|
||||
array(
|
||||
'isActive' => 'true',
|
||||
'caption' => "Galerien",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/gallery.svg",
|
||||
'title' => "Bilder und Videos von unseren Wettkämpfen und sonstigen Veranstaltungen",
|
||||
'href' => $canonicalBaseUrl."/galerien.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "JudoWiki",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/wikipediaW.svg",
|
||||
'title' => "Ein kleines Nachschlagewerk über Judo",
|
||||
'href' => $baseUrl."/JudoWiki"
|
||||
),
|
||||
array(
|
||||
'caption' => "Kontakt",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/contact4Ways.svg",
|
||||
'title' => "Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten",
|
||||
'href' => $canonicalBaseUrl."/kontakt.php"
|
||||
),
|
||||
);
|
||||
|
||||
$siteData['subNav'] = "<nav class=\"subNav\">". getAmpSubNav($siteData['ampSubNav']) ."</nav>";
|
||||
|
||||
$siteData['content'] = array();
|
||||
|
||||
// $jahresSelector = "";
|
||||
// $jahresSelector .=
|
||||
// "<nav>Jahresauswahl:<form class=\"yearSelector\" action=\"".$canonicalBaseUrl."/galerien.php"."\">".
|
||||
// "<select name=\"jahr\" onchange=\"javascript: this.form.submit();\" >".
|
||||
// "<optgroup label=\"Jahresauswahl\">".
|
||||
// "<option value=\"".( $galJahr!="" ? "" : " selected" )."\">Neueste</option>";
|
||||
// foreach($galJahresListe as $jahr){
|
||||
// $jahresSelector .=
|
||||
// "<option value=\"".$jahr."\"".( $galJahr==$jahr ? " selected" : "" ).">".$jahr."</option>";
|
||||
// }
|
||||
// $jahresSelector .=
|
||||
// "</optgroup>".
|
||||
// "</select>".
|
||||
// "<noscript><button type=\"submit\">Submit</button></noscript>".
|
||||
// "</form></nav>";
|
||||
|
||||
// array_push(
|
||||
// $siteData['content'],
|
||||
// array(
|
||||
// $jahresSelector
|
||||
// )
|
||||
// );
|
||||
|
||||
$galTable = "";
|
||||
$galTable .=
|
||||
"<table class=\"galTable\">".
|
||||
"<thead><tr><th>Datum</th><th>Link zur Galerie</th></tr></thead>".
|
||||
"<tbody>";
|
||||
// Jede Galerie ausgeben
|
||||
foreach($galListe as $gal){
|
||||
$galTable .=
|
||||
"<tr>".
|
||||
"<td class=\"noWrap\">".
|
||||
"<time datetime=\"".mb_convert_encoding($gal['datum'], 'UTF-8', 'ISO-8859-1')."\">".str_replace("-", "‑", mb_convert_encoding($gal['datum'], 'UTF-8', 'ISO-8859-1') )."</time>".
|
||||
"</td>".
|
||||
"<td class=\"floatClearBoth\">".
|
||||
"<a href=\"http://".$baseDomain."?galId=".$gal['id']."\">";
|
||||
if( $gal['teaserBildUrl'] != "" ){
|
||||
$galTable .=
|
||||
"<div>".
|
||||
"<amp-img".
|
||||
" layout=\"fixed\"".
|
||||
" title=\"".mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1')." - Bilder der Judoka des Chemnitzer WSV\"".
|
||||
" alt=\"Teaserbild ".mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1')."\"".
|
||||
" src=\"http://".$baseDomain."/".mb_convert_encoding($gal['teaserBildUrl'], 'UTF-8', 'ISO-8859-1')."\"".
|
||||
" ".(@getimagesize($basePath."/".$gal['teaserBildUrl'])[3]?getimagesize($basePath."/".$gal['teaserBildUrl'])[3]:"width=\"200\" height=\"133\"").
|
||||
">".
|
||||
"</amp-img>".
|
||||
"</div>";
|
||||
}
|
||||
$galTable .=
|
||||
"<div>".mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1')." (".mb_convert_encoding($gal['typ'], 'UTF-8', 'ISO-8859-1').")</div>".
|
||||
"</a>".
|
||||
"</td>".
|
||||
"</tr>";
|
||||
}
|
||||
$galTable .=
|
||||
"</tbody>".
|
||||
"</table>";
|
||||
array_push(
|
||||
$siteData['content'],
|
||||
array(
|
||||
$galTable
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
require_once('./cwsvJudo.ampTemplate.inc.php');
|
||||
|
||||
$chCounter_page_title = "Galerien (ampVersion)";
|
||||
$chCounter_visible=0;
|
||||
$chCounter_mode='noscript';
|
||||
include($basePath."/expCounter/counter.php");
|
||||
// require_once( "/users/cwsvjudo/www/expCounter/counter.php" );
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
google-site-verification: googlef3ad27a876479282.html
|
||||
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
/// Einbinden der Konfiguration, insbesondere Basisvariablen
|
||||
/// relative Pfadangabe, jedes Verzeichnis soll seine eigene haben
|
||||
require_once("./config.inc.php");
|
||||
/// Daten für den Datenbankzugriff
|
||||
require_once( $basePath."/bonus/db.inc");
|
||||
/// Bibliothek für die Arbeit mit der Newsdatenbank
|
||||
require_once( $basePath."/ressourcen/phpLib/newsLib.php");
|
||||
|
||||
/// Bibliothek mit verschienden Hilfsfunktionen
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
|
||||
require_once(__DIR__.'/phpLib/ampify.php');
|
||||
require_once("./phpLib/cwsvJudoAmpLib.php");
|
||||
|
||||
//$newsId = isset($_GET["newsId"]) ? $_GET["newsId"] : "";
|
||||
//$newsById = array();
|
||||
//$prevNewsId = "";
|
||||
//$postNewsId = "";
|
||||
|
||||
|
||||
// @ToDo: Bad Hack entfernen! $_GET sollte nicht gesetzt werden. Lieber eine Hilfsvariable einführen, die der Reihe nach mit alternativen aufgefüllt werden kann (wenn $_GET nicht gesetzt, dann $_POST usw.)
|
||||
if( empty($_GET['galId']) && !empty($_GET['galld']) ) $_GET['galId'] = $_GET['galld'];
|
||||
// die( "galID: ".$_GET['galId']." galld: ".$_GET['galld']."\n" );
|
||||
|
||||
if(isset($_GET['galId'])){
|
||||
$redirectLink = $baseDomain."/pages/desktop/verein.galerien.php";
|
||||
|
||||
try{
|
||||
$db_connection = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_user, $db_password);
|
||||
|
||||
if(is_positive_integer($_GET['galId'])){
|
||||
// mögliche Werte für das jahr herausfinden
|
||||
$query="SELECT url FROM wkGalerien WHERE id = \"".$_GET['galId']."\" ORDER BY Datum ASC LIMIT 1;";
|
||||
$ergebnis = $db_connection->query($query);
|
||||
$galleryLink = $ergebnis->fetchAll();
|
||||
header("Location: http://".$baseDomain.$galleryLink[0]['url']);
|
||||
//die("Location(".$_GET['galId']."): ".$galleryLink[0]['url']);
|
||||
}
|
||||
$db_connection = NULL;
|
||||
}
|
||||
catch(PDOException $db_error){
|
||||
print "Error!: " . $db_error->getMessage() . "<br/>";
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$siteData['canonicalLink'] = $baseUrl;
|
||||
$siteData['headline'] = "Judo im CWSV";
|
||||
|
||||
$messages['error'] = "";
|
||||
|
||||
// Datenbankverbindung bereitstellen
|
||||
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
|
||||
if($mysqlConn->connect_error){
|
||||
$messages['error'] += "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "<br />";
|
||||
}
|
||||
else{
|
||||
$newsList = getNewsListById($mysqlConn, $newsId, ["limit" => 6]);
|
||||
// print_r($newsList);
|
||||
$prevNewsId = getPrevNewsId($mysqlConn, $newsList[0]);
|
||||
$nextNewsId = getNextNewsId($mysqlConn, end(array_values($newsList)));
|
||||
}
|
||||
|
||||
$siteData['jsonDataHeader'] = "<script type=\"application/ld+json\">" . news2json( $newsList[0] ) . "</script>";
|
||||
|
||||
// Modellierung:
|
||||
// - der Content ist eine Menge von Sections
|
||||
// - eine Section ist eine Folge von Articles
|
||||
$siteData['content'] = array();
|
||||
|
||||
$newsSection = array();
|
||||
|
||||
$siteData['title'] = "Judo im Chemnitzer WSV - Kinder- und Erwachsenentraining";
|
||||
|
||||
$siteData['ampSubNav'] = array(
|
||||
array(
|
||||
'caption' => "Trainings­zeiten",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/clockIconFriendly.svg",
|
||||
'title' => "Trainingszeiten und -orte der Judoka des Chemnitzer WSV",
|
||||
'href' => $canonicalBaseUrl."/trainingszeiten.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "Termine",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/calendarIcon.svg",
|
||||
'title' => "Kalender mit Terminen für Wettkämpfe",
|
||||
'href' => $baseUrl."/pages/desktop/verein.wettkampfkalender.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "Gallerien",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/gallery.svg",
|
||||
'title' => "Bilder und Videos von unseren Wettkämpfen und sonstigen Veranstaltungen",
|
||||
'href' => $baseUrl."/pages/desktop/verein.galerien.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "JudoWiki",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/wikipediaW.svg",
|
||||
'title' => "Ein kleines Nachschlagewerk über Judo",
|
||||
'href' => $baseUrl."/JudoWiki"
|
||||
),
|
||||
array(
|
||||
'caption' => "Kontakt",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/contact4Ways.svg",
|
||||
'title' => "Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten",
|
||||
'href' => $canonicalBaseUrl."/kontakt.php"
|
||||
),
|
||||
);
|
||||
|
||||
$siteData['subNav'] = "<nav class=\"subNav\">". getAmpSubNav($siteData['ampSubNav']) ."</nav>";
|
||||
|
||||
foreach( $newsList as $news)
|
||||
array_push( $newsSection, "<article>".getAmpNews($news)."</article><hr />" );
|
||||
|
||||
array_push($siteData['content'], $newsSection);
|
||||
array_push( $siteData['content'], array (empty($prevNewsId) ? "" : "<a class=\"touchLink\" title=\"weitere News\" href=\"news.php?newsId=".$prevNewsId."\">weitere Neuigkeiten</span></a>") );
|
||||
|
||||
require_once('./cwsvJudo.ampTemplate.inc.php');
|
||||
|
||||
$chCounter_page_title = "Startseite (ampVersion)";
|
||||
$chCounter_visible=0;
|
||||
$chCounter_mode='noscript';
|
||||
include($basePath."/expCounter/counter.php");
|
||||
// require_once( "/users/cwsvjudo/www/expCounter/counter.php" );
|
||||
?>
|
||||
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
/// Einbinden der Konfiguration, insbesondere Basisvariablen
|
||||
/// relative Pfadangabe, jedes Verzeichnis soll seine eigene haben
|
||||
require_once("./config.inc.php");
|
||||
/// Daten für den Datenbankzugriff
|
||||
require_once( $basePath."/bonus/db.inc");
|
||||
/// Bibliothek für die Arbeit mit der Newsdatenbank
|
||||
require_once( $basePath."/ressourcen/phpLib/newsLib.php");
|
||||
/// Bibliothek mit verschienden Hilfsfunktionen
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
|
||||
require_once(__DIR__.'/phpLib/ampify.php');
|
||||
require_once("./phpLib/cwsvJudoAmpLib.php");
|
||||
|
||||
$siteData['canonicalLink'] = $baseUrl."/pages/desktop/kontakt.php";
|
||||
$siteData['headline'] = "Kontaktdaten";
|
||||
|
||||
$messages['error'] = "";
|
||||
|
||||
$cwsvJsonLd = file_get_contents( $basePath."/ressourcen/structuredData/json/cwsv.json" );
|
||||
|
||||
// Datenbankverbindung bereitstellen
|
||||
/* $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
|
||||
if($mysqlConn->connect_error){
|
||||
$messages['error'] += "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "<br />";
|
||||
}
|
||||
else{
|
||||
$news = getNewsById($mysqlConn, $newsId);
|
||||
$prevNewsId = getPrevNewsId($mysqlConn, $news);
|
||||
$nextNewsId = getNextNewsId($mysqlConn, $news);
|
||||
}
|
||||
*/
|
||||
|
||||
// Modellierung:
|
||||
// - der Content ist eine Menge von Sections
|
||||
// - eine Section ist eine Folge von Articles
|
||||
$siteData['content'] = array();
|
||||
|
||||
$newsSection = array();
|
||||
|
||||
$siteData['title'] = "Kontaktmöglichkeiten mit dem Chemnitzer WSV und seiner Abteilung Judo";
|
||||
|
||||
$siteData['ampSubNav'] = array(
|
||||
array(
|
||||
'caption' => "Trainings­zeiten",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/clockIconFriendly.svg",
|
||||
'title' => "Trainingszeiten und -orte der Judoka des Chemnitzer WSV",
|
||||
'href' => $canonicalBaseUrl."/trainingszeiten.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "Termine",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/calendarIcon.svg",
|
||||
'title' => "Kalender mit Terminen für Wettkämpfe",
|
||||
'href' => $baseUrl."/pages/desktop/verein.wettkampfkalender.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "Galerien",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/gallery.svg",
|
||||
'title' => "Bilder und Videos von unseren Wettkämpfen und sonstigen Veranstaltungen",
|
||||
// 'href' => $baseUrl."/pages/desktop/verein.galerien.php"
|
||||
'href' => $canonicalBaseUrl."/galerien.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "JudoWiki",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/wikipediaW.svg",
|
||||
'title' => "Ein kleines Nachschlagewerk über Judo",
|
||||
'href' => $baseUrl."/JudoWiki"
|
||||
),
|
||||
array(
|
||||
'caption' => "Kontakt",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/contact4Ways.svg",
|
||||
'title' => "Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten",
|
||||
'href' => $canonicalBaseUrl."/kontakt.php",
|
||||
'isActive' => 'true',
|
||||
),
|
||||
);
|
||||
|
||||
$siteData['subNav'] = "<nav class=\"subNav\">". getAmpSubNav($siteData['ampSubNav']) ."</nav>";
|
||||
|
||||
$siteData['main'] = "";
|
||||
|
||||
$siteData['main'] .=
|
||||
"<h2>E-Mail</h2>".
|
||||
"<script type=\"application/ld+json\">".$cwsvJsonLd."</script>".
|
||||
"<ul>".
|
||||
"<li>".
|
||||
"<a href=\"mailto:cwsv.sb@web.de\">eMail an den Chemnitzer Freizeit- und Wohngebietssportverein e. V.(cwsv.sb@web.de)</a>".
|
||||
"</li>".
|
||||
"<li>".
|
||||
"Link zum <a href=\"http://www.cwsv-sport.de/Kontakt.htm\">".
|
||||
"Kontaktformular".
|
||||
"</a>".
|
||||
"auf der Homepage des Chemnitzer Freizeit- und Wohngebietssportvereines".
|
||||
"</li>".
|
||||
"<li>".
|
||||
"<amp-img layout=\"responsive\" class=\"pngAddress\" alt=\"eMail\" width=\"420\" height=\"60\" src=\"/ressourcen/graphiken/misc/abc123.png\">".
|
||||
"</li>".
|
||||
"</ul>";
|
||||
|
||||
$siteData['main'] .=
|
||||
"<h2>Adressen</h2>".
|
||||
|
||||
"<ul>".
|
||||
"<li>CWSV - Verwaltung".
|
||||
"<a href=\"http://www.openstreetmap.org/?mlat=50.807643&mlon=12.882060#map=17/50.807643/12.882060\" title=\"Karte der Verwaltung des Chemnitzer WSV\">".
|
||||
"<div itemscope itemtype=\"https://schema.org/SportsActivityLocation\">".
|
||||
"<meta itemprop=\"name\" content=\"Verwaltung des Chemnitzer WSV\" />".
|
||||
"<meta itemprop=\"image\" content=\"http://img.webme.com/pic/c/cwsv-sport/dsc_1425.jpg\" />".
|
||||
"<meta itemprop=\"address\" content=\"Strasse Usti nad Labem 42, 09119 Chemnitz\" />".
|
||||
"<meta itemprop=\"telephone\" content=\"+49 371 2823370\" />".
|
||||
"<meta itemprop=\"openingHours\" content=\"[ 'Mo 8:00-16:30', 'Di 10:00-17:00', 'Mi 8:00-17:00', 'Do 10:00-17:00']\" />".
|
||||
"<meta itemprop=\"sameAs\" content=\"https://www.facebook.com/CWSV-eV-149983928431116/\" />".
|
||||
"<ul>".
|
||||
"<li>Strasse Usti nad Labem 42</li>".
|
||||
"<li>09119 Chemnitz</li>".
|
||||
"<li>Mo 8:00-16:30, Di 10:00-17:00, Mi 8:00-17:00, Do 10:00-17:00</li>".
|
||||
"</ul>".
|
||||
"</div>".
|
||||
"</a>".
|
||||
"</li>".
|
||||
"</ul>";
|
||||
|
||||
$siteData['main'] .=
|
||||
"<h2>Telephon</h2>".
|
||||
"".
|
||||
"<ul>".
|
||||
"<li>CWSV - Verwaltung<script type=\"application/ld+json\">".$cwsvJsonLd."</script>".
|
||||
"<ul>".
|
||||
"<li>Tel.: <a title=\"Telefonnummer der Verwaltung des Chemnitzer WSV\" href=\"tel:+493712823370\">0371 / 28 23 370</a></li>".
|
||||
"<li>Fax.: 0371/ 22 91 79</li>".
|
||||
"<li>Mo 8:00-16:30, Di 10:00-17:00, Mi 8:00-17:00, Do 10:00-17:00</li>".
|
||||
"</ul>".
|
||||
"</li>".
|
||||
"</ul>";
|
||||
|
||||
array_push( $newsSection, $siteData['main'] );
|
||||
array_push($siteData['content'], $newsSection);
|
||||
/* array_push(
|
||||
$siteData['content'],
|
||||
array ( "<a class=\"touchLink fullWidth centeredText\" title=\"weitere News\" href=\"news.php".( empty($prevNewsId) ? "" : "?newsId=".$prevNewsId."\">weitere Neuigkeiten</a>") )
|
||||
);
|
||||
*/
|
||||
require_once('./cwsvJudo.ampTemplate.inc.php');
|
||||
|
||||
$chCounter_page_title = "Kontaktseite (ampVersion)";
|
||||
$chCounter_visible=0;
|
||||
$chCounter_mode='noscript';
|
||||
include($basePath."/expCounter/counter.php");
|
||||
// require_once( "/users/cwsvjudo/www/expCounter/counter.php" );
|
||||
?>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
require_once( "./config.inc.php");
|
||||
require_once( "/users/cwsvjudo/www/bonus/db.inc");
|
||||
require_once( $basePath."/ressourcen/phpLib/newsLib.php");
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
|
||||
require_once(__DIR__.'/phpLib/ampify.php');
|
||||
|
||||
$newsId = isset($_GET["newsId"]) ? $_GET["newsId"] : "";
|
||||
//$newsById = array();
|
||||
$prevNewsId = "";
|
||||
$postNewsId = "";
|
||||
|
||||
$canonicalLinkBase = $baseUrl."/pages/desktop/news.php";
|
||||
|
||||
$siteData['canonicalLink'] = $canonicalLinkBase.(is_positive_integer($newsId)?"?newsId=".$newsId:"");
|
||||
$siteData['headline'] = "Be­kannt­ma­chung­en der Abteilung Judo des CWSV";
|
||||
|
||||
$message['error'] = "";
|
||||
|
||||
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
|
||||
if($mysqlConn->connect_error){
|
||||
$messages['error'] += "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "<br />";
|
||||
}
|
||||
else{
|
||||
$news = getNewsById($mysqlConn, $newsId);
|
||||
$prevNewsId = getPrevNewsId($mysqlConn, $news);
|
||||
$nextNewsId = getNextNewsId($mysqlConn, $news);
|
||||
}
|
||||
|
||||
// Modellierung:
|
||||
// - der Content ist eine Menge von Sections
|
||||
// - eine Section ist eine Folge von Articles
|
||||
$siteData['content'] = array();
|
||||
|
||||
$newsSection = array();
|
||||
|
||||
$siteData['title'] = empty($news['betreff'])?"Neuigkeiten der Abteilung Judo des Chemnnitzer WSV":($news['betreff']." - Judo im CWSV");
|
||||
$siteData['jsonDataHeader'] = "<script type=\"application/ld+json\">" . news2json( $news ) . "</script>";
|
||||
|
||||
// echo( "News: "); print_r($news);
|
||||
$siteData['subNav'] = "";
|
||||
$siteData['subNav'] .= "<nav class=\"ampSubNav\">";
|
||||
$siteData['subNav'] .= "<div>";
|
||||
$siteData['subNav'] .= empty($prevNewsId) ? "" : "<a class=\"touchLink\" title=\"vorherige News\" href=\"news.php?newsId=".$prevNewsId."\">eine News vorher</span></a>";
|
||||
$siteData['subNav'] .= "</div>";
|
||||
$siteData['subNav'] .= "<div>";
|
||||
$siteData['subNav'] .= empty($nextNewsId) ? "" : "<a class=\"touchLink\" title=\"nächste News\" href=\"news.php?newsId=".$nextNewsId."\">eine News später</span></a>";
|
||||
$siteData['subNav'] .= "</div>";
|
||||
$siteData['subNav'] .= "</nav>";
|
||||
|
||||
array_push( $newsSection, "<article>".getAmpNews($news)."</article>" );
|
||||
array_push($siteData['content'], $newsSection);
|
||||
|
||||
require_once('./cwsvJudo.ampTemplate.inc.php');
|
||||
// $chCounter_page_title = "News".( $newsId != "" ? " Id ".$newsId : "" )." (ampVersion)";
|
||||
// $chCounter_visible=0;
|
||||
//include($_SERVER['DOCUMENT_ROOT']."/expCounter/counter.php");
|
||||
// require_once( "/users/cwsvjudo/www/expCounter/counter.php" );
|
||||
?>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
require_once( "./config.inc.php");
|
||||
require_once( "/users/cwsvjudo/www/bonus/db.inc");
|
||||
require_once( $basePath."/ressourcen/phpLib/newsLibDev.php");
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
|
||||
require_once(__DIR__.'/phpLib/ampify.php');
|
||||
|
||||
$newsId = is_positive_integer($_GET["newsId"]) ? $_GET["newsId"] : "";
|
||||
$prevNewsId = "";
|
||||
$postNewsId = "";
|
||||
|
||||
$canonicalLinkBase = $baseUrl."/pages/desktop/news.php";
|
||||
|
||||
$siteData['canonicalLink'] = $canonicalLinkBase.(is_positive_integer($newsId)?"?newsId=".$newsId:"");
|
||||
$siteData['headline'] = "Be­kannt­ma­chung­en der Abteilung Judo des CWSV";
|
||||
|
||||
$message['error'] = "";
|
||||
|
||||
try{
|
||||
$mysqlConn = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_user, $db_password);
|
||||
}
|
||||
catch (PDOException $e){
|
||||
$messages['error'] += "Datenbankverbindung fehlgeschlagen: " . $e->getMessage() . "<br />";
|
||||
$mysqlConn = NULL;
|
||||
}
|
||||
|
||||
// echo("newsId: ".$newsId); die();
|
||||
$news = getNewsById($mysqlConn, $newsId);
|
||||
// echo("News: "); print_r($news); die();
|
||||
$prevNewsId = getPrevNewsId($mysqlConn, $newsId);
|
||||
$nextNewsId = getNextNewsId($mysqlConn, $newsId);
|
||||
|
||||
// Modellierung:
|
||||
// - der Content ist eine Menge von Sections
|
||||
// - eine Section ist eine Folge von Articles
|
||||
$siteData['content'] = array();
|
||||
|
||||
$newsSection = array();
|
||||
|
||||
$siteData['title'] = empty($news['betreff'])?"Neuigkeiten der Abteilung Judo des Chemnnitzer WSV":($news['betreff']." - Judo im CWSV");
|
||||
$siteData['jsonDataHeader'] = "<script type=\"application/ld+json\">" . news2json( $news ) . "</script>";
|
||||
|
||||
// echo( "News: "); print_r($news);
|
||||
$siteData['subNav'] = "";
|
||||
$siteData['subNav'] .= "<nav class=\"ampSubNav\">";
|
||||
$siteData['subNav'] .= "<div>";
|
||||
$siteData['subNav'] .= empty($prevNewsId) ? "" : "<a class=\"touchLink\" title=\"vorherige News\" href=\"news.php?newsId=".$prevNewsId."\">eine News vorher</span></a>";
|
||||
$siteData['subNav'] .= "</div>";
|
||||
$siteData['subNav'] .= "<div>";
|
||||
$siteData['subNav'] .= empty($nextNewsId) ? "" : "<a class=\"touchLink\" title=\"nächste News\" href=\"news.php?newsId=".$nextNewsId."\">eine News später</span></a>";
|
||||
$siteData['subNav'] .= "</div>";
|
||||
$siteData['subNav'] .= "</nav>";
|
||||
|
||||
// echo(getAmpNews($news)); die();
|
||||
foreach( $news as $newsEntry)
|
||||
array_push( $newsSection, "<article>".getAmpNews($newsEntry)."</article>" );
|
||||
array_push($siteData['content'], $newsSection);
|
||||
|
||||
require_once('./cwsvJudo.ampTemplateDev.inc.php');
|
||||
$chCounter_page_title = "News".( $newsId != "" ? " Id ".$newsId : "" )." (ampVersion)";
|
||||
$chCounter_visible=0;
|
||||
// include($_SERVER['DOCUMENT_ROOT']."/expCounter/counter.php");
|
||||
require_once( "/users/cwsvjudo/www/expCounter/counter.php" );
|
||||
?>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header("Location: http://cwsvjudo.bplaced.net/pages/mobile/verein.wettkampfgalerien.php");
|
||||
exit();
|
||||
?>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
function addImgSize($html=''){
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
|
||||
foreach ($dom->getElementsByTagName('img') as $img) {
|
||||
// list($width, $height) = getimagesize( $_SERVER['DOCUMENT_ROOT'].urldecode($img->getAttribute('src')));
|
||||
list($width, $height) = getimagesize( "/users/cwsvjudo/www/".urldecode($img->getAttribute('src')));
|
||||
$img->setAttribute('width', $width);
|
||||
$img->setAttribute('height', $height);
|
||||
}
|
||||
return $dom->saveXML();
|
||||
}
|
||||
|
||||
# Licensed under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
function ampify($html='') {
|
||||
// $html = addImgSize($html);
|
||||
# Replace img, audio, and video elements with amp custom elements
|
||||
$html = str_ireplace(
|
||||
['<img','<video','/video>','<audio','/audio>'],
|
||||
['<amp-img layout="responsive" ','<amp-video','/amp-video>','<amp-audio','/amp-audio>'],
|
||||
$html
|
||||
);
|
||||
# Add closing tags to amp-img custom element
|
||||
$html = preg_replace('/<amp-img(.*?)>/', '<amp-img$1></amp-img>',$html);
|
||||
# Whitelist of HTML tags allowed by AMP
|
||||
$html = strip_tags($html,'<h1><h2><h3><h4><h5><h6><a><p><ul><ol><li><blockquote><q><cite><ins><del><strong><em><code><pre><svg><table><thead><tbody><tfoot><th><tr><td><dl><dt><dd><article><section><header><footer><aside><figure><time><abbr><div><span><hr><small><br><amp-img><amp-audio><amp-video><amp-ad><amp-anim><amp-carousel><amp-fit-rext><amp-image-lightbox><amp-instagram><amp-lightbox><amp-twitter><amp-youtube>');
|
||||
return $html;
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
/// Den htmlCode für die Unterauswahl-Navigationsleiste bereitstellen
|
||||
function getAmpSubNav($someNavElements, $someOptions = array()){
|
||||
$retHtml = "";
|
||||
foreach($someNavElements as $navElement){
|
||||
$retHtml .= "<a class=\"subNavElement";
|
||||
if( !empty($navElement['isActive']) ){
|
||||
if($navElement['isActive'] == "true"){
|
||||
$retHtml .= " activeNav\" title=\"Zurück zur Hauptseite\" href=\"/\" >";
|
||||
}
|
||||
}
|
||||
else{
|
||||
$retHtml .= "\" title=\"".( !empty($navElement['title'])?$navElement['title']:"" )."\"";
|
||||
$retHtml .= " href=\"".( !empty($navElement['href'])?$navElement['href']:"" )."\"";
|
||||
$retHtml .= ">";
|
||||
}
|
||||
$retHtml .= !empty($navElement['icon']) ? "<amp-img layout=\"fixed\" width=\"50\" height=\"50\" class=\"subNavElementIcon\" src=\"".$navElement['icon']."\" alt=\"".(!empty($navElement['caption'])?$navElement['caption']:"Icon")."\" ".(!empty($navElement['title'])?"title=\"".$navElement['title']."\"":"").">" : "";
|
||||
$retHtml .= "<span class=\"subNavElementCaption\">".(!empty($navElement['caption']) ? $navElement['caption'] : "")."</span>";
|
||||
$retHtml .= "</a>";
|
||||
}
|
||||
return $retHtml;
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,16 @@
|
||||
User-agent:*
|
||||
|
||||
Disallow: /geheim/
|
||||
|
||||
Disallow: /expCounter/
|
||||
Disallow: /expCounter/administration
|
||||
|
||||
Disallow: /JudoWiki/*/main/allrecentchanges$
|
||||
Disallow: /JudoWiki/*/pmwiki*
|
||||
Disallow: /JudoWiki/*/search*
|
||||
Disallow: /JudoWiki/*recentchanges*
|
||||
Disallow: /JudoWiki/*action=*
|
||||
|
||||
Sitemap: http://cwsvjudo.bplaced.net/sitemap.xml
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset
|
||||
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
||||
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
||||
>
|
||||
<!-- Desktop Section-->
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/JudoWiki</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/galerien</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/wkKalender</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/trainingszeiten</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/kontakt</loc>
|
||||
</url>
|
||||
<!-- Mobile/Amp Section-->
|
||||
<url>
|
||||
<loc>http://amp.cwsvjudo.bplaced.net/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://amp.cwsvjudo.bplaced.net/trainingszeiten.php</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://amp.cwsvjudo.bplaced.net/kontakt.php</loc>
|
||||
</url>
|
||||
</urlset>
|
||||
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/// Einbinden der Konfiguration, insbesondere Basisvariablen
|
||||
/// relative Pfadangabe, jedes Verzeichnis soll seine eigene haben
|
||||
require_once("./config.inc.php");
|
||||
/// Daten für den Datenbankzugriff
|
||||
require_once( $basePath."/bonus/db.inc");
|
||||
/// Bibliothek für die Arbeit mit der Newsdatenbank
|
||||
require_once( $basePath."/ressourcen/phpLib/newsLib.php");
|
||||
/// Bibliothek mit verschienden Hilfsfunktionen
|
||||
require_once( $basePath."/ressourcen/phpLib/miscAssis.php");
|
||||
|
||||
require_once(__DIR__.'/phpLib/ampify.php');
|
||||
require_once("./phpLib/cwsvJudoAmpLib.php");
|
||||
|
||||
$chCounter_page_title = "Trainingszeiten (ampVersion)";
|
||||
$chCounter_visible=0;
|
||||
include($_SERVER['DOCUMENT_ROOT']."/expCounter/counter.php");
|
||||
|
||||
$siteData['canonicalLink'] = $baseUrl."/pages/desktop/verein.training.php";
|
||||
$siteData['headline'] = "Trainingszeiten";
|
||||
$siteData['title'] = "Trainingszeiten der Judoka des Chemnnitzer WSV";
|
||||
|
||||
$siteData['ampSubNav'] = array(
|
||||
array(
|
||||
'caption' => "Trainings­zeiten",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/clockIconFriendly.svg",
|
||||
'title' => "Trainingszeiten und -orte der Judoka des Chemnitzer WSV",
|
||||
'href' => $canonicalBaseUrl."/trainingszeiten.php",
|
||||
'isActive' => 'true',
|
||||
),
|
||||
array(
|
||||
'caption' => "Termine",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/calendarIcon.svg",
|
||||
'title' => "Kalender mit Terminen für Wettkämpfe",
|
||||
'href' => $baseUrl."/pages/desktop/verein.wettkampfkalender.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "Galerien",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/gallery.svg",
|
||||
'title' => "Bilder und Videos von unseren Wettkämpfen und sonstigen Veranstaltungen",
|
||||
// 'href' => $baseUrl."/pages/desktop/verein.galerien.php"
|
||||
'href' => $canonicalBaseUrl."/galerien.php"
|
||||
),
|
||||
array(
|
||||
'caption' => "JudoWiki",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/wikipediaW.svg",
|
||||
'title' => "Ein kleines Nachschlagewerk über Judo",
|
||||
'href' => $baseUrl."/JudoWiki"
|
||||
),
|
||||
array(
|
||||
'caption' => "Kontakt",
|
||||
'icon' => $baseUrl."/ressourcen/graphiken/icons/contact4Ways.svg",
|
||||
'title' => "Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten",
|
||||
'href' => $canonicalBaseUrl."/kontakt.php"
|
||||
),
|
||||
);
|
||||
|
||||
$siteData['subNav'] = "<nav class=\"subNav\">". getAmpSubNav($siteData['ampSubNav']) ."</nav>";
|
||||
|
||||
|
||||
// Modellierung:
|
||||
// - der Content ist eine Menge von Sections
|
||||
// - eine Section ist eine Folge von Articles
|
||||
$siteData['content'] = array();
|
||||
|
||||
$trainingSection = array();
|
||||
|
||||
$trainingArticle = "";
|
||||
$trainingLocationLink = "";
|
||||
$trainingLocationLink = "<a href=\"http://www.openstreetmap.org/?mlat=50.807643&mlon=12.882060#map=17/50.807643/12.882060\" title=\"Karte des Dojo des CWSV\"><span itemscope itemtype=\"https://schema.org/SportsActivityLocation\"><meta itemprop=\"name\" content=\"Dojo des Chemnitzer WSV\" /><meta itemprop=\"image\" content=\"http://img.webme.com/pic/c/cwsv-sport/dsc_1410.jpg\"/><span itemprop=\"address\">Dojo Sportplatz Str. Usti nad Labem 42, 09120 Chemnitz</span></span></a>";
|
||||
|
||||
$trainingArticle .= "<section>";
|
||||
$trainingArticle .= "<h2>Trainingseinheiten</h2>";
|
||||
$trainingArticle .= "<article>";
|
||||
$trainingArticle .= "<h3>Mittwoch (alle AK)</h3>";
|
||||
$trainingArticle .= "<ul>";
|
||||
$trainingArticle .= "<li>16:00-17:45</li>";
|
||||
$trainingArticle .= "<li>".$trainingLocationLink."</li>";
|
||||
$trainingArticle .= "</ul>";
|
||||
$trainingArticle .= "<h3>Freitag (Kinder)</h3>";
|
||||
$trainingArticle .= "<ul>";
|
||||
$trainingArticle .= "<li>16:00-17:45</li>";
|
||||
$trainingArticle .= "<li>".$trainingLocationLink."</li>";
|
||||
$trainingArticle .= "</ul>";
|
||||
$trainingArticle .= "<h3>Freitag (Jugend/EW)</h3>";
|
||||
$trainingArticle .= "<ul>";
|
||||
$trainingArticle .= "<li>17:15-19:00</li>";
|
||||
$trainingArticle .= "<li>".$trainingLocationLink."</li>";
|
||||
$trainingArticle .= "</ul>";
|
||||
$trainingArticle .= "</article>";
|
||||
$trainingArticle .= "<article>";
|
||||
$trainingArticle .= "<h2>Karten</h2>";
|
||||
$trainingArticle .= "<ul><li>".$trainingLocationLink."</li></ul>";
|
||||
$trainingArticle .= "</article>";
|
||||
$trainingArticle .= "</section>";
|
||||
|
||||
array_push($trainingSection, $trainingArticle);
|
||||
|
||||
array_push($siteData['content'], $trainingSection);
|
||||
|
||||
require_once('cwsvJudo.ampTemplate.inc.php');
|
||||
?>
|
||||
@@ -0,0 +1,9 @@
|
||||
http://cwsvjudo.bplaced.net/
|
||||
http://cwsvjudo.bplaced.net/JudoWiki
|
||||
http://cwsvjudo.bplaced.net/galerien
|
||||
http://cwsvjudo.bplaced.net/wkKalender
|
||||
http://cwsvjudo.bplaced.net/trainingszeiten
|
||||
http://cwsvjudo.bplaced.net/kontakt
|
||||
http://amp.cwsvjudo.bplaced.net/
|
||||
http://amp.cwsvjudo.bplaced.net/trainingszeiten.php
|
||||
http://amp.cwsvjudo.bplaced.net/kontakt.php
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
/// Umleitung eingeführt am 2017-09-14
|
||||
|
||||
/// Einbinden der Konfiguration, insbesondere Basisvariablen
|
||||
/// relative Pfadangabe, jedes Verzeichnis soll seine eigene haben
|
||||
require_once("./config.inc.php");
|
||||
|
||||
// Redirect zur neuen Seite
|
||||
include($basePath."/ressourcen/phpLib/redirect.php");
|
||||
redirect($canonicalBaseUrl."/trainingszeiten.php", 301);
|
||||
// Damit es einen Anhaltspunkt gibt, ob die alte Seite noch besucht wird, stoßen wir den Counter an
|
||||
// $chCounter_page_title = "Startseite (alt)";
|
||||
// $chCounter_visible=0;
|
||||
// include($_SERVER['DOCUMENT_ROOT']."/expCounter/counter.php");
|
||||
exit();
|
||||
?>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/// Die Basisdomain, unter der die Hauptseite zu erreichen ist
|
||||
$baseDomain = "cwsvjudo.bplaced.net";
|
||||
/// Subdomain, unter dem dieses Verzeichnis zu finden ist (falls der Fall gegeben ist)
|
||||
$subDomain = "amp";
|
||||
/// Basis(/Root)-Verzeichnis auf dem Server (für Dateizugriffe, insbesondere phpIncludes)
|
||||
$basePath = "/users/cwsvjudo/www";
|
||||
|
||||
/// Url zum Zugriff auf "shared Data" unter der Hauptadresse
|
||||
$baseUrl = "http://".$baseDomain;
|
||||
/// Die kanonische Url dieses Verzeichnisses (unter welcher
|
||||
/// Domainadresse die Seiten dieses Verzeichnisses bevorzugt zu
|
||||
/// erreichen seien sollen, also entweder eine SubdomainUrl, oder die
|
||||
/// baseUrl mit dem Verzeichnis angehängt)
|
||||
/// Achtung: Gedacht für eine einheitliche Bezeichnung bei internem
|
||||
/// Verlinken. Der canonicalLink im Header ist bei ampSeiten nicht die
|
||||
/// eigene Adresse, sondern die (kanonische) Adresse der "normalen"
|
||||
/// Version der Seite.
|
||||
$canonicalBaseUrl = "http://".$subDomain.".".$baseDomain;
|
||||
?>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,23 @@
|
||||
<h2>Impressum</h2>
|
||||
<p>Chemnitzer Freizeit- und Wohngebietssportverein<br />
|
||||
Straße Usti nad Labem 42<br />Abteilung Judo<br />09120 Chemnitz</p>
|
||||
<p>Telefon: +49 (0) 371 28 23 370<br />
|
||||
Telefax: +49 (0) 371 22 91 79<br />
|
||||
E-Mail: <a href="mailto:cwsv.sb@web.de">cwsv.sb@web.de</a><br />
|
||||
</p>
|
||||
<p><strong>Vertreten durch:</strong><br />Frau Birgit Hiebner<br />
|
||||
Herr Lothar Franke</p><p><strong>Registereintrag:</strong><br />Eingetragen im Vereinsregister.<br />Registergericht: Stadt Chemnitz<br />Registernummer: 1556</p><p><strong>Verantwortlich für den Inhalt</strong> (gem. § 55 Abs. 2 RStV):<br />Marko Bunzel</p>
|
||||
<br /><br /><h2>Disclaimer – rechtliche Hinweise</h2>
|
||||
§ 1 Warnhinweis zu Inhalten<br />
|
||||
Die kostenlosen und frei zugänglichen Inhalte dieser Webseite wurden mit größtmöglicher Sorgfalt erstellt. Der Anbieter dieser Webseite übernimmt jedoch keine Gewähr für die Richtigkeit und Aktualität der bereitgestellten kostenlosen und frei zugänglichen journalistischen Ratgeber und Nachrichten. Namentlich gekennzeichnete Beiträge geben die Meinung des jeweiligen Autors und nicht immer die Meinung des Anbieters wieder. Allein durch den Aufruf der kostenlosen und frei zugänglichen Inhalte kommt keinerlei Vertragsverhältnis zwischen dem Nutzer und dem Anbieter zustande, insoweit fehlt es am Rechtsbindungswillen des Anbieters.<br />
|
||||
<br />
|
||||
§ 2 Externe Links<br />
|
||||
Diese Website enthält Verknüpfungen zu Websites Dritter ("externe Links"). Diese Websites unterliegen der Haftung der jeweiligen Betreiber. Der Anbieter hat bei der erstmaligen Verknüpfung der externen Links die fremden Inhalte daraufhin überprüft, ob etwaige Rechtsverstöße bestehen. Zu dem Zeitpunkt waren keine Rechtsverstöße ersichtlich. Der Anbieter hat keinerlei Einfluss auf die aktuelle und zukünftige Gestaltung und auf die Inhalte der verknüpften Seiten. Das Setzen von externen Links bedeutet nicht, dass sich der Anbieter die hinter dem Verweis oder Link liegenden Inhalte zu Eigen macht. Eine ständige Kontrolle der externen Links ist für den Anbieter ohne konkrete Hinweise auf Rechtsverstöße nicht zumutbar. Bei Kenntnis von Rechtsverstößen werden jedoch derartige externe Links unverzüglich gelöscht.<br />
|
||||
<br />
|
||||
§ 3 Urheber- und Leistungsschutzrechte<br />
|
||||
Die auf dieser Website veröffentlichten Inhalte unterliegen dem deutschen Urheber- und Leistungsschutzrecht. Jede vom deutschen Urheber- und Leistungsschutzrecht nicht zugelassene Verwertung bedarf der vorherigen schriftlichen Zustimmung des Anbieters oder jeweiligen Rechteinhabers. Dies gilt insbesondere für Vervielfältigung, Bearbeitung, Übersetzung, Einspeicherung, Verarbeitung bzw. Wiedergabe von Inhalten in Datenbanken oder anderen elektronischen Medien und Systemen. Inhalte und Rechte Dritter sind dabei als solche gekennzeichnet. Die unerlaubte Vervielfältigung oder Weitergabe einzelner Inhalte oder kompletter Seiten ist nicht gestattet und strafbar. Lediglich die Herstellung von Kopien und Downloads für den persönlichen, privaten und nicht kommerziellen Gebrauch ist erlaubt.<br />
|
||||
<br />
|
||||
Die Darstellung dieser Website in fremden Frames ist nur mit schriftlicher Erlaubnis zulässig.<br />
|
||||
<br />
|
||||
§ 4 Besondere Nutzungsbedingungen<br />
|
||||
Soweit besondere Bedingungen für einzelne Nutzungen dieser Website von den vorgenannten Paragraphen abweichen, wird an entsprechender Stelle ausdrücklich darauf hingewiesen. In diesem Falle gelten im jeweiligen Einzelfall die besonderen Nutzungsbedingungen.Quelle: <a href="http://www.impressum-recht.de/impressum-generator/">Impressum-Generator von Impressum-Recht.de</a>
|
||||
@@ -0,0 +1,23 @@
|
||||
<h2>Impressum</h2>
|
||||
<p>Chemnitzer Freizeit- und Wohngebietssportverein<br />
|
||||
Straße Usti nad Labem 42<br />Abteilung Judo<br />09120 Chemnitz</p>
|
||||
<p>Telefon: +49 (0) 371 28 23 370<br />
|
||||
Telefax: +49 (0) 371 22 91 79<br />
|
||||
E-Mail: <a href="mailto:cwsv.sb@web.de">cwsv.sb@web.de</a><br />
|
||||
</p>
|
||||
<p><strong>Vertreten durch:</strong><br />Frau Birgit Hiebner<br />
|
||||
Herr Lothar Franke</p><p><strong>Registereintrag:</strong><br />Eingetragen im Vereinsregister.<br />Registergericht: Stadt Chemnitz<br />Registernummer: 1556</p><p><strong>Verantwortlich für den Inhalt</strong> (gem. § 55 Abs. 2 RStV):<br />Marko Bunzel</p>
|
||||
<br /><br /><h2>Disclaimer – rechtliche Hinweise</h2>
|
||||
§ 1 Warnhinweis zu Inhalten<br />
|
||||
Die kostenlosen und frei zugänglichen Inhalte dieser Webseite wurden mit größtmöglicher Sorgfalt erstellt. Der Anbieter dieser Webseite übernimmt jedoch keine Gewähr für die Richtigkeit und Aktualität der bereitgestellten kostenlosen und frei zugänglichen journalistischen Ratgeber und Nachrichten. Namentlich gekennzeichnete Beiträge geben die Meinung des jeweiligen Autors und nicht immer die Meinung des Anbieters wieder. Allein durch den Aufruf der kostenlosen und frei zugänglichen Inhalte kommt keinerlei Vertragsverhältnis zwischen dem Nutzer und dem Anbieter zustande, insoweit fehlt es am Rechtsbindungswillen des Anbieters.<br />
|
||||
<br />
|
||||
§ 2 Externe Links<br />
|
||||
Diese Website enthält Verknüpfungen zu Websites Dritter ("externe Links"). Diese Websites unterliegen der Haftung der jeweiligen Betreiber. Der Anbieter hat bei der erstmaligen Verknüpfung der externen Links die fremden Inhalte daraufhin überprüft, ob etwaige Rechtsverstöße bestehen. Zu dem Zeitpunkt waren keine Rechtsverstöße ersichtlich. Der Anbieter hat keinerlei Einfluss auf die aktuelle und zukünftige Gestaltung und auf die Inhalte der verknüpften Seiten. Das Setzen von externen Links bedeutet nicht, dass sich der Anbieter die hinter dem Verweis oder Link liegenden Inhalte zu Eigen macht. Eine ständige Kontrolle der externen Links ist für den Anbieter ohne konkrete Hinweise auf Rechtsverstöße nicht zumutbar. Bei Kenntnis von Rechtsverstößen werden jedoch derartige externe Links unverzüglich gelöscht.<br />
|
||||
<br />
|
||||
§ 3 Urheber- und Leistungsschutzrechte<br />
|
||||
Die auf dieser Website veröffentlichten Inhalte unterliegen dem deutschen Urheber- und Leistungsschutzrecht. Jede vom deutschen Urheber- und Leistungsschutzrecht nicht zugelassene Verwertung bedarf der vorherigen schriftlichen Zustimmung des Anbieters oder jeweiligen Rechteinhabers. Dies gilt insbesondere für Vervielfältigung, Bearbeitung, Übersetzung, Einspeicherung, Verarbeitung bzw. Wiedergabe von Inhalten in Datenbanken oder anderen elektronischen Medien und Systemen. Inhalte und Rechte Dritter sind dabei als solche gekennzeichnet. Die unerlaubte Vervielfältigung oder Weitergabe einzelner Inhalte oder kompletter Seiten ist nicht gestattet und strafbar. Lediglich die Herstellung von Kopien und Downloads für den persönlichen, privaten und nicht kommerziellen Gebrauch ist erlaubt.<br />
|
||||
<br />
|
||||
Die Darstellung dieser Website in fremden Frames ist nur mit schriftlicher Erlaubnis zulässig.<br />
|
||||
<br />
|
||||
§ 4 Besondere Nutzungsbedingungen<br />
|
||||
Soweit besondere Bedingungen für einzelne Nutzungen dieser Website von den vorgenannten Paragraphen abweichen, wird an entsprechender Stelle ausdrücklich darauf hingewiesen. In diesem Falle gelten im jeweiligen Einzelfall die besonderen Nutzungsbedingungen.Quelle: <a href="http://www.impressum-recht.de/impressum-generator/">Impressum-Generator von Impressum-Recht.de</a>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
||||
<p><strong>Impressum</strong></p>
|
||||
<p>Anbieter:<br />Max Mustermann<br />Musterstraße 1<br />80999 München</p>
|
||||
<p>Kontakt:<br />Telefon: 089/1234567-8<br />Telefax: 089/1234567-9<br />E-Mail: mail@mustermann.de<br />Website: www.mustermann.de</p>
|
||||
<p> </p>
|
||||
<p>Bei redaktionellen Inhalten:</p>
|
||||
<p>Verantwortlich nach § 55 Abs.2 RStV<br />Moritz Schreiberling<br />Musterstraße 2<br />80999 München</p>
|
||||
@@ -1,324 +0,0 @@
|
||||
<?php
|
||||
// Daten der Datenbank laden
|
||||
require_once($_SERVER['DOCUMENT_ROOT']."/bonus/db.inc");
|
||||
|
||||
/// Abfrage der ausgewählten Bilder einer Galerie
|
||||
function getPickedImages($aMysqlConn, $aGalId){
|
||||
$retPickedImages = array();
|
||||
/// Erstmal bisher ausgewählte Bilder abfragen ...
|
||||
$queryPickedImages = sprintf(
|
||||
"SELECT * FROM cwsvjudo.galImgPicker WHERE galId = '%s';",
|
||||
$aMysqlConn->real_escape_string($aGalId)
|
||||
);
|
||||
|
||||
// die($queryPickedImages);
|
||||
|
||||
$resultsPickedImages = $aMysqlConn->query($queryPickedImages);
|
||||
|
||||
/// @todo Wie kann ich hier sinnvoll einen Fehler zurückliefern? Nullpointer?
|
||||
if( !$resultsPickedImages ){
|
||||
$retMessage['error'] .= "Fehler ('".$aMysqlConn->error."') bei Datenbankabfrage '".$queryPickedImages."'<br />";
|
||||
die( "Fehler ('".$aMysqlConn->error."') bei Datenbankabfrage '".$queryPickedImages."'<br />");
|
||||
}
|
||||
else{
|
||||
while( $pickedImagesResult = $resultsPickedImages->fetch_assoc() ){
|
||||
$retPickedImages = array_merge($retPickedImages, explode(',', $pickedImagesResult['pickedImages']) );
|
||||
}
|
||||
}
|
||||
//print_r($retPickedImages); die();
|
||||
return array_unique( $retPickedImages );
|
||||
}/// Ende getPickedImages
|
||||
|
||||
/// Hilfsfunktion zum anpassen der htmlDescription
|
||||
function descrName($aName){
|
||||
$retVal = "Bilder der Judoka des Chemnitzer WSV beim Wettkampf ".$aName;
|
||||
if( strpos($aName, "Sommerabschlussgrillen") >= 0 ) $retVal = "Bilder der Judoka des Chemnitzer WSV beim ".$aName;
|
||||
if( strpos($aName, "Jahrendefeier") >= 0 ) $retVal = "Bilder der Judoka des Chemnitzer WSV bei der ".$aName;
|
||||
return $retVal;
|
||||
}/// Ende descrName
|
||||
|
||||
$loginStatus = "false";
|
||||
$chooseMode = "false";
|
||||
$showAllMode = "false";
|
||||
$messages = array();
|
||||
$galleryId = "0";
|
||||
$pickedImages = array();
|
||||
|
||||
/// Übergebene galleryId abfragen
|
||||
if( !empty($_GET['galId'] ) ) $galleryId = $_GET['galId'];
|
||||
/// @todo Woher erhalte ich die galleryID, wenn sie nicht übergeben wird?
|
||||
|
||||
/// Nachschauen, ob alle Bilder gezeigt werden sollen
|
||||
if( $_GET['showAll'] == "true" )
|
||||
$showAllMode = "true";
|
||||
|
||||
// Testen, ob wir im Bilderauswahlmodus sind...
|
||||
if($_GET['chooseMode'] == "true"){
|
||||
$chooseMode = "true";
|
||||
// Falls ja, dann teste, ob man angemeldet ist
|
||||
/// @todo brauche ich das, wenn ich nur testen will, ob bereits angemeldet ist? -> anscheinend ja!
|
||||
session_start();
|
||||
session_regenerate_id();
|
||||
// Falls der serverseitige Logincookie nicht gesetzt ist
|
||||
if( empty($_SESSION['login']) ){
|
||||
$loginStatus = "false";
|
||||
$messages['info'] .= "Info: Der Bilderauswahlmodus ist nur möglich, wenn man angemeldet ist!<br />";
|
||||
}
|
||||
else{
|
||||
$loginStatus = "true";
|
||||
/// @todo Testen, ob eine intZahl vorliegt
|
||||
/// @todo Testen, ob wir in der richtigen Galerie sind
|
||||
$messages['info'] .= "Info: Der Bilderauswahlmodus für Galerie ".$galleryId." ist aktiv!<br />";
|
||||
}
|
||||
}
|
||||
|
||||
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
|
||||
|
||||
if($mysqlConn->connect_error){
|
||||
$message['error'] .= "Fehler: Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "<br />";
|
||||
}
|
||||
else{
|
||||
$pickedImages = getPickedImages( $mysqlConn, $galleryId );
|
||||
$mysqlConn->close();
|
||||
}
|
||||
|
||||
/// Überschreiben der imgList mit den ausgewählten Bildern
|
||||
$allImgList = $imgList; // Sicherungskopie
|
||||
|
||||
if( count($pickedImages) > 24 )
|
||||
$pickedImages = array_rand( $pickedImages, 24);
|
||||
else{
|
||||
$restImages = array_diff( $allImgList, $pickedImages );
|
||||
// echo("restImages: "); print_r($restImages);
|
||||
foreach( array_rand( $restImages, 24-count($pickedImages) ) as $k ) {
|
||||
$pickedImages[] = $restImages[$k];
|
||||
}
|
||||
// echo("pickedImages: "); print_r($pickedImages);
|
||||
}
|
||||
$imgList = $pickedImages;
|
||||
// echo("imgList: "); print_r($imgList);
|
||||
|
||||
/// @todo ein Sortieren nach dem ursprünglichen Index fehlt
|
||||
usort($imgList, function($a, $b) use($allImgList){return array_search($a, $allImgList) > array_search($b, $allImgList);} );
|
||||
$imgList = array_values( $imgList );// Zum reNummerieren
|
||||
// echo("imgList: "); print_r($imgList);
|
||||
<<<<<<< HEAD
|
||||
|
||||
if( $showAllMode == "true") $imgList = $allImgList;
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> d971010d9cd5d2b4b6e4aea87836759422091f96
|
||||
$imgInfos = array();
|
||||
foreach( $imgList as $imgName ){
|
||||
array_push( $imgInfos, getimagesize("thumbs/".str_replace(".jpg", ".png", $imgName)));
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<title><?php echo $wkName?> - Bilderalbum</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="description" content="<?php echo descrName($wkName);?>">
|
||||
<meta name="keywords" content="Album, Fotos">
|
||||
<!-- BluimpGallery Zeug -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/ressourcen/blueimpGallery/css/blueimp-gallery.css">
|
||||
<link rel="stylesheet" href="/ressourcen/blueimpGallery/css/blueimp-gallery-indicator.css">
|
||||
<link rel="stylesheet" href="/ressourcen/blueimpGallery/css/blueimp-gallery-video.css">
|
||||
|
||||
<!-- favIcon und Co nach der empfehlung von https://github.com/audreyr/favicon-cheat-sheet -->
|
||||
<link rel="shortcut icon" type="image/x-icon" sizes="16x16 32x32 48x48 64x64" href="/ressourcen/graphiken/logos/favicon/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="/ressourcen/graphiken/logos/apple-touch-icon/apple-touch-icon-152.png" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/ressourcen/graphiken/logos/apple-touch-icon/apple-touch-icon-180.png" />
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
|
||||
<link rel="canonical" href="http://cwsvjudo.bplaced.net<?php echo $_SERVER['REQUEST_URI']?>" />
|
||||
|
||||
<script type="text/javascript" src="/ressourcen/jsLib/jquery-3.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="/ressourcen/jsLib/jquery.lazyload.min.js"></script>
|
||||
<style>
|
||||
.lazy{ display: none;}
|
||||
.smallFont{font-size: small;}
|
||||
.centerText{text-align: center;}
|
||||
.navButton{
|
||||
box-sizing: border-box;
|
||||
border-color: white;
|
||||
border-style: outset;
|
||||
border-radius: 1em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
padding-left: .5em;
|
||||
padding-right: .5em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body style="color: #000000; background-color: #FFAE00" >
|
||||
<?php
|
||||
include( $_SERVER['DOCUMENT_ROOT'].'/ressourcen/phpLib/is_mobile.php');
|
||||
if(is_mobile()) echo "<a title=\"Galerien der Judoka des Chemnitzer WSV\" href=\"/pages/mobile/verein.wettkampfgalerien.php\">Zur Galerieübersicht</a>";
|
||||
else echo "<a title=\"Galerien der Judoka des Chemnitzer WSV\" href=\"/pages/desktop/verein.galerien.php\">Zur Galerieübersicht</a>";
|
||||
?>
|
||||
<?php
|
||||
/// Eine kleine Messagebox
|
||||
if( !empty($messages) ){
|
||||
?>
|
||||
<div style="border: 1px solid black">
|
||||
<?php
|
||||
if( !empty( $messages['info'] ) ) echo( $messages['info'] );
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
// echo("pickedImages: "); print_r($pickedImages);
|
||||
/// Ende MessageBox
|
||||
?>
|
||||
|
||||
<h1 class="centerText" >
|
||||
Photoalbum [<b><?php echo $wkName?></b>]
|
||||
</h1>
|
||||
<?php
|
||||
if( $showAllMode == "true" ){
|
||||
?>
|
||||
<p class="centerText smallFont">
|
||||
[<?php echo count($imgList)?> Bilder]
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
else{
|
||||
?>
|
||||
<a href=<?php echo( "\"?galId=".(empty($galleryId)?"0":$galleryId)."&showAll=true\"");?>><div class="navButton" style="width: 100%;">Alle Bilder einblenden </div></a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<p class="centerText smallFont">
|
||||
Auf die jeweiligen Bilder klicken um eine größere Ansicht zu bekommen.
|
||||
</p>
|
||||
<hr/>
|
||||
<!-- The container for the list of example images -->
|
||||
<div id="links" class="links centerText">
|
||||
<?php
|
||||
if( $chooseMode == "true" ){
|
||||
echo( "<form action=\"http://cwsvjudo.bplaced.net/ressourcen/phpLib/imgGallery/imgPicker.php\" method=\"post\">" );
|
||||
echo( "<input type=\"hidden\" name=\"galId\" value=\"".$galleryId."\">" );
|
||||
}
|
||||
$imgSize = count( $imgList );
|
||||
for( $imgIndex = 0; $imgIndex < $imgSize; ++$imgIndex){
|
||||
/// Das Bild soll nur angezeigt werden, falls es ausgewählt ist, oder alle gezeigt werden sollen
|
||||
// if( $chooseMode == "true" || $showAllMode == "true" || in_array($imgList[$imgIndex], $pickedImages) ){
|
||||
if( $chooseMode == "true" ){
|
||||
echo( "<label><input type=\"checkbox\" name=\"pickedImages[]\" value=\"".$imgList[$imgIndex]."\">" );
|
||||
}
|
||||
echo "\t\t\t\t<span>".
|
||||
"<img class=\"lazy\" ".
|
||||
"id=\"Image".( $imgIndex )."\" ".
|
||||
"data-original=\"./thumbs/".str_replace(".jpg", ".png", $imgList[$imgIndex])."\" ".
|
||||
$imgInfos[$imgIndex][3]." ".
|
||||
"alt=\"[".( $imgIndex )."/".( $imgSize )."]\" ".
|
||||
"title=\"".( $wkName )." Bild ".( $imgIndex +1 )." von ".( $imgSize )."\" ".
|
||||
"onclick=\"startGalleryShow(" . $imgIndex . ");\"".
|
||||
"/>".
|
||||
"</span>\n";
|
||||
if( $chooseMode == "true" ){
|
||||
echo( "</label>" );
|
||||
}
|
||||
// }
|
||||
}
|
||||
if( $chooseMode == "true" ){
|
||||
echo( "<button type=\"submit\">Eingaben absenden</button>" );
|
||||
echo( "</form>" );
|
||||
}
|
||||
?>
|
||||
<noscript>
|
||||
<?php
|
||||
$imgSize = count( $imgList );
|
||||
for( $imgIndex = 0; $imgIndex < $imgSize; ++$imgIndex){
|
||||
echo
|
||||
"\t\t\t\t<span>".
|
||||
"<a href=\"view.php?index=".( $imgIndex )."\" >".
|
||||
"<img id=\"Image".( $imgIndex + 1)."\" ".
|
||||
// "src=\"./thumbs/".str_replace(".jpg", ".png", $imgList[$imgIndex])."\" ".
|
||||
"src=\"./thumbs/r_".str_replace(".jpg", ".png", $imgList[$imgIndex])."\" ".
|
||||
"alt=\"[".( $imgIndex )."/".( $imgSize )."]\" ".
|
||||
"title=\"".( $wkName )." Bild ".( $imgIndex + 1 )." von ".( $imgSize )."\" ".
|
||||
"/>".
|
||||
"</a>".
|
||||
"</span>\n";
|
||||
}
|
||||
?>
|
||||
</noscript>
|
||||
</div>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
$(function() {
|
||||
$("img.lazy").show().lazyload();
|
||||
// $("img.lazy").lazyload();
|
||||
});
|
||||
</script>
|
||||
<!-- BluimpGalerry Lightbox Version -->
|
||||
<!-- The Gallery as lightbox dialog, should be a child element of the document body -->
|
||||
<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls">
|
||||
<div class="slides"></div>
|
||||
<h2 class="title"><?php echo $wkName?></h2>
|
||||
<a class="prev">‹</a>
|
||||
<a class="next">›</a>
|
||||
<a class="close">×</a>
|
||||
<a class="play-pause"></a>
|
||||
<ol class="indicator"></ol>
|
||||
</div>
|
||||
<script type="text/javascript" src="/ressourcen/blueimpGallery/js/blueimp-gallery.min.js"></script>
|
||||
<script type="text/javascript" src="/ressourcen/blueimpGallery/js/jquery.blueimp-gallery.min.js"></script>
|
||||
<script>
|
||||
function startGalleryShow(startIndex = 0){
|
||||
var imgList = [
|
||||
<?php
|
||||
$imgSize = count( $imgList );
|
||||
for( $imgIndex = 0; $imgIndex < $imgSize; ++$imgIndex){
|
||||
echo "\"".( $imgList[ $imgIndex ] )."\", ";
|
||||
}
|
||||
?>];
|
||||
var gallery = blueimp.Gallery(
|
||||
imgList,
|
||||
{
|
||||
onslide: function (index, slide) {
|
||||
var counterUrl = "/expCounter/counter.php";
|
||||
var pageUrl = encodeURIComponent( window.location.href ) + "?index=" + index.toString();
|
||||
var pageTitle = document.title + " [" + index.toString() + "]";
|
||||
var callUrl = counterUrl + "?jscode_version=1.2&chCounter_mode=js&status=active&visible=0&page_title=" + pageTitle + "&page_url=" + pageUrl;
|
||||
|
||||
var xmlHttp = new XMLHttpRequest();
|
||||
xmlHttp.open("GET", callUrl, true); // true for asynchronous
|
||||
xmlHttp.send(null);
|
||||
},
|
||||
startSlideshow: true,
|
||||
stretchImages: true,
|
||||
index: startIndex,
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
window.onload = function () {
|
||||
startGalleryShow();
|
||||
};
|
||||
// startGalleryShow();
|
||||
</script>
|
||||
<hr/>
|
||||
<!--Beginn der Einbindung des Counters-->
|
||||
<?php
|
||||
$chCounter_template = <<<TEMPLATE
|
||||
<table>
|
||||
<tr>
|
||||
<td>Besucher online: {V_VISITORS_CURRENTLY_ONLINE}</td>
|
||||
<td>Besucher bisher: {V_PAGE_VIEWS_THIS_PAGE}</td>
|
||||
</tr>
|
||||
</table>
|
||||
TEMPLATE;
|
||||
$chCounter_page_title = "Photoalbum ".$wkName;
|
||||
$chCounter_visible=1; include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');?>
|
||||
<!--Ende der Einbindung des Counters-->
|
||||
</body>
|
||||
</html>
|
||||
27
homepage/redesign2018/markdownExperiment/sitemap.xml
Normal file
27
homepage/redesign2018/markdownExperiment/sitemap.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset
|
||||
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
||||
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
||||
>
|
||||
<!-- Responsive Section-->
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/galerien</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/wkKalender</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/trainingszeiten</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/kontakt</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://cwsvjudo.bplaced.net/JudoWiki</loc>
|
||||
</url>
|
||||
</urlset>
|
||||
@@ -83,11 +83,11 @@ videos/webm/%.webm: videos/aufnahmen/mögel/%.MP4
|
||||
-an \
|
||||
-f webm \
|
||||
$@
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file $@ \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
@@ -118,11 +118,11 @@ videos/webm/%.webm: videos/aufnahmen/moegel/%.MP4
|
||||
-an \
|
||||
-f webm \
|
||||
$@
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file $@ \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
@@ -163,11 +163,11 @@ videos/webm/%.webm: videos/aufnahmen/helko/%.mp4
|
||||
-an \
|
||||
-f webm \
|
||||
$@
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file $@ \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@) \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
@@ -198,11 +198,11 @@ videos/webm/%.webm: videos/aufnahmen/papaRomy/%.mp4
|
||||
-an \
|
||||
-f webm \
|
||||
$@
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
"ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file $@ \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# "ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
@@ -233,11 +233,11 @@ videos/webm/%.webm: videos/aufnahmen/papaRomy/%.webm
|
||||
-an \
|
||||
-f webm \
|
||||
$@
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
"ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file $@ \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# "ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file $@ \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
@@ -268,11 +268,11 @@ videos/webm/%.webm: videos/aufnahmen/elly/%.mp4
|
||||
-an \
|
||||
-f webm \
|
||||
"$@"
|
||||
curl \
|
||||
--upload-file "$@" \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
"ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file "$@" \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# "ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file "$@" \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
@@ -282,11 +282,11 @@ videos/webm/%.webm: videos/aufnahmen/elly/%.mp4
|
||||
videos/thumbnails/%.jpg: videos/webm/%.webm
|
||||
mkdir -p videos/thumbnails
|
||||
-ffmpeg -i "$^" -vf "select=gt(scene\,0.4)" -frames:v 5 -vsync vfr -vf fps=fps=1/600 "$@"
|
||||
curl \
|
||||
--upload-file "$@" \
|
||||
--user cwsvjudo:Dee4oquu \
|
||||
"ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
--ftp-create-dirs
|
||||
# curl \
|
||||
# --upload-file "$@" \
|
||||
# --user cwsvjudo:Dee4oquu \
|
||||
# "ftp://cwsvjudo.square7.net/videoalben/videoalben.2018/$(VID_GAL_DIR)/$(patsubst videos/%,%,$@)" \
|
||||
# --ftp-create-dirs
|
||||
curl \
|
||||
--upload-file "$@" \
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$wkName = "Little-Otto-Goshi-Liga 2018-3";
|
||||
$wkDatum = "2018-08-18";
|
||||
?>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
include_once("config.inc.php");
|
||||
|
||||
$wkName = empty($wkName) ? "<fehlender Wettkampfname>" : $wkName;
|
||||
|
||||
include_once( $_SERVER['DOCUMENT_ROOT']."/ressourcen/phpLib/videoGallery/videoGallery.tmpl.php" );
|
||||
?>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
include_once("config.inc.php");
|
||||
|
||||
$wkName = empty($wkName) ? "<fehlender Wettkampfname>" : $wkName;
|
||||
|
||||
include_once( $_SERVER['DOCUMENT_ROOT']."/ressourcen/phpLib/videoGallery/videoGallery.tmpl.php" );
|
||||
?>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
include_once("config.inc.php");
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>In Arbeit</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Die Videos des Wettkampfes <?php echo($wkName);?> sind momentan noch in Vorbereitung. Einfach später noch mal probieren.</p>
|
||||
<img src="/ressourcen/graphiken/misc/staffeleiM%e4nnlein.jpg" />
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# mkGalGen
|
||||
|
||||
Erstellen einer htmlGalerie
|
||||
|
||||
|
||||
Ausgangspunkt:
|
||||
|
||||
- Verzeichnisse mit Bildern
|
||||
- Konfigurationsdatei für das Album mit
|
||||
- Liste mit Bildern mit
|
||||
- dem Dateinamen
|
||||
- selectMarker (evtl sollen nicht alle Bilder verwendet werden)
|
||||
- Bearbeitungsflags wie
|
||||
- Drehung des Bildes
|
||||
- Name des Albums/der Galerie
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# sortierer.py
|
||||
|
||||
import sys, os, exifread, datetime
|
||||
|
||||
picDirs = [];
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
picDirs = ["."];
|
||||
else:
|
||||
for arg in sys.argv[1:]:
|
||||
picDirs += [arg];
|
||||
|
||||
#picDirs = {
|
||||
# "/home/marko/keeper/judo/bilder/bilder.2016/2016-10-23_OttoGoshiLiga+HallCategoryIII2016/mögel",
|
||||
# "/home/marko/keeper/judo/bilder/bilder.2016/2016-10-23_OttoGoshiLiga+HallCategoryIII2016/olympus/denoised",
|
||||
# "/home/marko/keeper/judo/bilder/bilder.2016/2016-12-21_Jahrendefeier/olymp/denoised",
|
||||
#}
|
||||
|
||||
print("Reading Filenames")
|
||||
picFilesData = []
|
||||
for picDir in picDirs:
|
||||
for (dirPath, dirnames, fileNames) in os.walk(picDir):
|
||||
for fileName in fileNames:
|
||||
fullFilename = os.path.join(dirPath, fileName)
|
||||
fileHandle = open(fullFilename, 'rb')
|
||||
exifTag = exifread.process_file(fileHandle, stop_tag='EXIF DateTimeOriginal', details=False)
|
||||
|
||||
picFileDate = {}
|
||||
picFileDate['filename'] = fullFilename
|
||||
picFileDate['exifDate'] = str( exifTag['EXIF DateTimeOriginal'] )
|
||||
picFileDate['selected'] = True
|
||||
|
||||
fileHandle.close()
|
||||
|
||||
picFilesData.append( picFileDate )
|
||||
break
|
||||
|
||||
picFilesDataSorted = sorted(picFilesData, key=lambda pic: pic['exifDate'])
|
||||
|
||||
outputString = picFilesDataSorted[0]['filename']
|
||||
for pic in picFilesDataSorted[1:]:
|
||||
outputString += ", " + pic['filename']
|
||||
# print pic['filename']
|
||||
# print pic['exifDate']
|
||||
# print pic['selected']
|
||||
|
||||
print outputString
|
||||
@@ -0,0 +1,70 @@
|
||||
#! /usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
###
|
||||
# Modulimporte
|
||||
###
|
||||
|
||||
import sys, os, exifread, datetime
|
||||
#sys.path.append('/mingw64/lib/python3.6/site-packages/')
|
||||
|
||||
# für Kommandozeilenargumente
|
||||
import argparse
|
||||
|
||||
# für glob :)
|
||||
# @ToDo herausfinden, was glob macht
|
||||
import glob
|
||||
|
||||
#import Tkinter
|
||||
import tkinter
|
||||
#from PIL import Image, ImageTk
|
||||
#import image, imageTk
|
||||
|
||||
import json
|
||||
|
||||
###
|
||||
# Funktionsdefinitionen
|
||||
###
|
||||
|
||||
def getJpgListFromDirectory( jpgDirName ):
|
||||
jpgListe = list()
|
||||
|
||||
# @todo Werden hier Unterverzeichnisse mit durchsucht? Das 'walk' klingt so!
|
||||
for (dirPath, dirNames, fileNames) in os.walk(jpgDirName):
|
||||
#print( dirPath )
|
||||
#print( dirNames )
|
||||
#print( fileNames )
|
||||
for fileName in fileNames:
|
||||
fullFilename = os.path.join(dirPath, fileName)
|
||||
fileHandle = open(fullFilename, 'rb')
|
||||
exifTag = exifread.process_file(fileHandle, stop_tag='EXIF DateTimeOriginal', details=False)
|
||||
|
||||
picFileDate = {}
|
||||
picFileDate['filename'] = fullFilename
|
||||
#print(str(exifTag))
|
||||
picFileDate['exifDate'] = str( exifTag.get('EXIF DateTimeOriginal', None ) )
|
||||
picFileDate['selected'] = True
|
||||
picFileDate['toRotate'] = 0
|
||||
|
||||
fileHandle.close()
|
||||
|
||||
#print( picFileDate )
|
||||
jpgListe.append( picFileDate )
|
||||
break
|
||||
return jpgListe
|
||||
|
||||
###
|
||||
# Main
|
||||
###
|
||||
|
||||
# Argumente parsen
|
||||
parser = argparse.ArgumentParser(description='Eine jpgList erstellen')
|
||||
parser.add_argument('jpgFolder', metavar='jpgFolder', nargs='?', default='.', help='ein Verzeichnis mit jpgDateien')
|
||||
parser.add_argument('--jsonOutFile', default="data.json")
|
||||
argv = parser.parse_args()
|
||||
|
||||
#print( argv.jpgFolder )
|
||||
#print( getJpgListFromDirectory(argv.jpgFolder) )
|
||||
|
||||
with open(argv.jsonOutFile, 'w') as fp:
|
||||
json.dump(getJpgListFromDirectory(argv.jpgFolder), fp, indent=4)
|
||||
@@ -0,0 +1,47 @@
|
||||
#! /usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
###
|
||||
# Modulimporte
|
||||
###
|
||||
|
||||
import sys, os, exifread, datetime
|
||||
#sys.path.append('/mingw64/lib/python3.6/site-packages/')
|
||||
|
||||
# für Kommandozeilenargumente
|
||||
import argparse
|
||||
|
||||
# für glob :)
|
||||
# @ToDo herausfinden, was glob macht
|
||||
import glob
|
||||
|
||||
#import Tkinter
|
||||
#import tkinter
|
||||
#from PIL import Image, ImageTk
|
||||
#import image, imageTk
|
||||
|
||||
import json
|
||||
|
||||
###
|
||||
# Funktionsdefinitionen
|
||||
###
|
||||
|
||||
|
||||
###
|
||||
# Main
|
||||
###
|
||||
|
||||
# Argumente parsen
|
||||
parser = argparse.ArgumentParser(description='Eine jpgList erstellen')
|
||||
parser.add_argument('jsonFileName', metavar='jsonFileName', nargs='?', default='.', help='json-Datei')
|
||||
#parser.add_argument('--jsonOutFile', default="data.json")
|
||||
argv = parser.parse_args()
|
||||
|
||||
jpgList = []
|
||||
|
||||
with open(argv.jsonFileName) as json_data:
|
||||
jpgList = json.load(json_data)
|
||||
|
||||
for entry in jpgList:
|
||||
print(entry['filename'])
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
#! /usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
#sys.path.append('/mingw64/lib/python3.6/site-packages/')
|
||||
|
||||
import os, exifread, datetime
|
||||
|
||||
# für Kommandozeilenargumente
|
||||
import argparse
|
||||
|
||||
# für glob :)
|
||||
# @ToDo herausfinden, was glob macht
|
||||
import glob
|
||||
|
||||
# json IO
|
||||
import json
|
||||
|
||||
|
||||
#import Tkinter
|
||||
import tkinter
|
||||
from PIL import Image, ImageTk
|
||||
#import image, imageTk
|
||||
|
||||
|
||||
# fits the resolution inRes to the resolution fitRes
|
||||
def fitRes( inRes, fitRes =[500, 500] ):
|
||||
outRes = [500,500]
|
||||
# die größere Ausdehnung mus der neuen 500 entsprechen, die andere im gleichen Maßstab skaliert werden
|
||||
if inRes[0] > inRes[1]:
|
||||
outRes[1] = int( 500 * inRes[1] / inRes[0] )
|
||||
else:
|
||||
outRes[0] = int( 500 * inRes[0] / inRes[1] )
|
||||
|
||||
return outRes
|
||||
|
||||
# Eine Klasse zum anzeigenden Durchblättern von jpgDateien
|
||||
class jpgAlbum:
|
||||
# Dem Konstruktor wird eine Liste mit jpgs übergeben
|
||||
def __init__(self, masterWidget):
|
||||
|
||||
# Membervariablen
|
||||
# die leere Liste mit den Bildinformationen
|
||||
self.jpgListe = []
|
||||
|
||||
# der Index des aktuell angezeigten Bildes in der Liste
|
||||
self.aktIndex = -1
|
||||
# Flag, ob das Bild ausgewählt ist, also mit in die Galerie kommen soll
|
||||
self.aktSelectState = True
|
||||
|
||||
# der Anzeigebereich des aktuell anzuzeigenden Bildes
|
||||
# self.photoWidget = Tkinter.Label(masterWidget)
|
||||
self.photoWidget = tkinter.Label(masterWidget)
|
||||
self.photoWidget.pack()
|
||||
|
||||
# Vorwärts/Rückwärts Button
|
||||
# nextButton = Tkinter.Button(masterWidget, text="Next", command=self.next)
|
||||
nextButton = tkinter.Button(masterWidget, text="Next", command=self.next)
|
||||
# nextButton.pack(side=Tkinter.RIGHT)
|
||||
nextButton.pack(side=tkinter.RIGHT)
|
||||
# previousButton = Tkinter.Button(masterWidget, text="Previous", command=self.previous)
|
||||
previousButton = tkinter.Button(masterWidget, text="Previous", command=self.previous)
|
||||
# previousButton.pack(side=Tkinter.LEFT)
|
||||
previousButton.pack(side=tkinter.LEFT)
|
||||
|
||||
# self.selectedCheckbox = Tkinter.Checkbutton(masterWidget, text="selected", variable=self.aktSelectState, onvalue=True, offvalue=False, command=self.aktSelectToggle)
|
||||
self.selectedCheckbox = tkinter.Checkbutton(masterWidget, text="selected", variable=self.aktSelectState, onvalue=True, offvalue=False, command=self.aktSelectToggle)
|
||||
# self.selectedCheckbox.pack(side=Tkinter.BOTTOM)
|
||||
self.selectedCheckbox.pack(side=tkinter.BOTTOM)
|
||||
|
||||
masterWidget.bind("<Right>", self.next)
|
||||
masterWidget.bind("<Left>", self.previous)
|
||||
masterWidget.bind("<Down>", self.rotateAktJpgClockwise)
|
||||
masterWidget.bind("<space>", self.aktSelectToggle)
|
||||
masterWidget.bind("<Escape>", self.close)
|
||||
masterWidget.bind("q", self.close)
|
||||
|
||||
# ein Verzeichnis nach jpgs durchgehen und der klasseneigenen ImgList hinzufügen
|
||||
def addDirectory(self, picDirName):
|
||||
for (dirPath, dirNames, fileNames) in os.walk(picDirName):
|
||||
for fileName in fileNames:
|
||||
fullFilename = os.path.join(dirPath, fileName)
|
||||
fileHandle = open(fullFilename, 'rb')
|
||||
exifTag = exifread.process_file(fileHandle, stop_tag='EXIF DateTimeOriginal', details=False)
|
||||
|
||||
picFileDate = {}
|
||||
picFileDate['filename'] = fullFilename
|
||||
#print(str(exifTag))
|
||||
picFileDate['exifDate'] = str( exifTag.get('EXIF DateTimeOriginal', None ) )
|
||||
#picFileDate['selected'] = True
|
||||
picFileDate['selected'] = False
|
||||
picFileDate['toRotate'] = 0
|
||||
|
||||
fileHandle.close()
|
||||
|
||||
self.jpgListe.append( picFileDate )
|
||||
# break
|
||||
|
||||
self.aktIndex = 0
|
||||
self.changeJpg(self.jpgListe[self.aktIndex]['filename'])
|
||||
|
||||
def sortJpgListeByExifDate(self):
|
||||
self.jpgListe = sorted(self.jpgListe, key=lambda pic: (pic['exifDate'], pic['filename']))
|
||||
self.aktIndex = 0
|
||||
self.changeJpg(self.jpgListe[self.aktIndex]['filename'])
|
||||
|
||||
def rotateAktJpgClockwise(self, event):
|
||||
if self.aktIndex >= 0:
|
||||
self.jpgListe[self.aktIndex]['toRotate'] = ( self.jpgListe[self.aktIndex]['toRotate'] - 90 ) % 360
|
||||
self.changeJpg(self.jpgListe[self.aktIndex]['filename'])
|
||||
|
||||
def aktSelectToggle(self, event=None):
|
||||
if self.jpgListe[self.aktIndex]['selected']:
|
||||
self.jpgListe[self.aktIndex]['selected'] = False
|
||||
self.selectedCheckbox.deselect()
|
||||
else:
|
||||
self.jpgListe[self.aktIndex]['selected'] = True
|
||||
self.selectedCheckbox.select()
|
||||
|
||||
self.aktSelectState = self.jpgListe[self.aktIndex]['selected']
|
||||
#print(str(self.jpgListe))
|
||||
print("selected: " + str( sum(1 for entry in self.jpgListe if entry['selected'] ) ) )
|
||||
|
||||
def jsonSaveJpgList(self):
|
||||
with open(args.jpgFolder + "/jpegAlbum.json", 'w') as fp:
|
||||
json.dump( self.jpgListe, fp, indent=4)
|
||||
|
||||
|
||||
# aktIndex++
|
||||
def next(self, event=None):
|
||||
self.aktIndex = (self.aktIndex + 1) % len(self.jpgListe)
|
||||
self.aktSelectState = self.jpgListe[self.aktIndex]['selected']
|
||||
self.changeJpg(self.jpgListe[self.aktIndex]['filename'])
|
||||
# aktIndex--
|
||||
def previous(self, event=None):
|
||||
self.aktIndex = (self.aktIndex - 1) % len(self.jpgListe)
|
||||
self.aktSelectState = self.jpgListe[self.aktIndex]['selected']
|
||||
self.changeJpg(self.jpgListe[self.aktIndex]['filename'])
|
||||
|
||||
# ein Bildwechsel
|
||||
def changeJpg(self, newJpgName):
|
||||
#print("aktBild: [{}]{}".format(self.aktIndex, self.jpgListe[self.aktIndex]))
|
||||
|
||||
openSuccess = False
|
||||
while not openSuccess:
|
||||
try:
|
||||
self.aktJpg = Image.open(newJpgName)
|
||||
openSuccess = True
|
||||
except IOError:
|
||||
openSuccess = False
|
||||
print(self.jpgListe[self.aktIndex]['filename'] + " is no image!")
|
||||
self.jpgListe.pop(self.aktIndex)
|
||||
# self.next()
|
||||
#print("Returning!")
|
||||
return
|
||||
|
||||
#print("Handling " + self.jpgListe[self.aktIndex]['filename'] )
|
||||
self.aktRes = self.aktJpg.size
|
||||
#self.aktJpgScaled = self.aktJpg.resize([500, 500*self.aktRes[1]/self.aktRes[0]]).rotate(self.jpgListe[self.aktIndex]['toRotate'])
|
||||
|
||||
self.aktJpgScaled = self.aktJpg.resize( fitRes( self.aktRes )).rotate(self.jpgListe[self.aktIndex]['toRotate'])
|
||||
|
||||
self.photo = ImageTk.PhotoImage(self.aktJpgScaled)
|
||||
self.photoWidget.configure(image = self.photo)
|
||||
self.photoWidget.image = self.photo
|
||||
|
||||
self.aktSelectState = self.jpgListe[self.aktIndex]['selected']
|
||||
|
||||
if self.aktSelectState:
|
||||
self.selectedCheckbox.select()
|
||||
else:
|
||||
self.selectedCheckbox.deselect()
|
||||
# print("aktBild: [{}]{}".format(self.aktIndex, self.jpgListe[self.aktIndex]))
|
||||
|
||||
def close(self, event):
|
||||
# hier noch das speichern einfügen
|
||||
self.jsonSaveJpgList()
|
||||
sys.exit()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser(description='ein jpg anzeigen')
|
||||
parser.add_argument('jpgFolder', metavar='jpgFolder', nargs='?', default='.', help='ein Verzeichnis mit jpgDateien')
|
||||
args = parser.parse_args()
|
||||
|
||||
#master = Tkinter.Tk()
|
||||
master = tkinter.Tk()
|
||||
master.geometry('%dx%d+%d+%d' % (800, 600, 0, 0))
|
||||
app = jpgAlbum(master)
|
||||
app.addDirectory(args.jpgFolder)
|
||||
app.sortJpgListeByExifDate()
|
||||
|
||||
|
||||
master.mainloop()
|
||||
#master.destroy()
|
||||
@@ -0,0 +1,30 @@
|
||||
#! /bin/bash -v
|
||||
# Beispiel-/Testaufruf zum Erzeugen eines Albums aus eine jsonAlbum.json heraus
|
||||
|
||||
mkGalGenPath="/home/marko/keeper/judo/cwsvJudo/src/mkGalGen"
|
||||
|
||||
imgDirBase="/home/marko/keeper/judo/media/photos/photos.2018/2018-04-22_LittleOttoGoshiLiga-2018-1_U9U12_HalleS"
|
||||
galDirName="2018-04-22_LittleOttoGoshiLiga-2018-1_U9U12_HalleS"
|
||||
galName="Little-Otto-Goshi-Liga 2018-1"
|
||||
|
||||
galDirBase="/home/marko/keeper/judo/cwsvJudo/photoalben/photoalben.2018"
|
||||
logoFileName="/home/marko/keeper/judo/graphiken/logos/cwsvJudoLogoWappen.100x.png"
|
||||
|
||||
|
||||
mkdir -p ${galDirBase}
|
||||
|
||||
# Des Erzeugen der json
|
||||
python3 ${mkGalGenPath}/jpgSelector.py ${imgDirBase}
|
||||
# das Erzeugen des Makefiles
|
||||
python3 ${mkGalGenPath}/jsonJpgList2Makefile.py ${imgDirBase}/jpegAlbum.json --imgDirBase=${imgDirBase} --galName="${galName}" --galDirBase="${galDirBase}" --galDirName="${galDirName}" --logoFileName="${logoFileName}" > Makefile.${galDirName}
|
||||
#das aufrufen des makefiles
|
||||
make --file=Makefile.${galDirName}
|
||||
# upload des ganzen
|
||||
lftp -e "mirror -R ${galDirBase}/${galDirName} photoalben/photoalben.2018/${galDirName}" -u cwsvjudo,***REMOVED*** ftp://cwsvjudo.bplaced.net
|
||||
|
||||
# und nochmal das ganze mit Komprimierung
|
||||
python3 ${mkGalGenPath}/jsonJpgList2Makefile.py ${imgDirBase}/jpegAlbum.json --imgDirBase=${imgDirBase} --galName="${galName}" --galDirBase="${galDirBase}" --galDirName="${galDirName}" --logoFileName="${logoFileName}" --compressHard="true" > Makefile.${galDirName}
|
||||
#das aufrufen des makefiles
|
||||
make --file=Makefile.${galDirName}
|
||||
# upload des ganzen
|
||||
lftp -e "mirror -R ${galDirBase}/${galDirName} photoalben/photoalben.2018/${galDirName}" -u cwsvjudo,***REMOVED*** ftp://cwsvjudo.bplaced.net
|
||||
@@ -0,0 +1,69 @@
|
||||
#! /usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
### Aus einer in einer jsonDatei gegebenen jpgListe (albumKompatibel)
|
||||
### eine index.php erzeugen
|
||||
|
||||
###
|
||||
# Modulimporte
|
||||
###
|
||||
|
||||
#import sys, os, exifread, datetime
|
||||
import sys, os, datetime
|
||||
#sys.path.append('/mingw64/lib/python3.6/site-packages/')
|
||||
|
||||
# für Kommandozeilenargumente
|
||||
import argparse
|
||||
|
||||
# für glob :)
|
||||
# @ToDo herausfinden, was glob macht
|
||||
import glob
|
||||
|
||||
#import Tkinter
|
||||
#import tkinter
|
||||
#from PIL import Image, ImageTk
|
||||
#import image, imageTk
|
||||
|
||||
import json
|
||||
|
||||
###
|
||||
# Funktionsdefinitionen
|
||||
###
|
||||
|
||||
|
||||
###
|
||||
# Main
|
||||
###
|
||||
|
||||
# Argumente parsen
|
||||
parser = argparse.ArgumentParser(description='Ein Makefile erstellen')
|
||||
parser.add_argument('jsonFileName', metavar='jsonFileName', nargs='?', default='.', help='json-Datei')
|
||||
parser.add_argument('--galName')
|
||||
#parser.add_argument('--galName', default="dummyGalName")
|
||||
#parser.add_argument('--galDirName', default="dummyGalDirName")
|
||||
#parser.add_argument('--galDirBase', default="dummyGalDirBase", help="Basisverzeichnis, in dem das Verzeichnis mit dem Album angelegt werden soll")
|
||||
#parser.add_argument('--galOptImgWiderSide', default="1024")
|
||||
#parser.add_argument('--galOptThbWiderSide', default="200")
|
||||
|
||||
argv = parser.parse_args()
|
||||
|
||||
jpgList = []
|
||||
|
||||
with open(argv.jsonFileName) as json_data:
|
||||
#print(json_data)
|
||||
jpgList = json.load(json_data)
|
||||
|
||||
|
||||
indexPhp = ""
|
||||
|
||||
indexPhp += "<?php\n"
|
||||
indexPhp += "\t$wkName = \"" + argv.galName + "\";\n"
|
||||
indexPhp += "\t$imgList = array( "
|
||||
for index, entry in enumerate(jpgList):
|
||||
if entry['selected']:
|
||||
indexPhp += "\"images/" + argv.galName + "-" + str(index).zfill(3) + ".jpg\", "
|
||||
indexPhp += " );\n"
|
||||
indexPhp += "\tinclude( $_SERVER['DOCUMENT_ROOT'].\"/ressourcen/phpLib/imgGallery/index.php.tmpl\" );\n"
|
||||
indexPhp += "?>"
|
||||
|
||||
print(indexPhp)
|
||||
@@ -0,0 +1,158 @@
|
||||
#! /usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
### Aus einer in einer jsonDatei gegebenen jpgListe (albumKompatibel)
|
||||
### ein Makefile erzeugen
|
||||
### Example usage:
|
||||
### /d/privat/cwsvJudo/src/mkGalGen/jsonJpgList2Makefile.py jpegAlbum.json --galName="Zwergenturnier 2006" --galDirBase=" /d/privat/cwsvJudo/src/mkGalGen/testingArea/photoalben/photoalben.2006/" --galDirName="2006-09-30_Zwergenturnier2006" > Makefile
|
||||
|
||||
###
|
||||
# Modulimporte
|
||||
###
|
||||
|
||||
#import sys, os, exifread, datetime
|
||||
import sys, os, datetime
|
||||
#sys.path.append('/mingw64/lib/python3.6/site-packages/')
|
||||
|
||||
# für Kommandozeilenargumente
|
||||
import argparse
|
||||
|
||||
# für glob :)
|
||||
# @ToDo herausfinden, was glob macht
|
||||
import glob
|
||||
|
||||
#import Tkinter
|
||||
#import tkinter
|
||||
#from PIL import Image, ImageTk
|
||||
#import image, imageTk
|
||||
|
||||
import json
|
||||
|
||||
###
|
||||
# Funktionsdefinitionen
|
||||
###
|
||||
|
||||
# Für ftpDateinamen
|
||||
def slugified(value):
|
||||
"""
|
||||
Normalizes string, converts to lowercase, removes non-alpha characters,
|
||||
and converts spaces to hyphens.
|
||||
"""
|
||||
import unicodedata
|
||||
|
||||
returnValue = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
|
||||
returnValue = unicode(re.sub('[^\w\s-]', '', returnValue).strip().lower())
|
||||
returnValue = unicode(re.sub('[-\s]+', '-', returnValue))
|
||||
|
||||
return returnValue
|
||||
|
||||
###
|
||||
# Main
|
||||
###
|
||||
|
||||
# Argumente parsen
|
||||
parser = argparse.ArgumentParser(description='Ein Makefile erstellen')
|
||||
parser.add_argument('jsonFileName', metavar='jsonFileName', nargs='?', default='.', help='json-Datei')
|
||||
parser.add_argument('--galName') #, default="dummyGalName")
|
||||
parser.add_argument('--galDirName')#, default="dummyGalDirName")
|
||||
parser.add_argument('--galDirBase')#, default="dummyGalDirBase", help="Basisverzeichnis, in dem das Verzeichnis mit dem Album angelegt werden soll")
|
||||
parser.add_argument('--imgDirBase')#, default="dummyGalDirBase", help="Basisverzeichnis, in dem das Verzeichnis mit dem Album angelegt werden soll")
|
||||
# Eventuell als Target mit einbauen, um es in einer korrekten Auflösung mit zu erzeugen
|
||||
parser.add_argument('--logoFileName')
|
||||
parser.add_argument('--galOptImgWiderSide', default="1024")
|
||||
parser.add_argument('--galOptThbWiderSide', default="200")
|
||||
|
||||
parser.add_argument('--compressHard')
|
||||
|
||||
argv = parser.parse_args()
|
||||
|
||||
jpgList = []
|
||||
|
||||
with open(argv.jsonFileName) as json_data:
|
||||
#print(json_data)
|
||||
jpgList = json.load(json_data)
|
||||
|
||||
makefileTargets = list()
|
||||
|
||||
allTarget = ""
|
||||
allTarget += ".PHONY: all\nall: "
|
||||
for index, entry in enumerate(jpgList):
|
||||
# Die Bilder und Thumbnails
|
||||
if entry['selected']:
|
||||
allTarget += argv.galDirBase + "/" + argv.galDirName + "/images/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".jpg "
|
||||
allTarget += argv.galDirBase + "/" + argv.galDirName + "/thumbs/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".png "
|
||||
# Die phpDateien
|
||||
allTarget += argv.galDirBase + "/" + argv.galDirName + "/index.php "
|
||||
allTarget += argv.galDirBase + "/" + argv.galDirName + "/view.php "
|
||||
|
||||
|
||||
allTarget += "\n"
|
||||
|
||||
makefileTargets.append(allTarget)
|
||||
|
||||
# Imagetargets
|
||||
for index, entry in enumerate(jpgList):
|
||||
if entry['selected']:
|
||||
makefileTarget = ""
|
||||
|
||||
# @todo zfill(3) variabel gestalten
|
||||
# @todo filename / vs. \
|
||||
# @todo eol == '\n' vs eol == '\r\n' (vs eol == '\r')
|
||||
# makefileTarget += argv.galDirBase + "/" + argv.galDirName + "/images/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".jpg: " + argv.imgDirBase + "/" + entry['filename'] + "\n"
|
||||
# @todo Steht im jsonFile bei den Dateinamen der Bilder das imgDirBase mit? (Vereinbarungssache, intuitiv würde ich sagen, Dateinamen im jsonFile sollten relativ zur Lage des jsonFiles selber sein)
|
||||
#makefileTarget += argv.galDirBase + "/" + argv.galDirName + "/images/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".jpg: " + argv.imgDirBase + "/" + entry['filename'] + "\n"
|
||||
makefileTarget += argv.galDirBase + "/" + argv.galDirName + "/images/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".jpg: " + entry['filename'] + "\n"
|
||||
makefileTarget += "\tmkdir -p " + argv.galDirBase + "/" + argv.galDirName + "/images/\n"
|
||||
# makefileTarget += "\tconvert $^ -resize \"" + argv.galOptImgWiderSide + ">\" \"$@\"\n"
|
||||
# imageMagick rotates clockwise, imagetk counterclockwise
|
||||
# makefileTarget += "\tcomposite -rotate -" + str(entry["toRotate"]) + " -dissolve 25% -gravity northwest " + argv.logoFileName + " $^ -resize \"" + argv.galOptImgWiderSide + ">\" \"$@.png\"\n"
|
||||
|
||||
|
||||
# makefileTarget += "\tcomposite -dissolve 25% -gravity northwest " + argv.logoFileName + " $^ -resize \"" + argv.galOptImgWiderSide + ">\" \"$@.png\"\n"
|
||||
# makefileTarget += "\t/home/marko/proggis/guetzli/bin/Release/guetzli --quality 95 \"$@.png\" \"$@\"\n"
|
||||
|
||||
if argv.compressHard == "true":
|
||||
makefileTarget += "\tconvert \\( $^ -normalize -rotate -" + str(entry["toRotate"]) + " -resize \"" + argv.galOptImgWiderSide + ">\" \\) " + argv.logoFileName + " -composite \"$@.png\"\n"
|
||||
makefileTarget += "\t/home/marko/proggis/guetzli/bin/Release/guetzli --quality 90 \"$@.png\" \"$@\"\n"
|
||||
makefileTarget += "\trm \"$@.png\"\n"
|
||||
else:
|
||||
makefileTarget += "\tconvert \\( $^ -normalize -rotate -" + str(entry["toRotate"]) + " -resize \"" + argv.galOptImgWiderSide + ">\" \\) " + argv.logoFileName + " -composite \"$@\"\n"
|
||||
|
||||
makefileTargets.append(makefileTarget)
|
||||
|
||||
# Thumbnailtargets
|
||||
for index, entry in enumerate(jpgList):
|
||||
if entry['selected']:
|
||||
makefileTarget = ""
|
||||
|
||||
# @todo zfill(3) variabel gestalten
|
||||
# @todo filename / vs. \
|
||||
# @todo eol == '\n' vs eol == '\r\n' (vs eol == '\r')
|
||||
#makefileTarget += argv.galDirBase + "/" + argv.galDirName + "/thumbs/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".png: " + argv.imgDirBase + "/" + entry['filename'] + "\n"
|
||||
makefileTarget += argv.galDirBase + "/" + argv.galDirName + "/thumbs/" + argv.galName.replace(" ", "\\ ") + "-" + str(index).zfill(3) + ".png: " + entry['filename'] + "\n"
|
||||
makefileTarget += "\tmkdir -p " + argv.galDirBase + "/" + argv.galDirName + "/thumbs/\n"
|
||||
# makefileTarget += "\tconvert $^ -resize \"" + argv.galOptThbWiderSide + ">\" \"$@\"\n"
|
||||
makefileTarget += "\tconvert $^ -rotate -" + str(entry["toRotate"]) + " -resize \"" + argv.galOptThbWiderSide + ">\" -alpha set -virtual-pixel transparent -channel A -blur 0x8 -level 50%,100% +channel \"$@\"\n"
|
||||
#makefileTarget += "\tpngnq -Q f -s 1 -f -e .png \"$@\"\n"
|
||||
if argv.compressHard == "true":
|
||||
makefileTarget += "\tpngquant --speed 1 --force --ext .png \"$@\"\n"
|
||||
makefileTarget += "\t/home/marko/proggis/zopfli/zopflipng --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent -y \"$@\" \"$@\"\n"
|
||||
|
||||
makefileTargets.append(makefileTarget)
|
||||
|
||||
# phpDateienTargets
|
||||
|
||||
indexPhpTarget = ""
|
||||
indexPhpTarget += argv.galDirBase + "/" + argv.galDirName + "/index.php: " + argv.jsonFileName + "\n"
|
||||
indexPhpTarget += "\tmkdir -p " + argv.galDirBase + "/" + argv.galDirName + "\n"
|
||||
indexPhpTarget += "\t/home/marko/keeper/judo/cwsvJudo/src/mkGalGen/jsonJpgList2IndexPhp.py " + argv.jsonFileName + " --galName=\"" + argv.galName + "\" > $@\n"
|
||||
viewPhpTarget = ""
|
||||
viewPhpTarget += argv.galDirBase + "/" + argv.galDirName + "/view.php: " + argv.jsonFileName + "\n"
|
||||
viewPhpTarget += "\tmkdir -p " + argv.galDirBase + "/" + argv.galDirName + "\n"
|
||||
viewPhpTarget += "\t/home/marko/keeper/judo/cwsvJudo/src/mkGalGen/jsonJpgList2ViewPhp.py " + argv.jsonFileName + " --galName=\""+ argv.galName + "\" > $@\n"
|
||||
|
||||
makefileTargets.append(indexPhpTarget)
|
||||
makefileTargets.append(viewPhpTarget)
|
||||
|
||||
for entry in makefileTargets:
|
||||
print(entry)
|
||||
@@ -0,0 +1,69 @@
|
||||
#! /usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
### Aus einer in einer jsonDatei gegebenen jpgListe (albumKompatibel)
|
||||
### eine index.php erzeugen
|
||||
|
||||
###
|
||||
# Modulimporte
|
||||
###
|
||||
|
||||
#import sys, os, exifread, datetime
|
||||
import sys, os, datetime
|
||||
#sys.path.append('/mingw64/lib/python3.6/site-packages/')
|
||||
|
||||
# für Kommandozeilenargumente
|
||||
import argparse
|
||||
|
||||
# für glob :)
|
||||
# @ToDo herausfinden, was glob macht
|
||||
import glob
|
||||
|
||||
#import Tkinter
|
||||
#import tkinter
|
||||
#from PIL import Image, ImageTk
|
||||
#import image, imageTk
|
||||
|
||||
import json
|
||||
|
||||
###
|
||||
# Funktionsdefinitionen
|
||||
###
|
||||
|
||||
|
||||
###
|
||||
# Main
|
||||
###
|
||||
|
||||
# Argumente parsen
|
||||
parser = argparse.ArgumentParser(description='Ein Makefile erstellen')
|
||||
parser.add_argument('jsonFileName', metavar='jsonFileName', nargs='?', default='.', help='json-Datei')
|
||||
parser.add_argument('--galName')
|
||||
#parser.add_argument('--galName', default="dummyGalName")
|
||||
#parser.add_argument('--galDirName', default="dummyGalDirName")
|
||||
#parser.add_argument('--galDirBase', default="dummyGalDirBase", help="Basisverzeichnis, in dem das Verzeichnis mit dem Album angelegt werden soll")
|
||||
#parser.add_argument('--galOptImgWiderSide', default="1024")
|
||||
#parser.add_argument('--galOptThbWiderSide', default="200")
|
||||
|
||||
argv = parser.parse_args()
|
||||
|
||||
jpgList = []
|
||||
|
||||
with open(argv.jsonFileName) as json_data:
|
||||
#print(json_data)
|
||||
jpgList = json.load(json_data)
|
||||
|
||||
|
||||
indexPhp = ""
|
||||
|
||||
indexPhp += "<?php\n"
|
||||
indexPhp += "\t$wkName = \"" + argv.galName + "\";\n"
|
||||
indexPhp += "\t$imgList = array( "
|
||||
for index, entry in enumerate(jpgList):
|
||||
if entry['selected']:
|
||||
indexPhp += "\"images/" + argv.galName + "-" + str(index).zfill(3) + ".jpg\", "
|
||||
indexPhp += " );\n"
|
||||
indexPhp += "\tinclude( $_SERVER['DOCUMENT_ROOT'].\"/ressourcen/phpLib/imgGallery/view.php.tmpl\" );\n"
|
||||
indexPhp += "?>"
|
||||
|
||||
print(indexPhp)
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# sortierer.py
|
||||
|
||||
import os, exifread, datetime
|
||||
import numpy as np
|
||||
from sklearn.cluster import MeanShift, estimate_bandwidth
|
||||
from sklearn.datasets.samples_generator import make_blobs
|
||||
|
||||
picDirs = {
|
||||
"/home/marko/keeper/judo/bilder/bilder.2016/2016-10-23_OttoGoshiLiga+HallCategoryIII2016/mögel",
|
||||
"/home/marko/keeper/judo/bilder/bilder.2016/2016-10-23_OttoGoshiLiga+HallCategoryIII2016/olympus/denoised",
|
||||
}
|
||||
|
||||
print("Reading Files")
|
||||
picFiles = []
|
||||
for picDir in picDirs:
|
||||
for (dirPath, dirnames, fileNames) in os.walk(picDir):
|
||||
for fileName in fileNames:
|
||||
picFiles.append( os.path.join(dirPath, fileName) )
|
||||
break
|
||||
|
||||
print("Reading Tags")
|
||||
X = []
|
||||
for picFile in picFiles:
|
||||
fHandle = open(picFile, 'rb')
|
||||
fTag = exifread.process_file(fHandle, stop_tag='EXIF DateTimeOriginal', details=False)
|
||||
timeTag = datetime.datetime.strptime(str( fTag['EXIF DateTimeOriginal'] ), "%Y:%m:%d %H:%M:%S")
|
||||
X.append( timeTag.hour * 3600 + timeTag.minute * 60 + timeTag.second )
|
||||
fHandle.close()
|
||||
xArray = np.asarray(X)
|
||||
print xArray
|
||||
|
||||
print("Doing MeanShift")
|
||||
mkMS = MeanShift( bin_seeding=True )
|
||||
mkMS.fit(np.asarray(X))
|
||||
@@ -0,0 +1,78 @@
|
||||
# Makefile zum Erzeugen der Bilder der Gallerie
|
||||
# Einziger Input soll eigentlich sein:
|
||||
# - Liste der Bilder, die angezeigt werden soll
|
||||
# - Zielverzeichnis der Gallerie
|
||||
#
|
||||
# Problem:
|
||||
# - die Bildquellen können verschiedene Verzeichnisse haben
|
||||
# - meine Targets bisher benutzen als Abhängigkeit das
|
||||
# Quellverzeichnis
|
||||
# - geht nicht, wenn verschiedene Verzeichnisse benutzt werden
|
||||
# - geht es vieleicht doch? wie reagiert die
|
||||
# Abhängigkeitserkennung von make, ist %.jpg nur der Dateiname
|
||||
# oder der gesamte Pfad? Wenn der ganze Pfad, dann bliebe noch
|
||||
# das Problem mit den gleichen Dateinamen (Dateien aus
|
||||
# verschiedenen Ordnern werden in den selben Order kopiert)
|
||||
# - das heisst auch, dass in der Gallerie zwei Dateien mit dem
|
||||
# gleichen Namen landen könnten
|
||||
# - eine Umbenennung wäre nötig
|
||||
# - mit einem allgemeinen Makefile wird es also nicht gehen...
|
||||
# - es könnte ein Makefile erzeugt werden, jedes Bild und Thumbnail
|
||||
# ein eigenes (konkretes) Target
|
||||
|
||||
# InputDaten
|
||||
# - als Inputdaten sollen herhalten:
|
||||
# - eine Liste der Bilder für die Gallerie
|
||||
# - vielleicht auch eine Datei mit den Daten der Gallerie?
|
||||
# -> Nein! Um den Makeprozess effektiv zu gestalten sollten es die
|
||||
# Quellbilder als Abhängigkeiten sein. Das Makefile oder
|
||||
# zumindest die Dateiliste sollte generiert werden
|
||||
# - das Zielverzeichnis für die Gallerie
|
||||
|
||||
IMAGE_SOURCE_DIR = /d/privat/cwsvJudo/src/mkGalGen/2006-09-30_zwergenturnier/800x600
|
||||
IMAGE_SOURCE_FILES = $(wildcard $(IMAGE_SOURCE_DIR)/*.jpg)
|
||||
GALLERY_TARGET_DIR = /d/privat/cwsvJudo/src/mkGalGen/testingArea/2006-09-30_zwergenturnier
|
||||
|
||||
# Ende Inputdaten
|
||||
|
||||
GALLERY_IMAGE_TARGET_FILES = $(addprefix $(GALLERY_TARGET_DIR)/images/, $(notdir $(IMAGE_SOURCE_FILES)))
|
||||
GALLERY_THUMBNAILS_TARGET_FILES = $(addprefix $(GALLERY_TARGET_DIR)/thumbnails/, $(addsuffix .png, $(basename $(notdir $(IMAGE_SOURCE_FILES)))))
|
||||
|
||||
GUETZLI = /d/projekte/tests/guetzli.git/bin/Release/guetzli.exe
|
||||
|
||||
IMAGES_WIDTH_WIDER_SIDE = 800
|
||||
THUMBNAILS_WIDTH_WIDER_SIDE = 160
|
||||
|
||||
THUMBNAIL_OPTIONS_BLUREDGES = -alpha set -virtual-pixel transparent -channel A -blur 0x25 -level 50%,100% +channel
|
||||
THUMBNAIL_OPTIONS_TORNEDGES = \( +clone -alpha extract -virtual-pixel black -spread 50 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 \) -alpha off -compose Copy_Opacity -composite
|
||||
|
||||
.PHONY: all clean thumbClean imageClean
|
||||
all: $(GALLERY_IMAGE_TARGET_FILES) $(GALLERY_THUMBNAILS_TARGET_FILES)
|
||||
clean: thumbClean imageClean
|
||||
thumbClean:
|
||||
$(RM) $(GALLERY_THUMBNAILS_TARGET_FILES)
|
||||
imageClean:
|
||||
$(RM) $(GALLERY_IMAGE_TARGET_FILES)
|
||||
|
||||
include Makefile.imgTargets.inc
|
||||
|
||||
# Target für die AlbumBilder
|
||||
$(GALLERY_TARGET_DIR)/images/%.jpg:$(IMAGE_SOURCE_DIR)/%.jpg
|
||||
mkdir -p $(GALLERY_TARGET_DIR)/images
|
||||
convert $^ -resize "$(IMAGES_WIDTH_WIDER_SIDE)>" $@
|
||||
$(GUETZLI) --quality 95 $@ $@
|
||||
|
||||
|
||||
$(GALLERY_TARGET_DIR)/thumbnails/%.png:$(IMAGE_SOURCE_DIR)/%.jpg
|
||||
mkdir -p $(GALLERY_TARGET_DIR)/thumbnails
|
||||
convert $^ $(THUMBNAIL_OPTIONS_TORNEDGES) -resize "$(THUMBNAILS_WIDTH_WIDER_SIDE)>" $@
|
||||
pngnq -Q f -s 1 -f -e .png $@
|
||||
|
||||
.PHONY:
|
||||
echoTest:
|
||||
echo $(IMAGE_SOURCE_DIR)
|
||||
echo $(GALLERY_TARGET_DIR)
|
||||
echo $(IMAGE_SOURCE_FILES)
|
||||
echo $(GALLERY_IMAGE_TARGET_FILES)
|
||||
echo $(GALLERY_THUMBNAILS_TARGET_FILES)
|
||||
echo $(GAL_TARGET_DIR)
|
||||
Reference in New Issue
Block a user