Compare commits

...

4 Commits
dev ... master

  1. 24
      .gitignore
  2. 4
      .htaccess
  3. 33
      user/config/security.yaml
  4. 11
      user/config/system.yaml
  5. 197
      user/pages/03.termine/edit/default.de.md
  6. 117
      user/pages/03.termine/sidebarpage.de.md
  7. 35
      user/pages/03.termine/templates.py
  8. BIN
      user/pages/03.termine/templates.pyc
  9. 32
      user/pages/03.termine/termine-web.py
  10. 241
      user/pages/03.termine/termine3.md
  11. 31
      user/pages/03.termine/termine4.md
  12. 13
      user/pages/03.termine/termine_kirchenwn.py
  13. 4
      user/pages/05.gruppen/01.jugendgruppe-bjheck/default.de.md
  14. 8
      user/pages/05.gruppen/sidebarpage.de.md
  15. 2
      user/pages/06.anfahrt/sidebarpage.de.md
  16. 8
      user/pages/08.predigtaufnahmen/default.de.md
  17. 6
      user/pages/09.links/sidebarpage.de.md
  18. 18
      user/pages/podcast/podcast-channel.de.md
  19. BIN
      user/pages/podcast/testepisode/godi_2018-10-28_Thomas Oberndorf_predigt__Andere Fördern - Der schönste Teil der Jesus-Nachfolge.mp3
  20. 12
      user/pages/podcast/testepisode/podcast-episode.de.md
  21. 1
      user/plugins/losung/twig/losungphp2019.dat
  22. 2
      user/themes/church/css/css-only-lightbox.css
  23. 2
      user/themes/church/css/css-only-lightbox.min.css
  24. 42
      user/themes/church/js/custom.js
  25. 78
      user/themes/church/js/polyfill_Array.from.js
  26. 1
      user/themes/church/js/polyfill_Array.from.min.js
  27. 1
      user/themes/church/templates/css
  28. 3
      user/themes/church/templates/partials/base.html.twig

24
.gitignore vendored

@ -1,12 +1,28 @@
# ignore everything
*
# except for .gitignore files in the current directory
!.gitignore
# ignore root files and root dirs
/*
!.gitignore
!.htaccess
!/user
/user/*
#whitelist pages
!/user/pages
#ignore plugins
!/user/plugins
/user/plugins/*
# whitelist losung and python-script
!/user/plugins/losung
!/user/plugins/python-script
#ignore themes
!/user/themes
/user/themes/*
# whitelist church
!/user/themes/church

4
.htaccess

@ -115,10 +115,10 @@ Header set Expect-CT "max-age=0, report-uri=https://csrichter.report-uri.com/r/d
#problem: dynamic on-click handler on predigtaufnahmen page
#cache static file for 1 month
<filesMatch "\.(css|jpe?g|png|gif|js|ico)$">
<filesMatch "\.(css|jpe?g|png|gif|js|ico|mp3)$">
Header set Cache-Control "max-age=2628000, public"
</filesMatch>
Header set Pragma "cache"
#Header set Pragma "cache"
#<filesMatch "\.(html)$">
#Header set Cache-Control "must-revalidate, public"

33
user/config/security.yaml

@ -1 +1,34 @@
xss_whitelist:
- admin.super
xss_enabled:
on_events: true
invalid_protocols: true
moz_binding: true
html_inline_styles: true
dangerous_tags: true
xss_dangerous_tags:
- applet
- meta
- xml
- blink
- link
- style
- script
- embed
- object
- iframe
- frame
- frameset
- ilayer
- layer
- bgsound
- title
- base
uploads_dangerous_extensions:
- php
- html
- htm
- js
- exe
- py
salt: BRtpCILx1Zm9D4

11
user/config/system.yaml

@ -28,7 +28,7 @@ pages:
list:
count: 20
dateformat:
default: 'd-m-Y H:i'
default: 'Y-m-d H:i'
short: 'jS M Y'
long: 'F jS \a\t g:ia'
publish_dates: true
@ -111,7 +111,7 @@ assets:
collections:
jquery: 'system://assets/jquery/jquery-2.x.min.js'
errors:
display: '0'
display: 0
log: true
debugger:
enabled: false
@ -130,14 +130,17 @@ media:
upload_limit: 67108864
session:
enabled: true
initialize: true
initialize: false
timeout: 1800
name: baptisten-hohenacker
secure: true
httponly: true
split: true
split: false
gpm:
releases: stable
method: auto
verify_peer: true
official_gpm_only: true
strict_mode:
yaml_compat: true
twig_compat: true

197
user/pages/03.termine/edit/default.de.md

@ -0,0 +1,197 @@
---
title: edit
---
<style>
.column {
float: left;
width: 50%;
}
.column textarea{
width: 95%;
}
table{
font-family: Calibri,sans-serif;
}
tr.month{
font-size: 160%;font-weight:bold;text-align:center;
}
tr.month td{
padding-right: 120px;
}
tr.line{
font-family: Calibri,sans-serif;font-size: 100%;
}
tr.line td{
padding-right: 5px;
}
tr.boldline{
font-family: Calibri,sans-serif;font-size: 100%;text-decoration: underline;font-weight:bold;
}
tr.boldline td{
padding-right: 5px;
}
</style>
<div class="column">
<h2>input</h2>
<textarea rows=40 id=input>
2018-07-01;10.00 Uhr;text_fett;Brunchgottesdienst mit Viktor Petkau
2018-07-02;20.00 Uhr;text;Treffen der Kigo-Mitarbeiter bei Fam. Homering
2018-07-03;15.00 Uhr;bibge;
2018-07-08;10.00 Uhr;text_fett;Hohenacker-Sommer Gottesdienst mit Viktor Petkau in der Ortsmitte
2018-07-10;15.00 Uhr;bibge;
2018-07-11;20.00 Uhr;hauskr;bei Christine
2018-07-15;10.00 Uhr;godi;Uwe Köhler
2018-07-17;15.00 Uhr;bibge;
2018-07-21; 9.00 Uhr;maegfit;
2018-07-22;10.00 Uhr;godi;Jürgen Vollmer
2018-07-24;15.00 Uhr;bibge;
2018-07-25;20.00 Uhr;hauskr;bei Christine
2018-07-29;10.00 Uhr;godi;Andreas Mende
2018-07-31;15.00 Uhr;bibge;
2018-08-05;10.00 Uhr;godi;Thomas Rissmann
2018-08-05;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße
2018-08-07;15.00 Uhr;bibge;
2018-08-12;10.00 Uhr;godi;Viktor Petkau
2018-08-14;15.00 Uhr;bibge;
2018-08-19;10.00 Uhr;godi;Josias Richter
2018-08-21;15.00 Uhr;bibge;
2018-08-26;10.00 Uhr;godi;
2018-08-28;15.00 Uhr;bibge;
</textarea>
</div>
<div class="column">
<h2>output</h2>
<input type="radio" name="outputType" value="web" checked> web<br>
<input type="radio" name="outputType" value="gembr"> gembr<br>
<input type="radio" name="outputType" value="kirchenwn"> kirchenwn<br>
<div id=output>
</div>
</div>
<script>
function update(){
let input = document.getElementById("input");
console.log("update");
let lines = input.value.split("\n");
lines.pop()//remove last (empty) line
let output = document.getElementById("output");
config={
"inputType":"csv",
"outputType": document.querySelector('input[name="outputType"]:checked').value
}
let list=formatList(preprocess(lines,config),config)
let table='<table class="termintabelle" border="0" cellpadding="1" cellspacing="1" ><tbody>'+list.join("\n")+"</tbody></table>"
output.innerHTML=table;
};
function preprocess(text,config){
inputType = config.inputType || "csv";
outputType = config.outputType || "web";
let lines = text;
if (inputType == "csv"){
lines=csvtojson(lines);
}
let jsonTemplates={
"godi":{"title":"Gottesdienst mit {param}{noweb}","time":"10.00 Uhr","noweb":"","style":"boldline"}
,"bibge":{"title":"Bibelgespräch","time":"15.00 Uhr"}
,"gu":{"title":"Gemeindeunterricht"}
,"hauskr":{"title":"Hauskreis {param}{noweb}","time":"20.00 Uhr","param":"bei Christine","noweb":" (Tel. 8 36 48)"}
,"text":{"title":"{param}"}
,"text_fett":{"title":"{param}","style":"boldline"}
,"mägfit":{"title":"MäGFiT in der Kapelle"}
,"JaS":{"title":"Jesus auf der Spur"}
}
if (outputType == "kirchenwn"){
lines = lines.filter(line=>line.category=="godi"||line.category=="text_fett");
}
let lastDate=new Date("2000-01-01");
let linesWithMonthHeadings=[];
for (let i = 0;i<lines.length;i++){
let date=new Date(lines[i].date);
let monthnames=['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
if (lastDate.getMonth() < date.getMonth()){
heading={"title":monthnames[date.getMonth()],"style":"month"};
linesWithMonthHeadings.push(heading);
}
linesWithMonthHeadings.push(lines[i]);
lastDate = date;
}
return linesWithMonthHeadings.map(function(line){
line.category = line.category || "text";
line.param = line.param || "";
let template = jsonTemplates[line.category];
console.log(line)
line = ({...template,...line})//apply template
line.title = line.title.replace("{param}",line.param)
if (line.category=="godi" && line.param ==""){//godi ohne prediger
line.title="Gottesdienst";
}
if (outputType == "web"){
line.noweb="";
}
line.title = line.title.replace("{noweb}",line.noweb);
let weekday_names=["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]
let weekday_names_short=["So","Mo","Di","Mi","Do","Fr","Sa"]
let monthnames=['','Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
let d = new Date(line.date)
line.dow = weekday_names_short[d.getDay()]
line.dow_long = weekday_names[d.getDay()]
line.date_ddmm = ("0" + d.getDate()).slice(-2) +"."+ ("0" + (1+d.getMonth())).slice(-2) +".";
line.date_ddmmyyyy = ("0" + d.getDate()).slice(-2) +"."+ ("0" + (1+d.getMonth())).slice(-2) +"." + d.getFullYear();
//line.displayDate = new Intl.DateTimeFormat('de-DE').format(d).slice(0,-4);
return line
})
}
function formatLine(line,outputType){
/*let htmlTemplates={
"month":{"str":'<tr "class"="month"><td colspan="4">{month}</td></tr>'},
"line":{"str":'<tr "class"="line" style=><td>{dow}</td><td>{displayDate}</td><td style="text-align:right;">{time}</td><td>{title}</td><tr>'},
}*/
line.style = line.style || "line";
if (outputType == "web" && line.style == "month")
return `<tr class="month"><td colspan="4">${line.title}</td></tr>`
if (outputType != "web"&& line.style == "month")
return `<tr><td></td><td></td><td>${line.title}</td><tr>`;
line.time = line.time.split(" ").join("&nbsp;");
if (outputType == "web"){
return `<tr class="${line.style}" style=><td>${line.dow}</td><td>${line.date_ddmm}</td><td style="text-align:right;">${line.time}</td><td>${line.title}</td><tr>`;
}else if (outputType == "gembr" && line.style=="line"){
return `<tr><td>${line.dow}</td><td>${line.date_ddmm}</td><td>${line.time} ${line.title}</td><tr>`;
}else if (outputType == "gembr" && line.style=="boldline"){
return `<tr><td><u><b>${line.dow}</u></b></td><td><u><b>${line.date_ddmm}</u></b></td><td><u><b>${line.time} ${line.title}</u></b></td><tr>`;
}else if (outputType == "kirchenwn"){
return `<tr><td>${line.dow_long}</td><td>${line.date_ddmmyyyy}</td><td>${line.time}</td><td>${line.title}</td><tr>`;
}
}
function formatList(list,config){
outputType = config.outputType || "web";
list=list.map(line => formatLine(line,outputType));
return list;
}
function zip(header,value){
return header.map(function(e,i){
let obj={}
obj[e]=value[i];
return obj;
})
}
function csvtojson(list){
return list.map(function (line){
elems=line.split(";")
header=["date","time","category","param"]
let jsonelem= zip(header,elems).reduce((acc,val)=>({...acc,...val}))
return jsonelem;
})
}
document.getElementById("input").oninput=update;
document.querySelectorAll('input[name="outputType"]').forEach(checkbox => checkbox.onchange=update)
update()
</script>

117
user/pages/03.termine/sidebarpage.de.md

@ -175,13 +175,128 @@ date (iso);time-string;category;param
2018-06-24;10.00 Uhr;godi;Willy Kuhn (Open Doors)
2018-06-26;15.00 Uhr;bibge;
2018-06-27;20.00 Uhr;hauskr;bei Christine
2018-07-01;10.00 Uhr;text_fett;Brunchgottesdienst mit Viktor Petkau
2018-07-02;20.00 Uhr;text;Treffen der Kigo-Mitarbeiter bei Fam. Homering
2018-07-03;15.00 Uhr;bibge;
2018-07-08;10.00 Uhr;text_fett;Hohenacker-Sommer Gottesdienst mit Viktor Petkau in der Ortsmitte
2018-07-10;15.00 Uhr;bibge;
2018-07-11;20.00 Uhr;hauskr;bei Christine
2018-07-15;10.00 Uhr;godi;Uwe Köhler
2018-07-17;15.00 Uhr;bibge;
2018-07-21; 9.00 Uhr;mägfit;
2018-07-22;10.00 Uhr;godi;Jürgen Vollmer
2018-07-24;15.00 Uhr;bibge;
2018-07-25;20.00 Uhr;hauskr;bei Christine
2018-07-29;10.00 Uhr;godi;Andreas Mende
2018-07-31;15.00 Uhr;bibge;
2018-08-05;10.00 Uhr;godi;Thomas Rissmann
2018-08-05;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße
2018-08-07;15.00 Uhr;bibge;
2018-08-12;10.00 Uhr;godi;Viktor Petkau
2018-08-19;10.00 Uhr;godi;Josias Richter
2018-08-26;10.00 Uhr;godi;
2018-09-02;10.00 Uhr;godi;Manfred Draheim
2018-09-06;15.00 Uhr;bibge; in der Friedenskirche in Backnang (Eugen-Bolz-Str. 24)
2018-09-09;10.00 Uhr;godi;Viktor Petkau
2018-09-14;17.00 Uhr;text;„Jesus auf der Spur“
2018-09-16;10.00 Uhr;godi;Martin Heißwolf
2018-09-19;20.00 Uhr;hauskr;bei Christine
2018-09-21;17.00 Uhr;text;„Jesus auf der Spur“
2018-09-23;10.00 Uhr;godi;
2018-09-28;17.00 Uhr;text;„Jesus auf der Spur“
2018-09-29; 9.00 Uhr;mägfit;
2018-09-30;10.00 Uhr;godi;Jürgen Vollmer
2018-10-02;15.00 Uhr;bibge;
2018-10-02;19.45 Uhr;text;Gemeindeleitungssitzung
2018-10-05;17.00 Uhr;text;„Jesus auf der Spur“
2018-10-07;10.00 Uhr;text_fett;Erntedank-Gottesdienst mit Martin Heißwolf
2018-10-07;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße 109
2018-10-09;15.00 Uhr;bibge;
2018-10-13; 9.30 Uhr;text;Gemeindefrühstück
2018-10-14;10.00 Uhr;godi;Viktor Petkau
2018-10-16;15.00 Uhr;bibge;
2018-10-17;16.00 Uhr;gu;
2018-10-17;20.00 Uhr;hauskr;bei Christine
2018-10-19;17.00 Uhr;text;„Jesus auf der Spur“
2018-10-21;10.00 Uhr;godi;Martin Heißwolf
2018-10-23;15.00 Uhr;bibge;
2018-10-26;17.00 Uhr;text;„Jesus auf der Spur“
2018-10-28;10.00 Uhr;godi;Thomas Oberdorf
2018-10-30;15.00 Uhr;bibge;
2018-11-04;10.00 Uhr;godi;Stefan Wawro
2018-11-09;17.00 Uhr;text;Jesus auf der Spur
2018-11-11;10.00 Uhr;godi;Viktor Petkau
2018-11-13;15.00 Uhr;bibge;
2018-11-13;19.45 Uhr;text;Gemeindeleitungssitzung
2018-11-14;20.00 Uhr;hauskr;
2018-11-16;17.00 Uhr;text;Jesus auf der Spur
2018-11-18;10.00 Uhr;godi;Andreas Mende
2018-11-23;17.00 Uhr;text;Jesus auf der Spur
2018-11-24; 9.00 Uhr;mägfit;
2018-11-25;10.00 Uhr;godi;Hartmut Meier
2018-11-27;15.00 Uhr;bibge;
2018-11-28;20.00 Uhr;hauskr;
2018-11-30;17.00 Uhr;text;Jesus auf der Spur
2018-12-02;16.00 Uhr;text_fett;Filmgottesdienst mit Viktor Petkau
2018-12-03;16.00 Uhr;gu;
2018-12-06;16.00 Uhr;text;Bibelgespräch in Backnang mit Kaffee & Kuchen
2018-12-07;17.00 Uhr;text;Jesus auf der Spur
2018-12-07;19.00 Uhr;text;Gemeindeleitungssitzung
2018-12-09;10.00 Uhr;godi;Viktor Petkau
2018-12-11;15.00 Uhr;bibge;
2018-12-12;20.00 Uhr;hauskr;
2018-12-14;17.00 Uhr;text;Jesus auf der Spur
2018-12-16;10.00 Uhr;godi;Martin Heißwolf
2018-12-17;16.00 Uhr;gu;
2018-12-18;15.00 Uhr;bibge;
2018-12-21;17.00 Uhr;text;Jesus auf der Spur
2018-12-23;10.00 Uhr;godi;Andreas Mende
2018-12-24;16.00 Uhr;text;Heilig-Abend-Gottesdienst mit Martin Heißwolf
2018-12-30;10.00 Uhr;godi;Manfred Draheim
2018-12-31;16.30 Uhr;text;Silvester-Gottesdienst mit Josias Richter
2019-01-04;19.00 Uhr;text;Gemeindeleitungssitzung
2019-01-05; 9.30 Uhr;text;Gemeindefrühstück
2019-01-06;10.00 Uhr;godi;Andreas Mende
2019-01-08;15.00 Uhr;bibge;
2019-01-09;20.00 Uhr;hauskr;
2019-01-11;17.00 Uhr;jas;
2019-01-13;10.00 Uhr;godi;Jürgen Vollmer
2019-01-14;16.00 Uhr;gu;
2019-01-15;15.00 Uhr;bibge;
2019-01-18;17.00 Uhr;jas;
2019-01-20;10.00 Uhr;godi;Viktor Petkau
2019-01-22;15.00 Uhr;bibge;
2019-01-23;20.00 Uhr;hauskr;
2019-01-25;17.00 Uhr;jas;
2019-01-26; 9.00 Uhr;mägfit;
2019-01-27;10.00 Uhr;godi;Stefan Wawro
2019-01-28;16.00 Uhr;gu;
2019-01-29;15.00 Uhr;bibge;
2019-02-01;17.00 Uhr;jas;
2019-02-03;10.00 Uhr;godi;Martin Heißwolf
2019-02-05;15.00 Uhr;bibge;
2019-02-06;20.00 Uhr;hauskr;
2019-02-08;17.00 Uhr;jas;
2019-02-10;10.00 Uhr;godi;Andreas Fischer
2019-02-11;16.00 Uhr;gu;
2019-02-12;15.00 Uhr;bibge;
2019-02-15;17.00 Uhr;jas;
2019-02-17;10.00 Uhr;godi;Viktor Petkau
2019-02-17;12.00 Uhr;text;Jahresgemeindestunde
2019-02-20;20.00 Uhr;hauskr;
2019-02-22;17.00 Uhr;jas;
2019-02-24;10.00 Uhr;godi;
2019-02-25;16.00 Uhr;gu;
2019-02-26;15.00 Uhr;bibge;
{%endset%}
{% filter pythonscript('termine-web.py') %}
{{termine_csv}}
{% endfilter %}
{% if config.plugins.login.enabled and grav.user.username %}
{% if uri.query('format')=="all" %}
{{uri.query('format')}}
{% filter pythonscript('termine_kirchenwn.py') %}
{{termine_csv}}
{% endfilter %}

35
user/pages/03.termine/templates.py

@ -7,17 +7,19 @@ weekday_names_short=["Mo","Di","Mi","Do","Fr","Sa","So"]
monthnames=['','Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
#text,other,sonder,...
web_templates={"godi":"Gottesdienst mit {param}"
,"bibge":"Bibelgespräch"
,"bibge":"Bibelgespräch{param}"
,"gu":"Gemeindeunterricht"
,"hauskr":"Hauskreis {param}"
,"text":"{param}"
,"text_fett":"{param}"
,"m\xc3\xa4gfit":"MäGFiT in der Kapelle"}
,"m\xc3\xa4gfit":"MäGFiT in der Kapelle"
,"jas":"Jesus auf der Spur"}
web_templates_noparam={"godi":"Gottesdienst"
,"bibge":"Bibelgespräch"
,"gu":"Gemeindeunterricht"
,"hauskr":"Hauskreis"
,"m\xc3\xa4gfit":"MäGFiT in der Kapelle"}
,"m\xc3\xa4gfit":"MäGFiT in der Kapelle"
,"jas":"Jesus auf der Spur"}
ortsbl_terminbeschreibung={
#"godi":"Für die Kinder bieten wir parallel zum Gottesdienst für die Erwachsenen einen Kindergottesdienst an."
"godi":"Wir laden herzlich zum Gottesdienst in unserer Kapelle ein."
@ -28,19 +30,34 @@ ortsbl_terminbeschreibung={
,"text_fett":""
,"m\xc3\xa4gfit":"""Männer, haltet Euch fit mit einem gemeinsamen Frühstück und Gebet
Anmeldungen bei Uwe Köhler
Tel.: 07151 / 22616"""}
Tel.: 07151 / 22616"""
,"jas":"Jungschar für Jungen und Mädchen von 8-14 Jahren in der Kapelle."}
gembr_templates=web_templates
gembr_html_line_template='<tr><td>{weekday}</td><td>{date}</td><td>{time} {text}</td><tr>'
gembr_html_line_template_bold_ul='<tr><td><u><b>{weekday}</u></b></td><td><u><b>{date}</u></b></td><td><u><b>{time} {text}</u></b></td><tr>'
html_line_template='<tr style="{style}"><td style="padding-right: {padding}px;">{weekday}</td><td style="padding-right: {padding}px;">{date}</td><td style="padding-right: {padding}px;text-align:right;">{time}</td><td>{text}</td><tr>'
web_html_line_template='<tr class="{classes}"><td>{weekday}</td><td>{date}</td><td class="zeit">{time}</td><td>{text}</td><tr>'
html_template="""
<style>
.tablerow{{
font-family: Calibri,sans-serif;font-size: 100%;}}
.termintabelle .zeit{{
text-align:right;
}}
.termintabelle tr{{
font-family: Calibri,sans-serif;font-size: 100%;
}}
.highlighted{{
text-decoration: underline;font-weight:bold;}}
td{{padding-right: 5px;
text-decoration: underline;font-weight:bold;
}}
.termintabelle td{{
padding-right: 5px;
}}
.termintabelle .heading{{
padding-right: 0px;
font-size: 160%;font-weight:bold;text-align:center;
}}
.termintabelle .heading td{{
padding-right: 120px;
}}
</style>
<table class="termintabelle" border="0" cellpadding="1" cellspacing="1" >
<tbody>

BIN
user/pages/03.termine/templates.pyc

Binary file not shown.

32
user/pages/03.termine/termine-web.py

@ -6,6 +6,8 @@ from templates import *
import sys
sys.path.append("/mnt/web103/c1/41/53451241/htdocs/grav/pythonlib")
import HTMLParser #for unescaping
#TODO check input via regexp?
#TODO use style tage instead on inline css
@ -25,6 +27,8 @@ html_escape_table = {
u"Ö": "&Ouml",
u"Ü": "&Uuml",
u"ß": "&szlig;",
u"":"&ldquo;",
u"":"&rdquo;",
}
def html_escape(text):
"""Produce entities within text."""
@ -38,10 +42,16 @@ workdir=os.path.dirname(os.path.realpath(__file__))+"/"
outtype="web"#web,ortsblatt,gembr,kirchenwn
logmessage=""
#print sys.argv
#print("hi")
#print(workdir)
#remove <p> </p> tags surrounding parameter block of twig filter
param=sys.argv[1].replace('<p>','').replace('</p>','')
#unescape html (grav passes csv as html-escaped string)
param=HTMLParser.HTMLParser().unescape(param.decode('utf-8')).encode('utf-8')
#reader=[line.split(";") for line in param.split("\n")] #naive parsing, doesnt support quoted cells
reader = csv.reader(param.split('\n'), delimiter=';')
@ -53,7 +63,7 @@ reader.next()#skip header
#lines=[]
table_content=""
lastdate=datetime.date(2000,1,1)#date in past -> add heading to first month
logmessage+="lastdate is {}".format(lastdate)
logmessage+="lastdate is {}\n".format(lastdate)
for row in reader:
try:
if not row:#ignore empty lines
@ -69,14 +79,13 @@ for row in reader:
category=row[2]
yesterday=datetime.datetime.now().date()-datetime.timedelta(days=1)
if date.month>=yesterday.month and date.year>=yesterday.year and outtype in ["web","gembr"]and date.month!=lastdate.month:#add heading
style="font-family: Calibri,sans-serif;font-size: 160%;font-weight:bold;text-align:center;"
#style="font-size: 18pt;font-weight:bold;"
#style="font-family: Calibri,sans-serif;font-size: 160%;font-weight:bold;text-align:center;"
#monthname=html_escape(date.strftime("%B"))+" %i"%date.year
monthname=html_escape(monthnames[date.month])+" %i"%date.year
#line='<tr style="%s"><td></td><td></td><td colspan="2">%s</td></tr>'%(style,monthname)
#line=html_line_template.format(date="",time=monthname,text="",weekday="",style=style,padding=5)
if outtype is "web":
line='<tr style="%s"><td colspan="4" style="padding-right: 120px;">%s</td></tr>'%(style,monthname)
line='<tr class="heading"><td colspan="4">%s</td></tr>'%(monthname)
elif outtype is "gembr":
line=gembr_html_line_template.format(date="",time="<font size='5'><b>%s</b></font>"%monthname,text="",weekday="")
table_content+=line+"\n"
@ -100,13 +109,11 @@ for row in reader:
#if outtype=="ortsblatt":
#style+="font-family: 'Times New Roman', serif;"
if outtype is "web":
style="font-family: Calibri,sans-serif;"
classes=""
if category in ["godi","text_fett"]:
style+="font-size: 100%;text-decoration: underline;font-weight:bold;"
else:
style+="font-size: 100%;"#font-size: 14pt;
classes+="highlighted"
time="&nbsp;".join(row[1].split(" "))#make space in "10.00 Uhr" non breaking
line=html_line_template.format(date=datestr,time=time,text=html_escape(text),weekday=weekday,style=style,padding=5)
line=web_html_line_template.format(date=datestr,time=time,text=html_escape(text),weekday=weekday,classes=classes)
elif outtype is "gembr":
if category in ["godi","text_fett"]:
line=gembr_html_line_template_bold_ul.format(date=datestr,time=row[1],text=html_escape(text),weekday=weekday)
@ -115,12 +122,13 @@ for row in reader:
table_content+=line+"\n"
lastdate=date
except:
print "error at row:"
print row
logmessage+="error at row:"
logmessage+=str(row)+"\n"
# logmessage+=str(e.message)+"\n"
pass
logmessage+="generated sucessfully on %s"%str(datetime.datetime.now())
table_html=html_template.format(table_content=table_content)
table_html+="""<script>console.log("{}")</script>""".format(logmessage)
table_html+="""<script>console.log(`{}`)</script>""".format(logmessage)
#f = open("table.html",'w')
#f.writelines(table_html)
#f.close()

241
user/pages/03.termine/termine3.md

@ -0,0 +1,241 @@
<p>date (iso);time-string;category;param
2017-04-30;16.00 Uhr;text_fett;Filmgottesdienst mit Viktor Petkau
2017-05-02;15.00 Uhr;bibge;
2017-05-03;20.00 Uhr;hauskr;bei Christine
2017-05-07;10.00 Uhr;godi;Andreas Mende
2017-05-09;15.00 Uhr;bibge;
2017-05-14;10.00 Uhr;godi;Siegbert Martin
2017-05-17;20.00 Uhr;hauskr;bei Christine
2017-05-21;10.00 Uhr;godi;Stefan Wawro
2017-05-27; 9.00 Uhr;mägfit;
2017-05-28;10.00 Uhr;godi;Manfred Draheim
2017-05-30;15.00 Uhr;bibge;
2017-05-31;17.30 Uhr;gu;
2017-05-31;19.45 Uhr;text;Gemeindeleitungssitzung
2017-05-31;20.00 Uhr;hauskr;bei Christine
2017-06-04;10.00 Uhr;godi;Andreas Mende
2017-06-06;15.00 Uhr;bibge;
2017-06-11;10.00 Uhr;godi;Viktor Petkau
2017-06-11;11.00 Uhr;text;Gemeindeversammlung
2017-06-13;15.00 Uhr;bibge;
2017-06-18;10.00 Uhr;godi;Siegbert Martin
2017-06-20;15.00 Uhr;bibge;
2017-06-24;11.00 Uhr;text;Taufseminar
2017-06-24;15.00 Uhr;text;Gemeindeforum
2017-06-25;10.00 Uhr;text_fett;Brunch-Gottesdienst mit Johannes Heißwolf
2017-06-27;15.00 Uhr;bibge;
2017-06-28;17.30 Uhr;gu;
2017-06-28;20.00 Uhr;hauskr;bei Christine
2017-07-01;11.00 Uhr;text;Taufseminar
2017-07-02;10.00 Uhr;godi;Viktor Petkau
2017-07-08;11.00 Uhr;text;Taufseminar
2017-07-09;10.00 Uhr;godi;Viktor Petkau
2017-07-12;17.30 Uhr;gu;
2017-07-12;20.00 Uhr;hauskr;bei Christine
2017-07-14;;text;Gemeindefreizeit in Sechselberg
2017-07-15;;text;Gemeindefreizeit in Sechselberg
2017-07-16;10.00 Uhr;text_fett;Gottesdienst bei der Gemeindefreizeit in Sechselberg
2017-07-18;15.00 Uhr;bibge;
2017-07-21;ab 19 Uhr;text;Teilahme am 24-Stunden-Schwimmen in Waiblingen
2017-07-22;bis 19 Uhr;text;Teilahme am 24-Stunden-Schwimmen in Waiblingen
2017-07-23;10.00 Uhr;godi;Andreas Mende
2017-07-25;15.00 Uhr;bibge;
2017-07-26;17.30 Uhr;gu;
2017-07-26;20.00 Uhr;hauskr;bei Christine
2017-07-29; 9.00 Uhr;mägfit;
2017-07-30;10.00 Uhr;godi;Siegbert Martin
2017-08-01;15.00 Uhr;bibge;
2017-08-06;10.00 Uhr;text_fett;Gemeinsamer Brunchgottesdienst mit Thomas Rissmann und der Waiblinger Gemeinde
2017-08-06;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße 109
2017-08-08;15.00 Uhr;bibge;
2017-08-13;10.00 Uhr;godi;Viktor Petkau
2017-08-20;10.00 Uhr;godi;Andreas Mende
2017-08-22;15.00 Uhr;bibge;
2017-08-27;10.00 Uhr;godi;Siegbert Martin
2017-08-29;15.00 Uhr;bibge;
2017-09-03;10.00 Uhr;text_fett;Gemeinsamer Gottesdienst mit Jürgen Vollmer und der Waiblinger Gemeinde in Hohenacker
2017-09-05;15.00 Uhr;bibge;
2017-09-10;10.00 Uhr;text_fett;Taufgottesdienst mit Viktor Petkau
2017-09-12;20.00 Uhr;text;Treffen der Kindergottesdienstmitarbeiter bei Familie Homering
2017-09-17;10.00 Uhr;godi;Martin Heißwolf
2017-09-20;20.00 Uhr;hauskr;bei Christine
2017-09-24;10.00 Uhr;godi;Siegbert Martin
2017-09-30; 9.00 Uhr;mägfit;
2017-10-01;10.00 Uhr;text_fett;Erntedankgottesdienst mit Margot Köhler und der Waiblinger Gemeinde
2017-10-01;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße 109
2017-10-04;20.00 Uhr;hauskr;bei Christine
2017-10-08;10.00 Uhr;godi;Andreas Mende
2017-10-10;15.00 Uhr;bibge;
2017-10-15;10.00 Uhr;godi;Viktor Petkau
2017-10-17;15.00 Uhr;bibge;
2017-10-18;20.00 Uhr;hauskr;bei Christine
2017-10-21;15.00 Uhr;text;Gemeindeforum
2017-10-22;10.00 Uhr;godi;Siegbert Martin
2017-10-24;15.00 Uhr;bibge;
2017-10-29;10.00 Uhr;text_fett;Gottesdienst
2017-11-04;15.30 Uhr;gu;
2017-11-04;17.00 Uhr;text;Verabschiedung von Birgit Russer
2017-11-05;10.00 Uhr;godi;Thomas Oberndorf
2017-11-12;10.00 Uhr;text_fett;Abschlussgottesdienst GU mit Viktor Petkau
2017-11-14;15.00 Uhr;bibge;
2017-11-15;20.00 Uhr;hauskr;bei Christine
2017-11-19;10.00 Uhr;godi;Siegbert Martin
2017-11-24;19.30 Uhr;text;Missionsabend mit Andrea und Martin Heißwolf
2017-11-26;10.00 Uhr;godi;Andreas Mende
2017-11-28;15.00 Uhr;bibge;
2017-11-29;20.00 Uhr;hauskr;bei Christine
2017-12-02; 9.00 Uhr;mägfit;
2017-12-03;16.00 Uhr;text_fett;Filmgottesdienst mit Viktor Petkau
2017-12-10;10.00 Uhr;godi;Viktor Petkau
2017-12-12;15.00 Uhr;bibge;
2017-12-13;20.00 Uhr;hauskr;bei Christine
2017-12-17;10.00 Uhr;godi;Andreas Mende
2017-12-19;15.00 Uhr;bibge;
2017-12-24;10.00 Uhr;godi;Viktor Petkau
2017-12-31;16.00 Uhr;godi;Josias Richter
2018-01-02;15.00 Uhr;bibge;
2018-01-07;10.00 Uhr;godi;Viktor Petkau
2018-01-09;15.00 Uhr;bibge;
2018-01-10;20.00 Uhr;hauskr;bei Christine
2018-01-13; 9.00 Uhr;mägfit;
2018-01-14;10.00 Uhr;godi;Martin Heißwolf
2018-01-16;15.00 Uhr;bibge;
2018-01-21;10.00 Uhr;godi;Andreas Mende
2018-01-23;15.00 Uhr;bibge;
2018-01-24;20.00 Uhr;hauskr;bei Christine
2018-01-25;20.00 Uhr;text;Gemeindeleitungssitzung
2018-01-28;10.00 Uhr;godi;Jürgen Vollmer
2018-02-03;15.00 Uhr;text;Gemeindeforum
2018-02-04;10.00 Uhr;godi;Manfred Draheim
2018-02-06;15.00 Uhr;bibge;
2018-02-07;20.00 Uhr;hauskr;bei Christine
2018-02-11;10.00 Uhr;godi;Martin Heißwolf
2018-02-13;15.00 Uhr;bibge;
2018-02-15;19.45 Uhr;text;Gemeindeleitungssitzung
2018-02-18;10.00 Uhr;godi;Viktor Petkau
2018-02-18;12.00 Uhr;text_fett;Gemeinsames Mittagessen und Jahresgemeindestunde
2018-02-19;20.00 Uhr;text;Kigo-Mitarbeitertreffen bei Fam. Homering
2018-02-20;15.00 Uhr;bibge;
2018-02-21;20.00 Uhr;hauskr;bei Christine
2018-02-23;19.30 Uhr;text;Vortragsabend mit Andrea und Martin Heißwolf
2018-02-25;10.00 Uhr;godi;Dirk Lösch
2018-02-27;15.00 Uhr;bibge;
2018-03-04;10.00 Uhr;godi;Andreas Mende
2018-03-07;20.00 Uhr;hauskr;bei Christine
2018-03-11;10.00 Uhr;godi;Martin Heißwolf
2018-03-13;19.30 Uhr;text;Ökumenischer Bibelabend (im Ev. Gemeindehaus)
2018-03-14;19.30 Uhr;text;Ökumenischer Bibelabend (im Ev. Gemeindehaus)
2018-03-15;19.30 Uhr;text;Ökumenischer Bibelabend (im Ev. Gemeindehaus)
2018-03-18;10.00 Uhr;godi;Martin Heißwolf
2018-03-20;15.00 Uhr;bibge;
2018-03-21;20.00 Uhr;hauskr;bei Christine
2018-03-24; 9.00 Uhr;mägfit;
2018-03-25;10.00 Uhr;godi;Viktor Petkau
2018-03-30;10.00 Uhr;text_fett;Karfreitagsgottesdienst mit Viktor Petkau
2018-03-31;13.00 Uhr;text;Gemeinsamer Frühjahrsputz
2018-04-01;10.00 Uhr;godi;Stefan Wawro
2018-04-03;15.00 Uhr;bibge;
2018-04-08;10.00 Uhr;godi;Bernd Herrmann
2018-04-15;10.00 Uhr;godi;Martin Heißwolf
2018-04-18;20.00 Uhr;hauskr;bei Christine
2018-04-19;19.45 Uhr;text;Gemeindeleitungssitzung
2018-04-22;10.00 Uhr;godi;Viktor Petkau
2018-04-24;15.00 Uhr;bibge;
2018-04-29;10.00 Uhr;text_fett;Filmgottesdienst mit Josias Richter
2018-05-02;20.00 Uhr;hauskr;bei Christine
2018-05-06;10.00 Uhr;godi;Viktor Petkau
2018-05-08;15.00 Uhr;bibge;
2018-05-13;10.00 Uhr;godi;Viktor Petkau
2018-05-15;15.00 Uhr;bibge;
2018-05-16;20.00 Uhr;hauskr;bei Christine
2018-05-20;10.00 Uhr;godi;Andreas Mende
2018-05-22;15.00 Uhr;bibge;
2018-05-27;10.00 Uhr;godi;Manfred Draheim
2018-05-29;15.00 Uhr;bibge;
2018-06-03;10.00 Uhr;godi;Martin Heißwolf
2018-06-10;10.00 Uhr;godi;Martin Heißwolf
2018-06-13;20.00 Uhr;hauskr;bei Christine
2018-06-17;10.00 Uhr;godi;Jürgen Vollmer
2018-06-19;15.00 Uhr;bibge;
2018-06-24;10.00 Uhr;godi;Willy Kuhn (Open Doors)
2018-06-26;15.00 Uhr;bibge;
2018-06-27;20.00 Uhr;hauskr;bei Christine
2018-07-01;10.00 Uhr;text_fett;Brunchgottesdienst mit Viktor Petkau
2018-07-02;20.00 Uhr;text;Treffen der Kigo-Mitarbeiter bei Fam. Homering
2018-07-03;15.00 Uhr;bibge;
2018-07-08;10.00 Uhr;text_fett;Hohenacker-Sommer Gottesdienst mit Viktor Petkau in der Ortsmitte
2018-07-10;15.00 Uhr;bibge;
2018-07-11;20.00 Uhr;hauskr;bei Christine
2018-07-15;10.00 Uhr;godi;Uwe Köhler
2018-07-17;15.00 Uhr;bibge;
2018-07-21; 9.00 Uhr;mägfit;
2018-07-22;10.00 Uhr;godi;Jürgen Vollmer
2018-07-24;15.00 Uhr;bibge;
2018-07-25;20.00 Uhr;hauskr;bei Christine
2018-07-29;10.00 Uhr;godi;Andreas Mende
2018-07-31;15.00 Uhr;bibge;
2018-08-05;10.00 Uhr;godi;Thomas Rissmann
2018-08-05;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße
2018-08-07;15.00 Uhr;bibge;
2018-08-12;10.00 Uhr;godi;Viktor Petkau
2018-08-19;10.00 Uhr;godi;Josias Richter
2018-08-26;10.00 Uhr;godi;
2018-09-02;10.00 Uhr;godi;Manfred Draheim
2018-09-06;15.00 Uhr;bibge; in der Friedenskirche in Backnang (Eugen-Bolz-Str. 24)
2018-09-09;10.00 Uhr;godi;Viktor Petkau
2018-09-14;17.00 Uhr;text;„Jesus auf der Spur“
2018-09-16;10.00 Uhr;godi;Martin Heißwolf
2018-09-19;20.00 Uhr;hauskr;bei Christine
2018-09-21;17.00 Uhr;text;„Jesus auf der Spur“
2018-09-23;10.00 Uhr;godi;
2018-09-28;17.00 Uhr;text;„Jesus auf der Spur“
2018-09-29; 9.00 Uhr;mägfit;
2018-09-30;10.00 Uhr;godi;Jürgen Vollmer
2018-10-02;15.00 Uhr;bibge;
2018-10-02;19.45 Uhr;text;Gemeindeleitungssitzung
2018-10-05;17.00 Uhr;text;„Jesus auf der Spur“
2018-10-07;10.00 Uhr;text_fett;Erntedank-Gottesdienst mit Martin Heißwolf
2018-10-07;;text;in den Räumen der Gemeinde Waiblingen in der Heerstraße 109
2018-10-09;15.00 Uhr;bibge;
2018-10-13; 9.30 Uhr;text;Gemeindefrühstück
2018-10-14;10.00 Uhr;godi;Viktor Petkau
2018-10-16;15.00 Uhr;bibge;
2018-10-17;16.00 Uhr;gu;
2018-10-17;20.00 Uhr;hauskr;bei Christine
2018-10-19;17.00 Uhr;text;„Jesus auf der Spur“
2018-10-21;10.00 Uhr;godi;Martin Heißwolf
2018-10-23;15.00 Uhr;bibge;
2018-10-26;17.00 Uhr;text;„Jesus auf der Spur“
2018-10-28;10.00 Uhr;godi;Thomas Oberdorf
2018-10-30;15.00 Uhr;bibge;
2018-11-04;10.00 Uhr;godi;Stefan Wawro
2018-11-09;17.00 Uhr;text;Jesus auf der Spur
2018-11-11;10.00 Uhr;godi;Viktor Petkau
2018-11-13;15.00 Uhr;bibge;
2018-11-13;19.45 Uhr;text;Gemeindeleitungssitzung
2018-11-14;20.00 Uhr;hauskr;
2018-11-16;17.00 Uhr;text;Jesus auf der Spur
2018-11-18;10.00 Uhr;godi;Andreas Mende
2018-11-23;17.00 Uhr;text;Jesus auf der Spur
2018-11-24; 9.00 Uhr;mägfit;
2018-11-25;10.00 Uhr;godi;Hartmut Meier
2018-11-27;15.00 Uhr;bibge;
2018-11-28;20.00 Uhr;hauskr;
2018-11-30;17.00 Uhr;text;Jesus auf der Spur
2018-12-02;16.00 Uhr;text_fett;Filmgottesdienst mit Viktor Petkau
2018-12-03;16.00 Uhr;gu;
2018-12-06;16.00 Uhr;text;Bibelgespräch in Backnang mit Kaffee & Kuchen
2018-12-07;17.00 Uhr;text;Jesus auf der Spur
2018-12-09;10.00 Uhr;godi;Viktor Petkau
2018-12-11;15.00 Uhr;bibge;
2018-12-11;19.45 Uhr;text;Gemeindeleitungssitzung
2018-12-12;20.00 Uhr;hauskr;
2018-12-14;17.00 Uhr;text;Jesus auf der Spur
2018-12-16;10.00 Uhr;godi;Martin Heißwolf
2018-12-17;16.00 Uhr;gu;
2018-12-18;15.00 Uhr;bibge;
2018-12-21;17.00 Uhr;text;„Jesus auf der Spur“
2018-12-23;10.00 Uhr;godi;Andreas Mende
2018-12-24;16.00 Uhr;text;Heilig-Abend-Gottesdienst mit Martin Heißwolf
2018-12-30;10.00 Uhr;godi;Manfred Draheim
2018-12-31;16.30 Uhr;text;Silvester-Gottesdienst mit Josias Richter</p>

31
user/pages/03.termine/termine4.md

@ -0,0 +1,31 @@
<p>2018-11-04;10.00 Uhr;godi;Stefan Wawro
2018-11-09;17.00 Uhr;text;Jesus auf der Spur
2018-11-11;10.00 Uhr;godi;Viktor Petkau
2018-11-13;15.00 Uhr;bibge;
2018-11-13;19.45 Uhr;text;Gemeindeleitungssitzung
2018-11-14;20.00 Uhr;hauskr;
2018-11-16;17.00 Uhr;text;Jesus auf der Spur
2018-11-18;10.00 Uhr;godi;Andreas Mende
2018-11-23;17.00 Uhr;text;Jesus auf der Spur
2018-11-24; 9.00 Uhr;mägfit;
2018-11-25;10.00 Uhr;godi;Hartmut Meier
2018-11-27;15.00 Uhr;bibge;
2018-11-28;20.00 Uhr;hauskr;
2018-11-30;17.00 Uhr;text;Jesus auf der Spur
2018-12-02;16.00 Uhr;text_fett;Filmgottesdienst mit Viktor Petkau
2018-12-03;16.00 Uhr;gu;
2018-12-06;16.00 Uhr;text;Bibelgespräch in Backnang mit Kaffee & Kuchen
2018-12-07;17.00 Uhr;text;Jesus auf der Spur
2018-12-07;19.00 Uhr;text;Gemeindeleitungssitzung
2018-12-09;10.00 Uhr;godi;Viktor Petkau
2018-12-11;15.00 Uhr;bibge;
2018-12-12;20.00 Uhr;hauskr;
2018-12-14;17.00 Uhr;text;Jesus auf der Spur
2018-12-16;10.00 Uhr;godi;Martin Heißwolf
2018-12-17;16.00 Uhr;gu;
2018-12-18;15.00 Uhr;bibge;
2018-12-21;17.00 Uhr;text;Jesus auf der Spur
2018-12-23;10.00 Uhr;godi;Andreas Mende
2018-12-24;16.00 Uhr;text;Heilig-Abend-Gottesdienst mit Martin Heißwolf
2018-12-30;10.00 Uhr;godi;Manfred Draheim
2018-12-31;16.30 Uhr;text;Silvester-Gottesdienst mit Josias Richter

13
user/pages/03.termine/termine_kirchenwn.py

@ -6,6 +6,8 @@ from templates import *
import sys
sys.path.append("/mnt/web103/c1/41/53451241/htdocs/grav/pythonlib")
import HTMLParser #for unescaping
#TODO check input via regexp?
#TODO use style tage instead on inline css
@ -42,6 +44,10 @@ logmessage=""
#print(workdir)
#remove <p> </p> tags surrounding parameter block of twig filter
param=sys.argv[1].replace('<p>','').replace('</p>','')
#unescape html (grav passes csv as html-escaped string)
param=HTMLParser.HTMLParser().unescape(param.decode('utf-8')).encode('utf-8')
#reader=[line.split(";") for line in param.split("\n")] #naive parsing, doesnt support quoted cells
reader = csv.reader(param.split('\n'), delimiter=';')
@ -84,7 +90,7 @@ for row in reader:
weekday=weekday_names[date.weekday()]
datestr=" %02i.%02i.%04i"%(date.day,date.month,date.year)
text=web_templates[category].format(param=row[3])
line=html_line_template.format(date=datestr,time=row[1],text=html_escape(text),weekday=weekday,padding=5,style="")
line=web_html_line_template.format(date=datestr,time=row[1],text=html_escape(text),weekday=weekday,padding=5,style="")
table_content+=line+"\n"
if outtype in ["web","gembr"] and date>yesterday:
if date!=lastdate:
@ -103,7 +109,7 @@ for row in reader:
else:
style+="font-size: 100%;"#font-size: 14pt;
time="&nbsp;".join(row[1].split(" "))#make space in "10.00 Uhr" non breaking
line=html_line_template.format(date=datestr,time=time,text=html_escape(text),weekday=weekday,style=style,padding=5)
line=web_html_line_template.format(date=datestr,time=time,text=html_escape(text),weekday=weekday,style=style,padding=5)
elif outtype is "gembr":
if category in ["godi","text_fett"]:
line=gembr_html_line_template_bold_ul.format(date=datestr,time=row[1],text=html_escape(text),weekday=weekday)
@ -111,9 +117,10 @@ for row in reader:
line=gembr_html_line_template.format(date=datestr,time=row[1],text=html_escape(text),weekday=weekday)
table_content+=line+"\n"
lastdate=date
except:
except Exception as e:
print "error at row:"
print row
print e
pass
logmessage+="generated sucessfully"
table_html=html_template.format(table_content=table_content)

4
user/pages/05.gruppen/01.jugendgruppe-bjheck/default.de.md

@ -1,11 +1,13 @@
---
title: 'Jugendgruppe BJHeck'
redirect: '/gruppen#bjheck'
routable: false
visible: false
external_links:
process: true
title: false
no_follow: true
target: _blank
mode: active
redirect: '/gruppen#bjheck'
---

8
user/pages/05.gruppen/sidebarpage.de.md

@ -8,14 +8,6 @@ external_links:
mode: active
---
<a id="bjheck"></a>
## Jugendgruppe BJHeck
Du sitzt Samstag Abends allein zuhause? Dir ist langweilig? Im Fernsehen kommt nur Schrott?
Komm doch einfach bei uns vorbei!
Wir sind BJHeck (Baptisten-Jugend-Hohenacker, "die aus der Ecke"), Jugendliche ab 16 Jahren, und wir treffen uns alle 2 wochen Samstags um 18:30 in der Kapelle.
Wir kochen, machen Lobpreis, haben Gemeinschaft, verbringen Zeit mit Gott, und haben alles in allem viel Spaß dabei.
Wir freuen uns auf DICH!
<a id="hauskreis"></a>
## Hauskreis
Im Hauskreis treffen wir uns vierzehntägig zum gemeinsamen Singen, Beten und Bibellesen und einem persönlichen Austausch in einer offenen Gesprächsatmosphäre. Da wir alle beruflich und familiär ziemlich eingespannt sind und wenig Zeit zu intensiver Vorbereitung von Themen haben, lesen wir einfach die Bücher der Bibel und tauschen uns darüber aus. Unser Ziel ist es, sich im hektischen Alltag etwas Zeit für Gott, Gottes Wort und die Pflege der Gemeinschaft zu nehmen.

2
user/pages/06.anfahrt/sidebarpage.de.md

@ -14,5 +14,5 @@ Gässle 29
## Karte
<iframe frameborder="0" height="350" marginheight="0" marginwidth="0" scrolling="no" src="https://www.openstreetmap.org/export/embed.html?bbox=9.30409,48.85791,9.32864,48.87228&amp;layer=mapnik&amp;marker=48.86455,9.31426" style="border: 1px solid black" width="90%"></iframe>
[Größere Karte anzeigen](https://www.openstreetmap.org/?lat=48.865095&amp;lon=9.316365000000001&amp;zoom=14&amp;layers=M&amp;mlat=48.86455&amp;mlon=9.31426&target=_blank)
[Größere Karte anzeigen](https://www.openstreetmap.org/?lat=48.865095&amp;lon=9.316365000000001&amp;zoom=14&amp;layers=M&amp;mlat=48.86455&amp;mlon=9.31426&target=_blank&rel=noopener)

8
user/pages/08.predigtaufnahmen/default.de.md

@ -28,8 +28,8 @@ function searchFunction() {
//var input, filter, table, tr, td, i;
input = document.getElementById("searchInput");
filter = input.value.toUpperCase();
table = document.getElementById("tstableid1");
tr = table.getElementsByTagName("tr");
table = document.getElementById("predigten");
tr = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
// Loop through all table rows, and hide those who don't match the search query
noresults=true;
for (i = 0; i < tr.length; i++) {
@ -67,4 +67,6 @@ function searchFunction() {
{# ## file:
{{ 'table.html'|filecontent }}
{{ pythonscript('/aufnahmen/gen_md.py','~/razor/grav/user/pages/08.predigtaufnahmen/') }} #}
{{url('jquery')}}
{#url('jquery')#}

6
user/pages/09.links/sidebarpage.de.md

@ -4,7 +4,7 @@ title: Links
## Links zu anderen Seiten
### Onken Partnerprogramm:
[![Onken Partnerprogramm](PP-Logo_2.png?cropResize=400)](http://www.portal-oncken.de/index.php?partnerprogramm=MjEzXzE0ODY5MV82MzQ%3D&target=_blank)
[![Onken Partnerprogramm](PP-Logo_2.png?cropResize=400)](http://www.portal-oncken.de/index.php?partnerprogramm=MjEzXzE0ODY5MV82MzQ%3D&target=_blank&rel=noopener)
### Baptistengemeinden:
#### <u>**Backnang**<br /></u>
@ -13,7 +13,7 @@ Evangelisch- Freikirchliche Gemeinde Backnang
Eugen- Bolz- Straße 24
71522 Backnang
* **Webseite:**
[www.baptisten-backnang.de](https://www.baptisten-backnang.de/?target=_blank)
[www.baptisten-backnang.de](https://www.baptisten-backnang.de/?target=_blank&rel=noopener)
#### **<u>Waiblingen</u>**
* **Anschrift:**
@ -21,5 +21,5 @@ Evangelisch-Freikirchlichen Gemeinde Waiblingen
Heerstraße 109
71332 Waiblingen
* **Webseite:**
[www.baptistengemeinde-waiblingen.de](http://www.baptistengemeinde-waiblingen.de/?target=_blank)
[www.baptistengemeinde-waiblingen.de](http://www.baptistengemeinde-waiblingen.de/?target=_blank&rel=noopener)

18
user/pages/podcast/podcast-channel.de.md

@ -0,0 +1,18 @@
---
title: podcast
feed:
rss: 'true'
items: '@self.descendants'
podcast:
title: Predigten
itunes:
category: Arts
subcategory: Christianity
explicit: 'no'
link: 'https://www.example.com'
channelLanguage: de
copyright: '2017 Example.com'
date: '2018-11-03 18:35'
---
test-liste

BIN
user/pages/podcast/testepisode/godi_2018-10-28_Thomas Oberndorf_predigt__Andere Fördern - Der schönste Teil der Jesus-Nachfolge.mp3

Binary file not shown.

12
user/pages/podcast/testepisode/podcast-episode.de.md

@ -0,0 +1,12 @@
---
title: testepisode
podcast:
audio:
remote: 'https://baptisten-hohenacker.de/aufnahmen/godi_2018-10-28_Thomas Oberndorf_predigt__Andere Fördern - Der schönste Teil der Jesus-Nachfolge.mp3'
itunes:
author: 'Thomas Oberndorf'
explicit: 'no'
date: '2018-10-28 10:00'
---
test123[godi_2018-10-28_Thomas Oberndorf_predigt__Andere Fördern - Der schönste Teil der Jesus-Nachfolge.mp3](godi_2018-10-28_Thomas%20Oberndorf_predigt__Andere%20F%C3%B6rdern%20-%20Der%20sch%C3%B6nste%20Teil%20der%20Jesus-Nachfolge.mp3)

1
user/plugins/losung/twig/losungphp2019.dat

File diff suppressed because one or more lines are too long

2
user/themes/church/css/css-only-lightbox.css

@ -25,7 +25,7 @@
.lightbox img {
/** Pad the lightbox image */
max-width: 90%;
max-height: 80%;
max-height: 90%;
margin-top: 2%;
}

2
user/themes/church/css/css-only-lightbox.min.css vendored

@ -1 +1 @@
.italic{font-style:italic}.small{font-size:.8em}.lightbox{display:none;position:fixed;z-index:999;width:100%;height:100%;text-align:center;top:0;left:0;background:rgba(0,0,0,0.8)}.lightbox img{max-width:90%;max-height:80%;margin-top:2%}.lightbox:target{outline:0;display:block}
.italic{font-style:italic}.small{font-size:.8em}.lightbox{display:none;position:fixed;z-index:999;width:100%;height:100%;text-align:center;top:0;left:0;background:rgba(0,0,0,0.8)}.lightbox img{max-width:90%;max-height:90%;margin-top:2%}.lightbox:target{outline:0;display:block}

42
user/themes/church/js/custom.js

@ -8,13 +8,45 @@ res=""
return res;
}
function isNative(fn) {
return (/\{\s*\[native code\]\s*\}/).test('' + fn);
}
function trackSupport(){
if (window.sessionStorage.supportTracked !== "V2")
{
console.log("tracking")
window.sessionStorage.supportTracked = "V2";
var payload = {};
payload.type = "browserSupportInfo"
payload.dnt = (window.doNotTrack == 1 || navigator.doNotTrack == 1);
payload.arrayFrom = typeof(Array.from) !== 'undefined' && isNative(Array.from);
payload.fetch = typeof(fetch) !== 'undefined';
payload.beacon = typeof(navigator.sendBeacon) !== 'undefined';
payload.storage = typeof(Storage) !== 'undefined';
var xhr = new XMLHttpRequest();
xhr.open("POST", "/aufnahmen/track.php");
xhr.send(JSON.stringify(payload));
console.log(payload)
}
}
function dokumentGeladen (e) {
trackSupport();
//alert("Das Ereignis " + e.type + " ist passiert.")
a=document.getElementsByClassName("mailto");
for (val of a) {
instr=atob(val.getAttribute("href_crypt"));
val.href=xor_crypt(instr);}
a=document.getElementsByClassName("mailto");
Array.from(a).forEach(function(elem){
var instr=atob(elem.getAttribute("href_crypt"));
elem.href=xor_crypt(instr);
})
/*for (val of a) {
instr=atob(val.getAttribute("href_crypt"));
val.href=xor_crypt(instr);
}*/
}
document.addEventListener("load", dokumentGeladen, false);
document.addEventListener("DOMContentLoaded", dokumentGeladen, false);

78
user/themes/church/js/polyfill_Array.from.js

@ -0,0 +1,78 @@
// Production steps of ECMA-262, Edition 6, 22.1.2.1
if (!Array.from) {
Array.from = (function () {
var toStr = Object.prototype.toString;
var isCallable = function (fn) {
return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
};
var toInteger = function (value) {
var number = Number(value);
if (isNaN(number)) { return 0; }
if (number === 0 || !isFinite(number)) { return number; }
return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
};
var maxSafeInteger = Math.pow(2, 53) - 1;
var toLength = function (value) {
var len = toInteger(value);
return Math.min(Math.max(len, 0), maxSafeInteger);
};
// The length property of the from method is 1.
return function from(arrayLike/*, mapFn, thisArg */) {
// 1. Let C be the this value.
var C = this;
// 2. Let items be ToObject(arrayLike).
var items = Object(arrayLike);
// 3. ReturnIfAbrupt(items).
if (arrayLike == null) {
throw new TypeError('Array.from requires an array-like object - not null or undefined');
}
// 4. If mapfn is undefined, then let mapping be false.
var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
var T;
if (typeof mapFn !== 'undefined') {
// 5. else
// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
if (!isCallable(mapFn)) {
throw new TypeError('Array.from: when provided, the second argument must be a function');
}
// 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
if (arguments.length > 2) {
T = arguments[2];
}
}
// 10. Let lenValue be Get(items, "length").
// 11. Let len be ToLength(lenValue).
var len = toLength(items.length);
// 13. If IsConstructor(C) is true, then
// 13. a. Let A be the result of calling the [[Construct]] internal method
// of C with an argument list containing the single item len.
// 14. a. Else, Let A be ArrayCreate(len).
var A = isCallable(C) ? Object(new C(len)) : new Array(len);
// 16. Let k be 0.
var k = 0;
// 17. Repeat, while k < len… (also steps a - h)
var kValue;
while (k < len) {
kValue = items[k];
if (mapFn) {
A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
} else {
A[k] = kValue;
}
k += 1;
}
// 18. Let putStatus be Put(A, "length", len, true).
A.length = len;
// 20. Return A.
return A;
};
}());
}

1
user/themes/church/js/polyfill_Array.from.min.js vendored

@ -0,0 +1 @@
Array.from||(Array.from=function(){var r=Object.prototype.toString,t=function(t){return"function"==typeof t||"[object Function]"===r.call(t)},n=Math.pow(2,53)-1,e=function(r){var t,e=(t=Number(r),isNaN(t)?0:0!==t&&isFinite(t)?(t>0?1:-1)*Math.floor(Math.abs(t)):t);return Math.min(Math.max(e,0),n)};return function(r){var n=Object(r);if(null==r)throw new TypeError("Array.from requires an array-like object - not null or undefined");var o,a=arguments.length>1?arguments[1]:void 0;if(void 0!==a){if(!t(a))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(o=arguments[2])}for(var i,u=e(n.length),f=t(this)?Object(new this(u)):new Array(u),c=0;c<u;)i=n[c],f[c]=a?void 0===o?a(i,c):a.call(o,i,c):i,c+=1;return f.length=u,f}}());

1
user/themes/church/templates/css

@ -0,0 +1 @@
../css

3
user/themes/church/templates/partials/base.html.twig

@ -61,6 +61,9 @@
{% do assets.add('https://oss.maxcdn.com/respond/1.4.2/respond.min.js') %}
{% do assets.add('theme://js/html5shiv-printshiv.min.js') %}
{% endif %}
{% if browser.getBrowser == 'msie'%}
{% do assets.add('theme://js/polyfill_Array.from.min.js') %}
{% endif %}
{% endblock %}
{{ assets.js() }}

Loading…
Cancel
Save