Vorlage:Veranstaltung: Unterschied zwischen den Versionen

Aus Bayernflora
Wechseln zu: Navigation, Suche
K (Teste tatsächliches Ende Datum mit Unix timestamp)
 
(44 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]])
; Ansprechpartner= : Ansprechpartner, Organisator, Leiter ([[Attribut: ical:contact]])
+
; Ansprechpartner= : Ansprechpartner, Organisator, Leiter ([[Attribut: ical:contact]] Vorschlag mehrerer Werte: Semikolon-Trennung)
 
; 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]
  
=== 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
  | ?ical:dtstart = start
+
  |?[[Attribut: ical:dtstart |ical:dtstart]]=start
  | ?ical:dtstart = end&lt;!-- es gibt keine Werte für Veranstaltungsende / auch auf ical:dtend erweiterbar -->
+
  |?[[Attribut: ical:dtend |ical:dtend]]=end<span style="color:gray;">&lt;!--
  | ?ical:location = location
+
    ical:dtend == "" ? DANN ical:dtend=ical:dtstart SONST ical:dtend=ical:dtend --></span>
  | ?ical:description = description&lt;!-- [[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;">&lt;!-- KEIN ZEILENUMBRUCH IN DEN DATEN(!!!)
  | searchlabel=Kalender importieren
+
    [[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|}}}<!--
+
#############################
  dann -->|<!--  
+
 
  -->[[ical:dtstart::{{{Datum und Zeit|}}}| ]]<!--  
+
-->{{#default_form:Veranstaltung}}<!--
  -->}}<!--  
+
  Attribut veraltet in Nachfolge Extension:Page Forms
  -->{{#if: {{{Ansprechpartner|}}}<!-- dann -->|[[ical:contact::{{{Ansprechpartner|}}}| ]]}}<!--  
+
  [[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: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
 +
  -->|;<!-- split on ;
 +
  -->|§<!-- assign temporary variable
 +
  -->|[[ical:contact::§| ]]<!-- output
 +
  -->|<!-- new output separator
 +
  -->}}}}<!-- end arraymap
 
  -->{{#if: {{{Referenten|}}}<!-- dann -->|{{#arraymap: {{{Referenten|}}}<!-- values
 
  -->{{#if: {{{Referenten|}}}<!-- dann -->|{{#arraymap: {{{Referenten|}}}<!-- values
 
   -->|;<!-- split on ;
 
   -->|;<!-- split on ;
Zeile 57: Zeile 141:
 
   -->|<!--  
 
   -->|<!--  
 
   -->[[ical:description::<!--  
 
   -->[[ical:description::<!--  
    -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--  
+
        -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--  
    -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|. Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!--  
+
        -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|.<br/>Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!--
     -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|. Details:|Details:}} {{{Details|}}}}}<!--  
+
        -->{{#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 68: 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&#32;|''Wann:''&#32;}}<!--
dann  -->|{{#time: l, j. F Y|{{{Datum und Zeit|}}}}} <!--  
+
 
sonst -->| Bitte fehlendes Datum nachtragen  
+
  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 -->|<!--
 +
      -->&#32;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:'' {{{Ansprechpartner|}}}<br/>}}<!--  
+
  -->{{#if: {{{Ansprechpartner|}}} | ''Ansprechpartner/Kontakt/Leitung:'' {{#arraymap: {{{Ansprechpartner|}}}<!-- values
  -->{{#if: {{{Referenten|}}} | ''Referent(en):'' {{{Referenten|}}}<br/>}}<!--  
+
  -->|;<!-- split on ;
 +
  -->|§<!-- assign temporary variable
 +
  -->|§<!-- output
 +
  -->|, &#32;<!-- new output separator
 +
  -->}}<br/>}}<!--  
 +
  -->{{#if: {{{Referenten|}}} | ''Referent(en):'' {{#arraymap: {{{Referenten|}}}<!-- values
 +
  -->|;<!-- split on ;
 +
  -->|§<!-- assign temporary variable
 +
  -->|§<!-- output
 +
  -->|, &#32;<!-- new output separator
 +
  -->}}<br/>}}<!--  
 
  -->{{#if: {{{Details|}}} | ''Weitere Infos/Details:'' {{{Details|}}}<br/>}}<!--  
 
  -->{{#if: {{{Details|}}} | ''Weitere Infos/Details:'' {{{Details|}}}<br/>}}<!--  
 
  -->''Ort:'' {{#if: {{{Ort|}}} | {{{Ort|}}} | Bitte fehlenden Ort nachtragen }}<br/>
 
  -->''Ort:'' {{#if: {{{Ort|}}} | {{{Ort|}}} | Bitte fehlenden Ort nachtragen }}<br/>
Zeile 91: 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)
}}