Vorlage:Veranstaltung: Unterschied zwischen den Versionen

Aus Bayernflora
Wechseln zu: Navigation, Suche
K (ical:location escape , escape ;)
K (Teste tatsächliches Ende Datum mit Unix timestamp)
 
(31 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: ReplaceLineBreak2newline]]
+
* [[Vorlage: Veranstaltungen durchsuchen]], [[Formular: Veranstaltungen durchsuchen]] (Abfragen ausführen)
 +
* [[Vorlage: Durchsuche Veranstaltungen]] (Link Suchformular)
 +
* [[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]
  
=== Dokumentation ===
+
==== 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}}
  
Beabsichtigte SMW-Abfrage für [http://semantic-mediawiki.org/wiki/Help:ICalendar_format format=icalendar] ist nicht wirklich direkt importierbar. Daher [[Vorlage: Veranstaltungskalender abonnieren]] verwenden:
 
* {{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<span style="color:gray;">&lt;!--
 
  |?[[Attribut: ical:dtend |ical:dtend]]=end<span style="color:gray;">&lt;!--
 
     ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --></span>
 
     ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --></span>
  |?[[Attribut: ical:location |ical:location]]=location
+
  |?[[Attribut: ical:location escaped|ical:location escaped]]=location
  |?[[Attribut: ical:description |ical:description]]=description<span style="color:gray;">&lt;!-- KEIN ZEILENUMBRUCH IN DEN DATEN(!!!)  
+
  |?[[Attribut: ical:description escaped|ical:description escaped]]=description<span style="color:gray;">&lt;!-- KEIN ZEILENUMBRUCH IN DEN DATEN(!!!)  
 
     [[Attribut: ical:contact |Ansprechpartner (ical:contact)]]
 
     [[Attribut: ical:contact |Ansprechpartner (ical:contact)]]
 
   + [[Attribut: Referent |Referent]]
 
   + [[Attribut: Referent |Referent]]
Zeile 47: Zeile 84:
 
</noinclude><includeonly><!--  
 
</noinclude><includeonly><!--  
  
 +
#############################
 
   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
 +
 +
-->[[ical:summary escaped::<!--
 +
    -->{{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 68: Zeile 141:
 
   -->|<!--  
 
   -->|<!--  
 
   -->[[ical:description::<!--  
 
   -->[[ical:description::<!--  
    -->{{#replace: <!--  
+
        -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--  
      -->{{#replace: {{ReplaceLineBreak2newline|1=<!--  
+
        -->{{#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=<!--  
 
       -->{{StripFormatting|1=<!--  
 
         -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--  
 
         -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--  
         -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|. Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!--  
+
         -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|.
         -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|. Details:|Details:}} {{{Details|}}}}}<!--  
+
Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!--  
 +
         -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|.
 +
Details:|Details:}} {{{Details|}}}}}<!--  
 
       -->}}<!--  
 
       -->}}<!--  
      -->}}<!-- ReplaceLineBreak2newline
+
     -->}}<!-- ParseTextValue4ical
      -->|,|\,}}<!-- escape ,
+
     -->|;|\;}}<!-- escape ;
+
 
     -->| ]]<!--  
 
     -->| ]]<!--  
 
  -->}}<!-- end if
 
  -->}}<!-- end if
  -->{{#if: {{{Ort|}}}<!-- dann -->|[[ical:location::{{#replace: <!--  
+
  -->{{#if: {{{Ort|}}}<!--  
      -->{{#replace: {{{Ort|}}}|,|\,}}<!-- escape , -->|;|\;}}<!-- escape ;
+
    dann
    -->| ]]}}<!--  
+
  -->|[[ical:location::{{{Ort|}}}| ]]<!--  
 +
  -->[[ical:location escaped::{{ParseTextValue4ical|1={{{Ort|}}}}}| ]]}}<!--  
 
  -->{{#if:{{{Ortskoordinaten|}}}<!--  
 
  -->{{#if:{{{Ortskoordinaten|}}}<!--  
 
   dann -->|<!--  
 
   dann -->|<!--  
Zeile 88: 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&#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: <!--  
        Uhrzeit extrahieren  
+
  -->{{#ifexpr: {{#var: unixDateTimeEnd}} <= {{#var: unixDateTimeStart}}<!--
        -->{{#sub: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}<!--  
+
  dann -->|<!--
        -->|0<!--  
+
    -->am selben Tag<!--
        -->|{{#rpos: {{#explode: {{{Datum und Zeit Ende|}}}| |1}}|:}}<!--  
+
      Uhrzeit extrahieren  
        -->}} Uhr}}<!--  
+
  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 146: Zeile 240:
 
|height=550
 
|height=550
 
|type=roadmap
 
|type=roadmap
 +
|service=leaflet
 
}}
 
}}
 
}}
 
}}
 +
<div class="noprint">
 
----
 
----
[[Veranstaltungen|Zurück zu 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:

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)
}}