Vorlage:Veranstaltung: Unterschied zwischen den Versionen
Aus Bayernflora
(Die Seite wurde neu angelegt: „<noinclude>This template holds information on an opinion item (a column, op-ed, blog post, etc.). It should be called in the following format: <pre> {{Item |au…“) |
K (Teste tatsächliches Ende Datum mit Unix timestamp) |
||
(64 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | <noinclude> | + | <noinclude> |
− | + | Vorlage um eine Veranstaltung einzutragen. Zur Erstellung von Seiten kann folgendes Formular ([[Vorlage:Veranstaltung bearbeiten oder hinzufügen]]) verwendet werden: | |
− | {{ | + | {{Veranstaltung bearbeiten oder hinzufügen}} |
− | + | == Parameter == | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | „'''''Pflichtparameter='''''“ und „'''optionaler Parameter='''“ für {{FULLPAGENAME}} sind: | |
− | + | <div class="definition-inline"> | |
− | + | ; ''Datum und Zeit='' : Datum und Zeit der Veranstaltung ([[Attribut: ical:dtstart]]) | |
− | + | ; Datum und Zeit Ende= : Ende Datum und Zeit der Veranstaltung ([[Attribut: ical:dtend]]) | |
− | + | ; '''Ort=''' : Wo, Adresse (freier Text, [[Attribut: ical:location]]) | |
− | + | ; Ortskoordinaten= : zeigt Karte. Englisches Dezimal-Format (N, E z.B.: „49.7048744, 7.3284214“, [[Attribut: ical:geo]]) | |
− | + | ; Ansprechpartner= : Ansprechpartner, Organisator, Leiter ([[Attribut: ical:contact]] Vorschlag mehrerer Werte: Semikolon-Trennung) | |
− | + | ; Referenten= : Referent, Vortragende ([[Attribut: Referent]] <!-- contributor ? --> Vorschlag mehrerer Werte: Semikolon-Trennung) | |
− | + | ; Details= : weitere Infos (freier Text, [[Attribut: ical:comment]]) | |
− | + | ; Art der Veranstaltung= : ein kategorialer Wert definiert auf [[Attribut: Art der Veranstaltung]] {{#ask: [[Wertedefinition von Attribut::Art der Veranstaltung]] |mainlabel=- |?Erlaubt Wert= |sort=Erlaubt Wert|format=list|sep=“, „|intro=(z.B.: „|outro=“)}} | |
− | + | </div> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | {{#ask:[[ | + | == Technisches == |
+ | === Abhängigkeiten === | ||
+ | * [[Vorlage: Veranstaltung/Vorgabe Freitext]] | ||
+ | * [[Formular: Veranstaltung]] | ||
+ | * [[Vorlage: Veranstaltung bearbeiten oder hinzufügen]] | ||
+ | * [[Vorlage: Veranstaltungskalender anzeigen]] | ||
+ | * [[Vorlage: Veranstaltungskalender abonnieren]] | ||
+ | * [[Vorlage: Veranstaltungen durchsuchen]], [[Formular: Veranstaltungen durchsuchen]] (Abfragen ausführen) | ||
+ | * [[Vorlage: Durchsuche Veranstaltungen]] (Link Suchformular) | ||
+ | * [[Vorlage: ParseTextValue4ical]] | ||
+ | * [[Vorlage: StripFormatting]] | ||
+ | * [https://www.mediawiki.org/wiki/Extension:Semantic_MediaWiki Extension:Semantic MediaWiki] | ||
+ | * [https://www.mediawiki.org/wiki/Extension:Semantic_Forms Extension:Semantic Forms] | ||
+ | * [https://www.mediawiki.org/wiki/Extension:Semantic_Maps Extension: Semantic Maps] | ||
+ | |||
+ | ==== Attribute ==== | ||
+ | |||
+ | * [[Attribut: ical:summary escaped]] | ||
+ | * [[Attribut: ical:dtstart]] (lokal eingegebene Zeit einschließlich Zeitverschiebung aber ''unkorrekte'' Weltzeit) | ||
+ | * [[Attribut: ical:dtend]] (lokal eingegebene Zeit einschließlich Zeitverschiebung aber ''unkorrekte'' Weltzeit) | ||
+ | * [[Attribut: ical:dtstart-utc]] (auf korrekte Weltzeit berechnet) | ||
+ | * [[Attribut: ical:dtend-utc]] (auf korrekte Weltzeit berechnet) | ||
+ | * [[Attribut: ical:location]] | ||
+ | * [[Attribut: ical:description]] | ||
+ | * [[Attribut: ical:location escaped]] (wahrscheinlich beim Export nicht mehr nötig) | ||
+ | * [[Attribut: ical:description escaped]] (wahrscheinlich beim Export nicht mehr nötig) | ||
+ | * [[Attribut: ical:contact]] | ||
+ | * [[Attribut: Referent]] | ||
+ | * [[Attribut: ical:comment]] | ||
+ | |||
+ | ==== CSS ==== | ||
+ | |||
+ | Für [[MediaWiki:Print.css]] | ||
+ | <syntaxhighlight lang="css"> | ||
+ | /* Vorlage:Veranstaltung */ | ||
+ | .leaflet-control { display:none; } | ||
+ | #map_leaflet_1 { width:100%!important; } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | === Export iCal Format === | ||
+ | |||
+ | Der Export funktioniert nicht richtig, da Zeilenumbrüche und Kommas + Semikolon nicht mit dem Escape Zeichen \ versehen sind (https://bugzilla.wikimedia.org/show_bug.cgi?id=60038). Umgänglich ist dies mit Attributen, die mit Escape-Varianten versehen sind: | ||
+ | * [[Attribut: ical:location escaped|ical:location escaped]] | ||
+ | * [[Attribut: ical:description escaped|ical:description escaped]] | ||
+ | * [[Attribut: ical:summary escaped |ical:summary escaped]] | ||
+ | |||
+ | Beabsichtigte SMW-Abfrage für [http://semantic-mediawiki.org/wiki/Help:ICalendar_format format=icalendar] ist möglicherweise importierbar falls alle Daten in ical-Datei korrekt sind (siehe [http://icalvalid.cloudapp.net/ iCalendar Validator]). Ein Fix bietet [[Vorlage: Veranstaltungskalender abonnieren]]: | ||
+ | {{Veranstaltungskalender abonnieren}} | ||
+ | |||
+ | Ask Abfrage | ||
+ | <nowiki>{{#ask: [[Kategorie: Veranstaltung]]</nowiki> | ||
+ | |?[[Attribut: ical:summary escaped |ical:summary escaped]]#=summary | ||
+ | |?[[Attribut: ical:dtstart |ical:dtstart]]=start | ||
+ | |?[[Attribut: ical:dtend |ical:dtend]]=end<span style="color:gray;"><!-- | ||
+ | ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --></span> | ||
+ | |?[[Attribut: ical:location escaped|ical:location escaped]]=location | ||
+ | |?[[Attribut: ical:description escaped|ical:description escaped]]=description<span style="color:gray;"><!-- KEIN ZEILENUMBRUCH IN DEN DATEN(!!!) | ||
+ | [[Attribut: ical:contact |Ansprechpartner (ical:contact)]] | ||
+ | + [[Attribut: Referent |Referent]] | ||
+ | + [[Attribut: ical:comment |Details (ical:comment)]] --></span> | ||
+ | |format=icalendar | ||
+ | |searchlabel=Kalender abonnieren (iCal-Format) | ||
+ | }} | ||
+ | |||
+ | [[Kategorie: Intern - Vorlage mit semantischen Eigenschaften]] | ||
+ | </noinclude><includeonly><!-- | ||
+ | |||
+ | ############################# | ||
+ | semantische Eigenschaften | ||
+ | ############################# | ||
+ | |||
+ | -->{{#default_form:Veranstaltung}}<!-- | ||
+ | Attribut veraltet in Nachfolge Extension:Page Forms | ||
+ | [[Has default form::Veranstaltung| ]] | ||
+ | -->{{#vardefine: unixDateTimeStart | {{#timel: U|{{{Datum und Zeit|}}}}}<!---->}}<!-- | ||
+ | -->{{#vardefine: unixDateTimeEnd | {{#if: {{{Datum und Zeit Ende|}}} | {{#timel: U|{{{Datum und Zeit Ende|}}}}} | 0}} <!---->}}<!-- | ||
+ | |||
+ | -->{{#if: {{{Art der Veranstaltung|}}}|[[Art der Veranstaltung::{{{Art der Veranstaltung|}}}| ]]}}<!-- if end | ||
+ | |||
+ | -->[[ical:summary escaped::<!-- | ||
+ | -->{{ParseTextValue4ical|1={{StripFormatting|1={{#replace:{{PAGENAME}}|"|"}}}}}}<!-- -->| ]]<!-- | ||
+ | |||
+ | -->[[ical:dtstart::{{{Datum und Zeit|}}}| ]]<!-- | ||
+ | ical:dtend immer setzten für Google Kalender? | ||
+ | -->[[ical:dtend::{{#ifexpr: {{#var: unixDateTimeEnd}} >= {{#var: unixDateTimeStart}}<!-- | ||
+ | dann -->|{{{Datum und Zeit Ende|}}}<!-- | ||
+ | sonst -->|{{{Datum und Zeit|}}}}}<!-- | ||
+ | -->| ]]<!-- | ||
+ | |||
+ | für UTC: Globale Zeit berechnen, Zeitverschiebung aus timel berechnen | ||
+ | -->[[ical:dtstart-utc::{{#timel:c|{{{Datum und Zeit|}}}<!-- | ||
+ | und Zeitverschiebung -->{{#sub:{{#timel: c|{{{Datum und Zeit|}}}}}|-6}}<!-- | ||
+ | -->}}<!-- | ||
+ | -->| ]]<!-- | ||
+ | ical:dtend immer setzten für Google Kalender? | ||
+ | -->[[ical:dtend-utc::{{#ifexpr: {{#var: unixDateTimeEnd}} >= {{#var: unixDateTimeStart}}<!-- | ||
+ | dann -->|<!-- | ||
+ | -->{{#timel:c|{{{Datum und Zeit Ende|}}}<!-- und Zeitverschiebung | ||
+ | -->{{#sub:{{#timel: c|{{{Datum und Zeit Ende|}}}}}|-6}}<!-- | ||
+ | -->}}<!-- timel | ||
+ | sonst -->|<!-- | ||
+ | -->{{#timel:c|{{{Datum und Zeit|}}}<!-- und Zeitverschiebung | ||
+ | -->{{#sub:{{#timel: c|{{{Datum und Zeit|}}}}}|-6}}<!-- | ||
+ | -->}}<!-- timel | ||
+ | -->}}<!-- | ||
+ | -->| ]]<!-- | ||
+ | |||
+ | -->{{#if: {{{Ansprechpartner|}}}<!-- dann -->|{{#arraymap: {{{Ansprechpartner|}}}<!-- values | ||
+ | -->|;<!-- split on ; | ||
+ | -->|§<!-- assign temporary variable | ||
+ | -->|[[ical:contact::§| ]]<!-- output | ||
+ | -->|<!-- new output separator | ||
+ | -->}}}}<!-- end arraymap | ||
+ | -->{{#if: {{{Referenten|}}}<!-- dann -->|{{#arraymap: {{{Referenten|}}}<!-- values | ||
+ | -->|;<!-- split on ; | ||
+ | -->|§<!-- assign temporary variable | ||
+ | -->|[[Referent::§| ]]<!-- output | ||
+ | -->|<!-- new output separator | ||
+ | -->}}<!-- end arraymap | ||
+ | -->}}<!-- end if | ||
+ | -->{{#if: {{{Details|}}}<!-- dann -->|[[ical:comment::{{{Details|}}}| ]]}}<!-- | ||
+ | -->{{#if: {{{Details|}}}{{{Ansprechpartner|}}}{{{Referenten|}}}<!-- dann | ||
+ | -->|<!-- | ||
+ | -->[[ical:description::<!-- | ||
+ | -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!-- | ||
+ | -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|.<br/>Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!-- | ||
+ | -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|.<br/>Details:|Details:}} {{{Details|}}}}}<!-- | ||
+ | -->| ]]<!-- | ||
+ | -->[[ical:description escaped::<!-- | ||
+ | -->{{ParseTextValue4ical|1=<!-- | ||
+ | -->{{StripFormatting|1=<!-- | ||
+ | -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!-- | ||
+ | -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|. | ||
+ | Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!-- | ||
+ | -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|. | ||
+ | Details:|Details:}} {{{Details|}}}}}<!-- | ||
+ | -->}}<!-- | ||
+ | -->}}<!-- ParseTextValue4ical | ||
+ | -->| ]]<!-- | ||
+ | -->}}<!-- end if | ||
+ | -->{{#if: {{{Ort|}}}<!-- | ||
+ | dann | ||
+ | -->|[[ical:location::{{{Ort|}}}| ]]<!-- | ||
+ | -->[[ical:location escaped::{{ParseTextValue4ical|1={{{Ort|}}}}}| ]]}}<!-- | ||
+ | -->{{#if:{{{Ortskoordinaten|}}}<!-- | ||
+ | dann -->|<!-- | ||
+ | -->[[ical:geo::{{#coordinates:{{{Ortskoordinaten|}}} }}| ]]<!-- | ||
+ | -->}}<!-- | ||
+ | |||
+ | -->[[Seitenname::{{#replace:{{PAGENAME}}|?|%3F}}| ]]<!-- zu tun DEBUG für Fehler im iCal-Export, wenn Seite '?' enthält | ||
+ | ############################# | ||
+ | Ausgabe | ||
+ | ############################# | ||
+ | -->{{#if: {{{Art der Veranstaltung|}}}|{{{Art der Veranstaltung|}}} am |''Wann:'' }}<!-- | ||
+ | |||
+ | Anfang Datum & Ende Datum | ||
+ | -->{{#if: {{{Datum und Zeit|}}}<!-- | ||
+ | DANN -->|<!-- | ||
+ | -->{{#time: l, j. F Y|{{{Datum und Zeit|}}}}}<!-- | ||
+ | -->{{#if: {{{Datum und Zeit Ende|}}}<!-- | ||
+ | DANN Datum Anfang == Datum Ende ? -->|<!-- | ||
+ | -->{{#ifeq: {{#explode: {{{Datum und Zeit|}}}| |0}} | {{#explode: {{{Datum und Zeit Ende|}}}| |0}}<!-- | ||
+ | dann Datum Anfang == Datum Ende (nichts ausgeben) -->|<!-- | ||
+ | sonst Datum Anfang != Datum Ende -->|<!-- | ||
+ | --> bis {{#time: l, j. F Y|{{{Datum und Zeit Ende|}}}}}<!-- | ||
+ | -->}}<!-- end ifeq | ||
+ | -->}}<!-- end if Datum und Zeit Ende | ||
+ | SONST-->|<!-- | ||
+ | --> <span style="color:orange">''Bitte fehlendes Datum nachtragen''</span> | ||
+ | }}<!-- | ||
+ | |||
+ | Anfang Uhrzeit & Ende Uhrzeit | ||
+ | -->{{#if: {{#explode: {{{Datum und Zeit|}}}| |1}} <!-- | ||
+ | dann -->|<!-- | ||
+ | -->, Beginn: <!-- | ||
+ | -->{{#sub: {{#explode: {{{Datum und Zeit|}}}| |1}}<!-- Uhrzeit extrahieren | ||
+ | -->|0<!-- | ||
+ | -->|{{#rpos: {{#explode: {{{Datum und Zeit|}}}| |1}}|:}}<!-- | ||
+ | -->}} Uhr<!-- | ||
+ | -->}}<!-- | ||
+ | |||
+ | -->{{#if: {{#explode: {{{Datum und Zeit Ende|}}}| |1}} <!-- | ||
+ | dann -->|, Ende: <!-- | ||
+ | -->{{#ifexpr: {{#var: unixDateTimeEnd}} <= {{#var: unixDateTimeStart}}<!-- | ||
+ | dann -->|<!-- | ||
+ | -->am selben Tag<!-- | ||
+ | Uhrzeit extrahieren | ||
+ | sonst-->|<!-- | ||
+ | -->{{#sub: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}<!-- | ||
+ | -->|0<!-- | ||
+ | -->|{{#rpos: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}|:}}<!-- | ||
+ | -->}}<!-- | ||
+ | --> Uhr<!-- | ||
+ | -->}}<!-- | ||
+ | -->}}<!-- | ||
+ | Datum und Uhrzeiten Ende | ||
+ | |||
+ | --><br/><!-- | ||
+ | -->{{#if: {{{Ansprechpartner|}}} | ''Ansprechpartner/Kontakt/Leitung:'' {{#arraymap: {{{Ansprechpartner|}}}<!-- values | ||
+ | -->|;<!-- split on ; | ||
+ | -->|§<!-- assign temporary variable | ||
+ | -->|§<!-- output | ||
+ | -->|,  <!-- new output separator | ||
+ | -->}}<br/>}}<!-- | ||
+ | -->{{#if: {{{Referenten|}}} | ''Referent(en):'' {{#arraymap: {{{Referenten|}}}<!-- values | ||
+ | -->|;<!-- split on ; | ||
+ | -->|§<!-- assign temporary variable | ||
+ | -->|§<!-- output | ||
+ | -->|,  <!-- new output separator | ||
+ | -->}}<br/>}}<!-- | ||
+ | -->{{#if: {{{Details|}}} | ''Weitere Infos/Details:'' {{{Details|}}}<br/>}}<!-- | ||
+ | -->''Ort:'' {{#if: {{{Ort|}}} | {{{Ort|}}} | Bitte fehlenden Ort nachtragen }}<br/> | ||
+ | {{#if:{{{Ortskoordinaten|}}}|<!-- | ||
+ | 55.7557860, -37.6176330 oder | ||
+ | 55.7557860° N, 37.6176330° W oder | ||
+ | 55° 45' 21" N, 37° 37' 3" W | ||
+ | --> | ||
+ | |||
+ | {{#display_point:{{#coordinates:{{{Ortskoordinaten|}}} }} | ||
+ | |zoom=17 | ||
+ | |width=550 | ||
+ | |height=550 | ||
+ | |type=roadmap | ||
+ | |service=leaflet | ||
+ | }} | ||
+ | }} | ||
+ | <div class="noprint"> | ||
+ | ---- | ||
+ | {{Veranstaltungskalender abonnieren}} | ||
− | + | Den [[Veranstaltungen|Veranstaltungskalender]] können Sie auch mittels Suchformular nach {{Durchsuche Veranstaltungen}}. | |
− | + | </div></includeonly> | |
− | </includeonly> | + |
Aktuelle Version vom 16. April 2019, 22:34 Uhr
Vorlage um eine Veranstaltung einzutragen. Zur Erstellung von Seiten kann folgendes Formular (Vorlage:Veranstaltung bearbeiten oder hinzufügen) verwendet werden:
Inhaltsverzeichnis
Parameter
„Pflichtparameter=“ und „optionaler Parameter=“ für Vorlage:Veranstaltung sind:
- Datum und Zeit=
- Datum und Zeit der Veranstaltung (Attribut: ical:dtstart)
- Datum und Zeit Ende=
- Ende Datum und Zeit der Veranstaltung (Attribut: ical:dtend)
- Ort=
- Wo, Adresse (freier Text, Attribut: ical:location)
- Ortskoordinaten=
- zeigt Karte. Englisches Dezimal-Format (N, E z.B.: „49.7048744, 7.3284214“, Attribut: ical:geo)
- Ansprechpartner=
- Ansprechpartner, Organisator, Leiter (Attribut: ical:contact Vorschlag mehrerer Werte: Semikolon-Trennung)
- Referenten=
- Referent, Vortragende (Attribut: Referent Vorschlag mehrerer Werte: Semikolon-Trennung)
- Details=
- weitere Infos (freier Text, Attribut: ical:comment)
- Art der Veranstaltung=
- ein kategorialer Wert definiert auf Attribut: Art der Veranstaltung
Technisches
Abhängigkeiten
- Vorlage: Veranstaltung/Vorgabe Freitext
- Formular: Veranstaltung
- Vorlage: Veranstaltung bearbeiten oder hinzufügen
- Vorlage: Veranstaltungskalender anzeigen
- Vorlage: Veranstaltungskalender abonnieren
- Vorlage: Veranstaltungen durchsuchen, Formular: Veranstaltungen durchsuchen (Abfragen ausführen)
- Vorlage: Durchsuche Veranstaltungen (Link Suchformular)
- Vorlage: ParseTextValue4ical
- Vorlage: StripFormatting
- Extension:Semantic MediaWiki
- Extension:Semantic Forms
- Extension: Semantic Maps
Attribute
- Attribut: ical:summary escaped
- Attribut: ical:dtstart (lokal eingegebene Zeit einschließlich Zeitverschiebung aber unkorrekte Weltzeit)
- Attribut: ical:dtend (lokal eingegebene Zeit einschließlich Zeitverschiebung aber unkorrekte Weltzeit)
- Attribut: ical:dtstart-utc (auf korrekte Weltzeit berechnet)
- Attribut: ical:dtend-utc (auf korrekte Weltzeit berechnet)
- Attribut: ical:location
- Attribut: ical:description
- Attribut: ical:location escaped (wahrscheinlich beim Export nicht mehr nötig)
- Attribut: ical:description escaped (wahrscheinlich beim Export nicht mehr nötig)
- Attribut: ical:contact
- Attribut: Referent
- Attribut: ical:comment
CSS
/* Vorlage:Veranstaltung */
.leaflet-control { display:none; }
#map_leaflet_1 { width:100%!important; }
Export iCal Format
Der Export funktioniert nicht richtig, da Zeilenumbrüche und Kommas + Semikolon nicht mit dem Escape Zeichen \ versehen sind (https://bugzilla.wikimedia.org/show_bug.cgi?id=60038). Umgänglich ist dies mit Attributen, die mit Escape-Varianten versehen sind:
Beabsichtigte SMW-Abfrage für format=icalendar ist möglicherweise importierbar falls alle Daten in ical-Datei korrekt sind (siehe iCalendar Validator). Ein Fix bietet Vorlage: Veranstaltungskalender abonnieren:
(Zeige …)(Verberge)
Wie man den Kalender Bayernflora abonnieren kann (z.B. per Link in Kalendersoftware) 

Ask Abfrage {{#ask: [[Kategorie: Veranstaltung]] |?ical:summary escaped#=summary |?ical:dtstart=start |?ical:dtend=end<!-- ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --> |?ical:location escaped=location |?ical:description escaped=description<!-- KEIN ZEILENUMBRUCH IN DEN DATEN(!!!) Ansprechpartner (ical:contact) + Referent + Details (ical:comment) --> |format=icalendar |searchlabel=Kalender abonnieren (iCal-Format) }}