Vorlage:Veranstaltung: Unterschied zwischen den Versionen
Aus Bayernflora
K (Layout Ansprechpartner/Kontakt/Leitung) |
K (Teste tatsächliches Ende Datum mit Unix timestamp) |
||
(39 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<noinclude> | <noinclude> | ||
− | Vorlage um eine Veranstaltung einzutragen. | + | 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 == | == Parameter == | ||
Zeile 6: | Zeile 7: | ||
<div class="definition-inline"> | <div class="definition-inline"> | ||
; ''Datum und Zeit='' : Datum und Zeit der Veranstaltung ([[Attribut: ical:dtstart]]) | ; ''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]]) | ; '''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]]) | ; Ortskoordinaten= : zeigt Karte. Englisches Dezimal-Format (N, E z.B.: „49.7048744, 7.3284214“, [[Attribut: ical:geo]]) | ||
Zeile 11: | Zeile 13: | ||
; Referenten= : Referent, Vortragende ([[Attribut: Referent]] <!-- contributor ? --> Vorschlag mehrerer Werte: Semikolon-Trennung) | ; Referenten= : Referent, Vortragende ([[Attribut: Referent]] <!-- contributor ? --> Vorschlag mehrerer Werte: Semikolon-Trennung) | ||
; Details= : weitere Infos (freier Text, [[Attribut: ical:comment]]) | ; 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> | </div> | ||
Zeile 20: | Zeile 23: | ||
* [[Vorlage: Veranstaltungskalender anzeigen]] | * [[Vorlage: Veranstaltungskalender anzeigen]] | ||
* [[Vorlage: Veranstaltungskalender abonnieren]] | * [[Vorlage: Veranstaltungskalender abonnieren]] | ||
− | * Extension: Semantic Maps | + | * [[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 | Ask Abfrage | ||
<nowiki>{{#ask: [[Kategorie: Veranstaltung]]</nowiki> | <nowiki>{{#ask: [[Kategorie: Veranstaltung]]</nowiki> | ||
− | | ?#= summary | + | |?[[Attribut: ical:summary escaped |ical:summary escaped]]#=summary |
− | | ?ical:dtstart = start | + | |?[[Attribut: ical:dtstart |ical:dtstart]]=start |
− | | ?ical: | + | |?[[Attribut: ical:dtend |ical:dtend]]=end<span style="color:gray;"><!-- |
− | | ?ical:location = location | + | ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --></span> |
− | | ?ical:description = description<!-- [[Attribut: ical:contact |Ansprechpartner (ical:contact)]] + [[Attribut: Referent |Referent]] + [[Attribut: ical:comment |Details (ical:comment)]] --> | + | |?[[Attribut: ical:location escaped|ical:location escaped]]=location |
− | | format=icalendar | + | |?[[Attribut: ical:description escaped|ical:description escaped]]=description<span style="color:gray;"><!-- KEIN ZEILENUMBRUCH IN DEN DATEN(!!!) |
− | | searchlabel=Kalender | + | [[Attribut: ical:contact |Ansprechpartner (ical:contact)]] |
+ | + [[Attribut: Referent |Referent]] | ||
+ | + [[Attribut: ical:comment |Details (ical:comment)]] --></span> | ||
+ | |format=icalendar | ||
+ | |searchlabel=Kalender abonnieren (iCal-Format) | ||
}} | }} | ||
Zeile 40: | Zeile 84: | ||
</noinclude><includeonly><!-- | </noinclude><includeonly><!-- | ||
+ | ############################# | ||
semantische Eigenschaften | semantische Eigenschaften | ||
− | -->{{#if: {{{Datum und Zeit|}}}<!-- | + | ############################# |
− | + | ||
− | + | -->{{#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 | -->{{#if: {{{Ansprechpartner|}}}<!-- dann -->|{{#arraymap: {{{Ansprechpartner|}}}<!-- values | ||
-->|;<!-- split on ; | -->|;<!-- split on ; | ||
Zeile 62: | Zeile 141: | ||
-->|<!-- | -->|<!-- | ||
-->[[ical:description::<!-- | -->[[ical:description::<!-- | ||
− | -->{{ | + | -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!-- |
− | -->{{#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 | -->}}<!-- end if | ||
− | -->{{#if: {{{Ort|}}}<!-- dann -->|[[ical:location::{{{Ort|}}}| ]]}}<!-- | + | -->{{#if: {{{Ort|}}}<!-- |
+ | dann | ||
+ | -->|[[ical:location::{{{Ort|}}}| ]]<!-- | ||
+ | -->[[ical:location escaped::{{ParseTextValue4ical|1={{{Ort|}}}}}| ]]}}<!-- | ||
-->{{#if:{{{Ortskoordinaten|}}}<!-- | -->{{#if:{{{Ortskoordinaten|}}}<!-- | ||
dann -->|<!-- | dann -->|<!-- | ||
Zeile 75: | Zeile 166: | ||
-->}}<!-- | -->}}<!-- | ||
+ | -->[[Seitenname::{{#replace:{{PAGENAME}}|?|%3F}}| ]]<!-- zu tun DEBUG für Fehler im iCal-Export, wenn Seite '?' enthält | ||
+ | ############################# | ||
Ausgabe | Ausgabe | ||
− | + | ############################# | |
− | ''Wann:'' {{#if: {{{Datum und Zeit|}}}<!-- | + | -->{{#if: {{{Art der Veranstaltung|}}}|{{{Art der Veranstaltung|}}} am |''Wann:'' }}<!-- |
− | dann -->|{{#time: l, j. F Y|{{{Datum und Zeit|}}}}} <!-- | + | |
− | + | Anfang Datum & Ende Datum | |
− | }}{{#if: {{#explode: {{{Datum und Zeit|}}}| |1}} <!-- | + | -->{{#if: {{{Datum und Zeit|}}}<!-- |
− | dann -->|, Beginn: <!-- Uhrzeit extrahieren -->{{#sub: {{#explode: {{{Datum und Zeit|}}}| |1}}|0|{{#rpos: {{#explode: {{{Datum und Zeit|}}}| |1}}|:}}}} Uhr}}<!-- | + | 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/><!-- | --><br/><!-- | ||
-->{{#if: {{{Ansprechpartner|}}} | ''Ansprechpartner/Kontakt/Leitung:'' {{#arraymap: {{{Ansprechpartner|}}}<!-- values | -->{{#if: {{{Ansprechpartner|}}} | ''Ansprechpartner/Kontakt/Leitung:'' {{#arraymap: {{{Ansprechpartner|}}}<!-- values | ||
Zeile 108: | Zeile 240: | ||
|height=550 | |height=550 | ||
|type=roadmap | |type=roadmap | ||
+ | |service=leaflet | ||
}} | }} | ||
}} | }} | ||
+ | <div class="noprint"> | ||
---- | ---- | ||
− | [[Veranstaltungen| | + | {{Veranstaltungskalender abonnieren}} |
− | </includeonly> | + | |
+ | Den [[Veranstaltungen|Veranstaltungskalender]] können Sie auch mittels Suchformular nach {{Durchsuche Veranstaltungen}}. | ||
+ | </div></includeonly> |
Aktuelle Version vom 16. April 2019, 21: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) }}