Vorlage:Veranstaltung: Unterschied zwischen den Versionen
Aus Bayernflora
K (display_point, Versuche service=leaflet) |
K (Teste tatsächliches Ende Datum mit Unix timestamp) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 30: | Zeile 30: | ||
* [https://www.mediawiki.org/wiki/Extension:Semantic_Forms Extension:Semantic Forms] | * [https://www.mediawiki.org/wiki/Extension:Semantic_Forms Extension:Semantic Forms] | ||
* [https://www.mediawiki.org/wiki/Extension:Semantic_Maps Extension: Semantic Maps] | * [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> | ||
Zeile 63: | Zeile 87: | ||
semantische Eigenschaften | 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 | -->{{#if: {{{Art der Veranstaltung|}}}|[[Art der Veranstaltung::{{{Art der Veranstaltung|}}}| ]]}}<!-- if end | ||
Zeile 68: | Zeile 98: | ||
-->[[ical:summary escaped::<!-- | -->[[ical:summary escaped::<!-- | ||
-->{{ParseTextValue4ical|1={{StripFormatting|1={{#replace:{{PAGENAME}}|"|"}}}}}}<!-- -->| ]]<!-- | -->{{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 117: | Zeile 170: | ||
Ausgabe | Ausgabe | ||
############################# | ############################# | ||
− | + | -->{{#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 |
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) }}