Zum Inhalt springen

Vorlage:Veranstaltung: Unterschied zwischen den Versionen

Aus Flora von Bayern
imported>Andreas Plank
K nutze Vorlage:ReplaceLineBreak2newline, Abhängigkeiten
imported>Andreas Plank
K Teste tatsächliches Ende Datum mit Unix timestamp
 
(34 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::<!--  
     -->{{ReplaceLineBreak2newline|1=<!--  
        -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--
    -->{{StripFormatting|1=<!--  
        -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|.<br/>Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!--
      -->{{#if: {{{Referenten|}}}|Referent(en): {{{Referenten|}}}}}<!--  
        -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|.<br/>Details:|Details:}} {{{Details|}}}}}<!--
      -->{{#if: {{{Ansprechpartner|}}}|{{#if: {{{Referenten|}}}|. Ansprechpartner/Kontakt:|Ansprechpartner/Kontakt:}} {{{Ansprechpartner|}}}}}<!--  
    -->| ]]<!--
      -->{{#if: {{{Details|}}}|{{#if: {{{Referenten|}}}{{{Ansprechpartner|}}}|. Details:|Details:}} {{{Details|}}}}}<!--  
-->[[ical:description escaped::<!--
    -->}}<!--  
     -->{{ParseTextValue4ical|1=<!--  
     -->}}<!-- ReplaceLineBreak2newline
      -->{{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 83: 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 141: 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, 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

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