Vorlage:Veranstaltung: Unterschied zwischen den Versionen
Erscheinungsbild
imported>Andreas Plank K {{Veranstaltungskalender abonnieren}} PURL funktioniert für Google Kalender-Import |
imported>Andreas Plank K Teste tatsächliches Ende Datum mit Unix timestamp |
||
| (20 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 12: | 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 21: | Zeile 23: | ||
* [[Vorlage: Veranstaltungskalender anzeigen]] | * [[Vorlage: Veranstaltungskalender anzeigen]] | ||
* [[Vorlage: Veranstaltungskalender abonnieren]] | * [[Vorlage: Veranstaltungskalender abonnieren]] | ||
* [[Vorlage: Veranstaltungen durchsuchen]], [[Formular: Veranstaltungen durchsuchen]] (Abfragen ausführen) | |||
* [[Vorlage: Durchsuche Veranstaltungen]] (Link Suchformular) | |||
* [[Vorlage: ParseTextValue4ical]] | * [[Vorlage: ParseTextValue4ical]] | ||
* [[Vorlage: StripFormatting]] | * [[Vorlage: StripFormatting]] | ||
* Extension: Semantic Maps | * [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 === | === Export iCal Format === | ||
| Zeile 53: | Zeile 84: | ||
</noinclude><includeonly><!-- | </noinclude><includeonly><!-- | ||
############################# | |||
semantische Eigenschaften | semantische Eigenschaften | ||
-->[[ical:summary escaped::<!-- | ############################# | ||
-->{{ParseTextValue4ical|1={{StripFormatting|1={{PAGENAME}}}}}}<!-- -->| ]]<!-- | |||
-->{{#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:dtstart::{{{Datum und Zeit|}}}| ]]<!-- | ||
ical:dtend immer setzten für Google Kalender? | ical:dtend immer setzten für Google Kalender? | ||
-->[[ical:dtend::{{# | -->[[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 101: | Zeile 166: | ||
-->}}<!-- | -->}}<!-- | ||
-->[[Seitenname::{{#replace:{{PAGENAME}}|?|%3F}}| ]]<!-- zu tun DEBUG für Fehler im iCal-Export, wenn Seite '?' enthält | |||
############################# | |||
Ausgabe | Ausgabe | ||
############################# | |||
''Wann:'' <!-- | -->{{#if: {{{Art der Veranstaltung|}}}|{{{Art der Veranstaltung|}}} am |''Wann:'' }}<!-- | ||
Anfang Datum & Ende Datum | |||
-->{{#if: {{{Datum und Zeit|}}}<!-- | -->{{#if: {{{Datum und Zeit|}}}<!-- | ||
DANN -->|<!-- | |||
-->{{#time: l, j. F Y|{{{Datum und Zeit|}}}}}<!-- | |||
-->{{#if: {{{Datum und Zeit Ende|}}}<!-- | -->{{#if: {{{Datum und Zeit Ende|}}}<!-- | ||
DANN Datum Anfang == Datum Ende ? -->|<!-- | |||
-->{{#ifeq: {{#explode: {{{Datum und Zeit|}}}| |0}} | {{#explode: {{{Datum und Zeit Ende|}}}| |0}}<!-- | |||
dann | dann Datum Anfang == Datum Ende (nichts ausgeben) -->|<!-- | ||
sonst Datum Anfang != Datum Ende -->|<!-- | |||
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> | |||
}}<!-- | |||
}}{{#if: {{#explode: {{{Datum und Zeit|}}}| |1}} <!-- | |||
Anfang Uhrzeit & Ende Uhrzeit | |||
dann -->|, Beginn: <!-- | -->{{#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}} <!-- | -->{{#if: {{#explode: {{{Datum und Zeit Ende|}}}| |1}} <!-- | ||
dann -->|, Ende: <!-- | 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 159: | Zeile 240: | ||
|height=550 | |height=550 | ||
|type=roadmap | |type=roadmap | ||
|service=leaflet | |||
}} | }} | ||
}} | }} | ||
<div class="noprint"> | |||
---- | ---- | ||
{{Veranstaltungskalender abonnieren}} | {{Veranstaltungskalender abonnieren}} | ||
[[Veranstaltungen| | Den [[Veranstaltungen|Veranstaltungskalender]] können Sie auch mittels Suchformular nach {{Durchsuche Veranstaltungen}}. | ||
</includeonly> | </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)
}}