Vorlage:Veranstaltung: Unterschied zwischen den Versionen

Aus Bayernflora
Wechseln zu: Navigation, Suche
K (Teste tatsächliches Ende Datum mit Unix timestamp)
 
(6 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}}|&#34;|"}}}}}}<!-- -->| ]]<!--
 
     -->{{ParseTextValue4ical|1={{StripFormatting|1={{#replace:{{PAGENAME}}|&#34;|"}}}}}}<!-- -->| ]]<!--
 +
 
  -->[[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::{{#if: {{{Datum und Zeit Ende|}}}<!-- dann -->|{{{Datum und Zeit Ende|}}}<!-- sonst -->|{{{Datum und Zeit|}}}}}| ]]<!--  
+
  -->[[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&#32;|''Wann:''&#32;}}<!--  
+
-->{{#if: {{{Art der Veranstaltung|}}}|{{{Art der Veranstaltung|}}} am&#32;|''Wann:''&#32;}}<!--  
 +
 
 +
  Anfang Datum & Ende Datum
 
-->{{#if: {{{Datum und Zeit|}}}<!--  
 
-->{{#if: {{{Datum und Zeit|}}}<!--  
     dann 
+
     DANN -->|<!--
-->|{{#time: l, j. F Y|{{{Datum und Zeit|}}}}}<!--  
+
  -->{{#time: l, j. F Y|{{{Datum und Zeit|}}}}}<!--  
 
   -->{{#if: {{{Datum und Zeit Ende|}}}<!--  
 
   -->{{#if: {{{Datum und Zeit Ende|}}}<!--  
       dann Datum Anfang == Datum Ende ?
+
       DANN Datum Anfang == Datum Ende ? -->|<!--
  -->|{{#ifeq: {{#explode: {{{Datum und Zeit|}}}| |0}} | {{#explode: {{{Datum und Zeit Ende|}}}| |0}}<!--  
+
      -->{{#ifeq: {{#explode: {{{Datum und Zeit|}}}| |0}} | {{#explode: {{{Datum und Zeit Ende|}}}| |0}}<!--  
         dann  
+
         dann Datum Anfang == Datum Ende (nichts ausgeben) -->|<!--
    -->|<!-- Datum Anfang == Datum Ende (nichts ausgeben)
+
         sonst Datum Anfang != Datum Ende -->|<!--
         sonst Datum Anfang != Datum Ende
+
      -->&#32;bis {{#time: l, j. F Y|{{{Datum und Zeit Ende|}}}}}<!--  
    -->|&#32;bis {{#time: l, j. F Y|{{{Datum und Zeit Ende|}}}}}<!--  
+
      -->}}<!-- end ifeq
  -->}}<!-- end ifeq
+
  -->}}<!-- end if Datum und Zeit Ende
-->}}<!-- end if Datum und Zeit Ende
+
  SONST-->|<!--
    sonst
+
  --> <span style="color:orange">''Bitte fehlendes Datum nachtragen''</span>
-->| Bitte fehlendes Datum nachtragen  
+
}}<!--
}}{{#if: {{#explode: {{{Datum und Zeit|}}}| |1}} <!--  
+
 
Uhrzeiten
+
  Anfang Uhrzeit & Ende Uhrzeit
dann  -->|, Beginn: <!--  
+
-->{{#if: {{#explode: {{{Datum und Zeit|}}}| |1}} <!--  
        Uhrzeit extrahieren
+
  dann  -->|<!--
        -->{{#sub: {{#explode: {{{Datum und Zeit|}}}| |1}}<!--  
+
        -->, Beginn: <!--      
        -->|0<!--  
+
  -->{{#sub: {{#explode: {{{Datum und Zeit|}}}| |1}}<!-- Uhrzeit extrahieren
        -->|{{#rpos: {{#explode: {{{Datum und Zeit|}}}| |1}}|:}}<!--  
+
    -->|0<!--  
        -->}} Uhr}}<!--  
+
    -->|{{#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: <!--  
        -->{{#ifeq: 00:00:00 | {{#explode: {{{Datum und Zeit Ende|}}}| |1}}<!--
+
  -->{{#ifexpr: {{#var: unixDateTimeEnd}} <= {{#var: unixDateTimeStart}}<!--
        dann -->|am selben Tag<!--
+
  dann -->|<!--
                Uhrzeit extrahieren  
+
    -->am selben Tag<!--
        sonst-->|{{#sub: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}<!--  
+
      Uhrzeit extrahieren  
              -->|0<!--  
+
  sonst-->|<!--
              -->|{{#rpos: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}|:}}<!--  
+
    -->{{#sub: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}<!--  
              -->}} Uhr<!--
+
      -->|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 177: Zeile 240:
 
|height=550
 
|height=550
 
|type=roadmap
 
|type=roadmap
 +
|service=leaflet
 
}}
 
}}
 
}}
 
}}

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:

x22px

 

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

Attribute

CSS

Für MediaWiki:Print.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) Farm-Fresh calendar link.png
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)
}}