update gebührenordnung

This commit is contained in:
marko
2025-04-01 05:10:29 +02:00
parent 6b4e815711
commit 659eff3a52
4 changed files with 487 additions and 0 deletions

View File

@@ -0,0 +1,175 @@
#! /usr/bin/env make -f
include Makefile.heliohost.config
cssFiles = $(wildcard src/css/materialize/*.css)
mdFiles = $(wildcard src/md/*.md)
phpFiles = $(patsubst src/md/%.md, build/materialize/%.php, $(mdFiles))
ampFiles = $(patsubst src/md/%.md, build/amp/%.php, $(mdFiles))
phpLibFiles = $(wildcard phpLib/cwsvJudo/*.php) phpLib/phpcount/phpcount.php
wallpapersSrc = $(wildcard graphiken/wallpapers/*.*)
wallpapers = $(patsubst graphiken/wallpapers/%, build/graphiken/wallpapers/%, $(wallpapersSrc))
configFiles = $(wildcard config/*.php)
LN = ln -f
.PHONY: all
all: build/css/cwsvJudo.css pages images
# @todo This should only be temporary. Better outsource the graphics to it's own Makefile.
make -j graphiken
make build/css/cwsvJudo.css
# minimizing wallpaper sizes
build/graphiken/wallpapers/%.jpg: graphiken/wallpapers/%.jpg
guetzli $^ $@
build/graphiken/wallpapers/%.svg: graphiken/wallpapers/%.svg
cp $^ $@
.PHONY: images
images: $(wallpapers)
echo $(wallpapersSrc)
echo $(wallpapers)
.PHONY: clean
clean:
$(RM) -rf build
.PHONY: installDependencies
installDependencies:
if [ ! -d "submodules" ]; then mkdir submodules; fi
# - nodejs
# if [ ! -d "submodules/node" ]; then cd submodules; git clone https://github.com/nodejs/node.git; fi
# cd submodules/node; git fetch; git checkout v22.12.0; ./configure; make -j4;
# - bulma
# - bulma.css
# if [ ! -d "submodules/bulma" ]; then cd submodules; git clone https://github.com/jgthms/bulma; fi
# cd submodules/bulma; git fetch; git checkout 1.0.2;
# - bulma templates
# if [ ! -d "submodules/bulma-templates" ]; then cd submodules; git clone https://github.com/BulmaTemplates/bulma-templates; fi
# cd submodules/bulma-templates; git fetch; git checkout 0.9.4.2;
# - materialize-css
if [ ! -d "submodules/materialize" ]; then cd submodules; git clone https://github.com/materializecss/materialize; fi
cd submodules/materialize; git fetch; git checkout $(VERSION_MATERIALIZE); npm install; npm audit fix; npm run release;
# - google material icons
if [ ! -d "submodules/material-design-icons" ]; then cd submodules; git clone --filter=tree:0 https://github.com/google/material-design-icons.git; fi
cd submodules/material-design-icons; git fetch; git checkout $(VERSION_GOOGLE_MATERIAL_ICONS);
# copy/link all together to get a "distributable" package
# (distributable means: That directory can be uploaded va ftp)
.PHONY: dist
dist: all
rm -rf $(distDir)
mkdir -p $(distDir)
# external dependencies
mkdir -p $(distDir)/httpdocs/ressourcen/css
mkdir -p $(distDir)/httpdocs/ressourcen/js
# - bulma
# $(LN) ./submodules/bulma/css/bulma.min.css $(distDir)/httpdocs/ressourcen/css/
# $(LN) ./submodules/bulma-templates/css/hello-parallax.css $(distDir)/httpdocs/ressourcen/css/
# - materializeCss
$(LN) ./submodules/materialize/dist/css/materialize.min.css $(distDir)/httpdocs/ressourcen/css/
$(LN) ./submodules/materialize/dist/css/materialize.min.css.map $(distDir)/httpdocs/ressourcen/css/
$(LN) ./submodules/materialize/dist/js/materialize.min.js $(distDir)/httpdocs/ressourcen/js/
# page data
mkdir -p $(distDir)/httpdocs/pages/responsive
find ./build/materialize/ -type f -exec $(LN) {} $(distDir)/httpdocs/pages/responsive \;
mkdir -p $(distDir)/httpdocs/pages/shared
find ./src/shared/ -type f -exec $(LN) {} $(distDir)/httpdocs/pages/shared \;
# structured data
mkdir -p $(distDir)/httpdocs/ressourcen/structuredData/json
find src/jsonSd -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/structuredData/json \;
# php libs
# - leagacy cwsvJudoLib
mkdir -p $(distDir)/httpdocs/ressourcen/phpLib/cwsvJudo
find ./phpLib/cwsvJudo -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/phpLib/cwsvJudo \;
# - QR code generator
mkdir -p $(distDir)/httpdocs/ressourcen/phpLib/phpqrcode
find ./phpLib/phpqrcode -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/phpLib/phpqrcode \;
# - api
mkdir -p $(distDir)/
# graphics
# - wappen
mkdir -p $(distDir)/httpdocs/ressourcen/graphiken/logos
find ./build/graphiken/cwsvJudoLogoWappen -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/graphiken/logos \;
# - wallpapers
mkdir -p $(distDir)/httpdocs/ressourcen/graphiken/wallpapers
find ./build/graphiken/wallpapers -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/graphiken/wallpapers \;
# - icons
mkdir -p $(distDir)/httpdocs/ressourcen/graphiken/icons
find ./graphiken/icons -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/graphiken/icons \;
$(LN) ./build/graphiken/favIcons/favicon.ico $(distDir)/httpdocs/favicon.ico
# - banner graphics
mkdir -p $(distDir)/httpdocs/ressourcen/graphiken/banner
find ./graphiken/banner -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/graphiken/banner \;
# - videos
mkdir -p $(distDir)/httpdocs/videos.d
find ./res/videos.d -type f -exec $(LN) {} $(distDir)/httpdocs/videos.d \;
# - others
$(LN) ./res/IntegrationDurchSport2018.250x.png $(distDir)/httpdocs/ressourcen/graphiken/logos
# - api
mkdir -p $(distDir)/.local/lib/php/cwsvJudo/api
find ./src/api -type f -exec $(LN) {} $(distDir)/.local/lib/php/cwsvJudo/api \;
# css
mkdir -p $(distDir)/httpdocs/ressourcen/css
$(LN) ./build/css/cwsvJudo.css $(distDir)/httpdocs/ressourcen/css/cwsvJudo.css
# fonts
mkdir -p $(distDir)/httpdocs/ressourcen/fonts
find ./res/fonts -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/fonts \;
# htaccess
$(LN) ./src/htaccess/heliohost/.htaccess $(distDir)/httpdocs/.htaccess
$(LN) ./src/htaccess/heliohost/pages/responsive/.htaccess $(distDir)/httpdocs/pages/responsive/.htaccess
# config files
$(LN) ./configs/heliohost/pages.config.inc.php $(distDir)/httpdocs/pages/responsive/config.inc.php
# @todo shouldn't be used any more
mkdir -p $(distDir)/.local
$(LN) configs/local/db.config.php $(distDir)/.local/db.config.php
docker-compose restart
.PHONY: pages
pages: Makefile.heliohost.config $(pandocTemplate) $(phpFiles)
# build the materialize version of the page
build/materialize/%.php: src/md/%.md build/yaml/%.yaml $(pandocTemplate) Makefile.heliohost.config
mkdir -p build/materialize
# create html/php code
pandoc \
--standalone \
--css="ressourcen/css/cwsvJudo.css" \
--template=$(pandocTemplate) \
--to=html \
--wrap=preserve \
--output=$@ \
$< $(word 2,$^)
# npx prettier --check $@
# @toDo: Verzeichnisstruktur überdenken
build/yaml/%.yaml: src/yaml/images.yaml src/yaml/navTargets.yaml src/yaml/mainNav.yaml src/yaml/%.subNav.yaml
mkdir -p build/yaml
python tools/yamlMerge.py $^ > $@
# combine css files into one
build/css/cwsvJudo.css: $(cssFiles)
cat $^ | $(CSSO) -o $@
# .PHONY: download_material_icons
# download_material_icons:
# curl
.PHONY: upload
upload: all
lftp -f scripts/upload-heliohost

View File

@@ -0,0 +1,191 @@
<?php
// server specific variables:
require_once("./config.inc.php");
// database specific variables
require_once($$home."/.local/db.config.php");
// cwsvJudo lib
foreach(["miscAssis", "newsLib", "wkKalender", "galTable", "newsTableHtml", "newsLib", "galleryRedirector"] as $$sublib){
require_once($$basePath."/ressourcen/phpLib/cwsvJudo/".$$sublib.".php");
}
// @todo remove galleries
galleryRedirector();
?>
<!DOCTYPE html>
<html $if(lang)$lang="$lang$" $endif$ $if(dir)$dir="$dir$" $endif$>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
$for(author-meta)$
<meta name="author" content="$author-meta$">$endfor$
$if(date-meta)$
<meta name="dcterms.date" content="$date-meta$">$endif$
$if(keywords)$
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$">
$endif$
$if(canonicalPath)$
<link rel="canonical" href="<?php echo($$canonicalBaseUrl);?>/$canonicalPath$">
$endif$
$if(ampVersionLink)$
<link rel="amphtml" href="$ampVersionLink$">
$endif$
$if(phpTitleString)$
<title>
<?php echo( $phpTitleString$ );?>
</title>
$else$$if(title)$
<title>$if(title-prefix)$$title-prefix$ $endif$$pagetitle$</title>
$endif$$endif$
$if(phpDescriptionString)$
<meta name="description" content="<?php echo( $phpDescriptionString$ );?>">
$else$$if(description)$
<meta name="description" content="$description$">
$endif$$endif$
$if(css)$$for(css)$
<link rel="stylesheet" href="/$css$">
$endfor$$endif$
<link rel="stylesheet" href="/ressourcen/css/materialize.min.css">
<!--Import Google Icon Font
- @todo replace with local hosted ones
-->
<!-- Material Icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<!-- Material Symbols - Outlined Set -->
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet" />
<!-- Material Symbols - Rounded Set -->
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded" rel="stylesheet" />
<!-- Material Symbols - Sharp Set -->
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp" rel="stylesheet" />
$if(extraCss)$$for(extraCss)$
<link rel="stylesheet" href="/$extraCss$">
$endfor$$endif$
$if(jsLibs)$$for(jsLibs)$
<script src="$jsLibs$" type="text/javascript"></script>
$endfor$$endif$
<script type='application/ld+json'>
{
"@context": "http://www.schema.org",
"@type": "WebSite",
$if(phpTitleString)$
"name": "<?php echo( $phpTitleString$ );?>",
$else$
"name": "$title$",
$endif$
"alternateName": "$description$",
$if(canonicalPath)$
"url": "<?php echo($$canonicalBaseUrl);?>/$canonicalPath$",
$else$
"url": "<?php echo($$canonicalBaseUrl);?>",
$endif$
"image": <?php echo($$canonicalBaseUrl);?>/ressourcen/graphiken/logos/cwsvJudoLogoWappen.256w.png"
}
</script>
</head>
<body>
<header>
<nav class="nav-extended">
<div class="nav-wrapper" style="font-family: 'Orbitron-Medium', Impact, Charcoal, sans-serif;">
<!-- <img style="height:100%;width:auto;" width="128" height="104" title="Judo im Chemnitzer WSV"
alt="Judo im Chemnitzer WSV - Logo" src="/ressourcen/graphiken/logos/cwsvJudoLogoWappen.128w.png"
srcset="/ressourcen/graphiken/logos/cwsvJudoLogoWappen.256w.png 2x"> -->
<a href="/" class="brand-logo">
<span>cwsvJudo</span>
</a>
$if(mainNav)$
<ul id="nav-mobile" class="right">
$for(mainNav)$
<li>
<a href="$mainNav.url$" $if(mainNav.caption)$title="$mainNav.caption$" $endif$
$if(mainNav.active)$class="active" $endif$>
$if(mainNav.caption)$<span>$mainNav.caption$</span>$endif$
</a>
</li>
$endfor$
</ul>
$endif$
</div>
<div class="nav-content">
$if(subNav)$
<ul class="tabs tabs-transparent">
$for(subNav)$
<li class="tab">
<a href="$subNav.url$" $if(subNav.caption)$title="$subNav.caption$" $endif$
$if(subNav.active)$class="activeNav" $endif$>
<!-- $if(subNav.icon)$
<img src="$if(subNav.icon.src)$$subNav.icon.src$$else$$subNav.icon$$endif$"
$if(subNav.caption)$ alt="$subNav.caption$" $else$ $if(subNav.icon.alt)$
alt="$subNav.icon.alt$" $endif$ $endif$ $if(subNav.icon.width)$
width="$subNav.icon.width$" $endif$ $if(subNav.icon.height)$
height="$subNav.icon.height$" $endif$ $if(subNav.icon.title)$
title="$subNav.icon.title$" $endif$ $if(subNav.icon.srcset)$
srcset="$subNav.icon.srcset$" $endif$>
$endif$ -->
$if(subNav.caption)$<span>$subNav.caption$</span>$endif$
</a>
</li>
$endfor$
</ul>
$endif$
</div>
</nav>
</header>
<main>
$body$
</main>
<footer class="page-footer">
<div class="container">
<div class="row">
<div class="s4 m2 l1">
<a class="btn filled" title="Seite auf HTML 5 Konformität prüfen"
href="http://validator.w3.org/check?uri=<?php echo(urlencode(getCurPagesUrl()));?>"
rel="nofollow">Valid
<i class="material-icon">html</i>
</a>
</div>
<div class="s4 m2 l1">
<a class="btn filled"
title="Möglichkeiten mit dem Chemnitzer Freizeit- und Wohngebietssportverein in Kontakt zu treten"
href="/kontakt">Kontakt</a>
</div>
<div class="s4 m2 l1">
<a class="btn filled" title="Impressum" href="<?php echo($$baseUrl);?>/impressum">Impressum</a>
</div>
<div class="s4 m2 l1">
<a class="btn filled" title="Datenschutz"
href="<?php echo($$baseUrl);?>/datenschutz">Datenschutz</a>
</div>
<div class="s4 m2 l1">
<a class="btn filled" title="News-Feed Abonnieren" href="http://cwsvjudo.bplaced.net/rss"><i
class="material-icon">Rss
Feed</i>
</a>
</div>
</div>
</div>
</footer>
<!--JavaScript at end of body for optimized loading-->
<script type="text/javascript" src="ressourcen/js/materialize.min.js"></script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
var elems = document.querySelectorAll('.dropdown-trigger');
var instances = M.Dropdown.init(elems, {
// specify options here
});
});
</script>
</body>
</html>

View File

@@ -0,0 +1,121 @@
<?php
require_once("./config.inc.php");
require_once($$basePath."/ressourcen/phpLib/cwsvJudo/miscAssis.php");
?>
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="ressourcen/css/cwsvJudo.css">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet" href="ressourcen/css/materialize.min.css" media="screen,projection" />
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<header>
<nav class="nav-extended">
<div class="nav-wrapper" style="font-family: 'Orbitron-Medium', Impact, Charcoal, sans-serif;">
<!-- <img style="height:100%;width:auto;" width="128" height="104" title="Judo im Chemnitzer WSV"
alt="Judo im Chemnitzer WSV - Logo" src="/ressourcen/graphiken/logos/cwsvJudoLogoWappen.128w.png"
srcset="/ressourcen/graphiken/logos/cwsvJudoLogoWappen.256w.png 2x"> -->
<a href="/" class="brand-logo">
<span>cwsvJudo</span>
</a>
$if(mainNav)$
<ul id="nav-mobile" class="right">
$for(mainNav)$
<li>
<a href="$mainNav.url$" $if(mainNav.caption)$title="$mainNav.caption$" $endif$
$if(mainNav.active)$class="active" $endif$>
$if(mainNav.caption)$<span>$mainNav.caption$</span>$endif$
</a>
</li>
$endfor$
</ul>
$endif$
</div>
<div class="nav-content">
$if(subNav)$
<ul class="tabs tabs-transparent">
$for(subNav)$
<li class="tab">
<a href="$subNav.url$" $if(subNav.caption)$title="$subNav.caption$" $endif$
$if(subNav.active)$class="activeNav" $endif$>
<!-- $if(subNav.icon)$
<img src="$if(subNav.icon.src)$$subNav.icon.src$$else$$subNav.icon$$endif$"
$if(subNav.caption)$ alt="$subNav.caption$" $else$ $if(subNav.icon.alt)$
alt="$subNav.icon.alt$" $endif$ $endif$ $if(subNav.icon.width)$
width="$subNav.icon.width$" $endif$ $if(subNav.icon.height)$
height="$subNav.icon.height$" $endif$ $if(subNav.icon.title)$
title="$subNav.icon.title$" $endif$ $if(subNav.icon.srcset)$
srcset="$subNav.icon.srcset$" $endif$>
$endif$ -->
$if(subNav.caption)$<span>$subNav.caption$</span>$endif$
</a>
</li>
$endfor$
</ul>
$endif$
</div>
</nav>
</header>
<div class="parallax-container">
<div class="parallax">
<img src="/ressourcen/graphiken/wallpapers/osae-komi.svg"
data-src="/ressourcen/graphiken/wallpapers/osae-komi.jpg"
onload="if(this.src !== this.getAttribute('data-src')) this.src=this.getAttribute('data-src');">
</div>
</div>
<div class="section">
$body$
</div>
<div class="parallax-container">
<div class="parallax">
<img src="/ressourcen/graphiken/wallpapers/nage.svg" data-src="/ressourcen/graphiken/wallpapers/nage.jpg"
onload="if(this.src!== this.getAttribute('data-src')) this.src=this.getAttribute('data-src');">
</div>
</div>
<footer class="page-footer">
<div class="container">
<div class="row">
<div class="s1">
<a class="touchLink" title="Seite auf HTML 5 Konformität prüfen"
href="http://validator.w3.org/check?uri=<?php echo(urlencode(getCurPagesUrl()));?>"
rel="nofollow">Valid
<img src="/ressourcen/graphiken/icons/HTML5_1Color_Black.svg" alt="HTML 5" title="HTML 5 Logo"
class="charImg">
</a>
</div>
</div>
</div>
<div class="footer-copyright">
<div class="container">
© 2025
</div>
</div>
</footer>
<!--JavaScript at end of body for optimized loading-->
<script type="text/javascript" src="ressourcen/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
const elems = document.querySelectorAll('.parallax');
const instances = M.Parallax.init(elems, {
// specify options here
});
});
</script>
</body>
</html>