Vorlage:Veranstaltung: Unterschied zwischen den Versionen
Erscheinungsbild
imported>Andreas Plank K →Dokumentation: Verlinkung zu Attributen |
imported>Andreas Plank K Teste tatsächliches Ende Datum mit Unix timestamp |
||
| (38 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 | ||
| ?[[Attribut: ical:dtstart |ical:dtstart]] = start | |?[[Attribut: ical:dtstart |ical:dtstart]]=start | ||
| ?[[Attribut: ical:dtend |ical:dtend]] = end<!-- | |?[[Attribut: ical:dtend |ical:dtend]]=end<span style="color:gray;"><!-- | ||
| ?[[Attribut: ical:location |ical:location]] = location | ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --></span> | ||
| ?[[Attribut: ical:description |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::<!-- | ||
-->{{StripFormatting|1=<!-- | -->{{#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, 22:34 Uhr
Vorlage um eine Veranstaltung einzutragen. Zur Erstellung von Seiten kann folgendes Formular (Vorlage:Veranstaltung bearbeiten oder hinzufügen) verwendet werden:
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)
}}