Vorlage:Event item: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(Fix icon with prefixed File:)
 
(25 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 32: Zeile 32:
 
* [[mediawikiwiki:extension:Page Forms|extension:Page Forms]]
 
* [[mediawikiwiki:extension:Page Forms|extension:Page Forms]]
 
* [[mediawikiwiki:extension:Variables|extension:Variables]]
 
* [[mediawikiwiki:extension:Variables|extension:Variables]]
 +
* [[mediawikiwiki:extension:Arrays|extension:Arrays]]
  
 
Attribute
 
Attribute
Zeile 52: Zeile 53:
 
Vorlagen/Formulare:
 
Vorlagen/Formulare:
 
* [[{{ns:template}}: Event item/color by type]]
 
* [[{{ns:template}}: Event item/color by type]]
 +
* [[{{ns:template}}: Logo]]
 
* [[{{ns:template}}: Stichwörter]]
 
* [[{{ns:template}}: Stichwörter]]
 +
* [[{{ns:template}}: BrowseByAskQueryPreviousNext]]
 
* [[{{ns:form}}: Event item]]
 
* [[{{ns:form}}: Event item]]
  
 +
Dateien:
 +
* [[:File: Edit pencil (Griffin-Mono-v3.5, apps, text-editor, fg-76B82A).svg]] [[File: Edit pencil (Griffin-Mono-v3.5, apps, text-editor, fg-76B82A).svg|x16px]]
 
Layout:
 
Layout:
 
* CSS-Klassen booktable, vertical-align-top
 
* CSS-Klassen booktable, vertical-align-top
Zeile 69: Zeile 74:
 
   |#default=day
 
   |#default=day
 
   }}
 
   }}
 +
}}<!--
 +
 +
get a handy display of the next recurring event
 +
check recurring events if the actual next date is comming or has passed already
 +
-->{{#vardefine: askRecurringCommingEventStart_DateTimeUnixSeconds|{{#switch: {{LC:{{{recurring type|}}}}}
 +
  |1|recurring|wiederkehrend={{#time: U|{{#ask: [[Has group::wiederkehrendes Ereignis@de]] [[Has event::{{{title}}}]] [[Has date::≥{{#time:d.m.Y H:i}}]]
 +
    |sort=Has date |?Has date#ISO=
 +
    |mainlabel=- |intro= |default=|searchlabel= |limit=1
 +
    }}}}
 +
  }}
 +
}}<!--
 +
-->{{#vardefine: askRecurringNextEventStart_DateTimeUnixSeconds|{{#switch: {{LC:{{{recurring type|}}}}}
 +
  |1|recurring|wiederkehrend={{#time: U|<!--
 +
    -->{{#ask: [[Has group::wiederkehrendes Ereignis@de]] [[Has event::{{{title}}}]] [[Has date::≥{{#time:d.m.Y H:i}}]]<!--
 +
        |?Has date#-F[U]= liefert 2 Stunden verschoben, daher Trick ISO -> Unix
 +
    -->|sort=Has date |?Has date#ISO=
 +
      |mainlabel=- |intro= |default=|searchlabel= |limit=1
 +
      }}<!--
 +
-->}}
 +
  }}
 +
}}<!--
 +
    work around week input: “1,3” if present
 +
-->{{#if: {{#pos: {{{recurring week number|}}}|,}}| {{#arraydefine: week-number-array|{{{recurring week number|}}}|,}} }}<!--
 +
 +
-->{{#vardefine: timeDiffEventEndMinusEventStart_UnixSeconds|{{#if: {{{end|}}}<!--
 +
then-->| {{#expr:  {{#time: xNU | {{{end|}}} }} - {{#time: xNU | {{{start|}}} }} + 0 }}<!--
 +
else-->| 0<!--
 +
  -->}}<!--
 +
-->}}<!--
 +
{{#time: xNU |2018/06/06 22:30}} - {{#time: xNU |2018/06/06 20:30}}
 +
using unix time seconds
 +
 +
-->{{#switch: {{NAMENSRAUM}}<!--
 +
-->|Calendar|Kalender=<!-- nichts im Haupt Namensraum --><indicator name="calendar-data-page" style="cursor:help;">{{Logo|Kalender|35px|Kurzinfo=Kalendereintrag und -datenseite für „{{SEITENNAME}}“}}</indicator>
 +
<div class="noprint floatright" style="text-align:center;">{{BrowseByAskQueryPreviousNext | [[Kalender:+]]}}<br>↗&nbsp;[[Open Source Ecology Germany/Kalender|Kalender]]</div>
 
}}
 
}}
<div class="noprint" style="float:right;text-align:center;">[[File:Calendar (OSEG bg 76b82a, Griffin-Mono-v3.5, apps google-calendar).svg|x50px|Link zum OSEG-Kalender|link=Open Source Ecology Germany/Kalender]]<br>↗&nbsp;[[Open Source Ecology Germany/Kalender|Kalender]]</div>
 
 
<table class="booktable vertical-align-top">
 
<table class="booktable vertical-align-top">
 
<tr><th colspan="2"><!--  
 
<tr><th colspan="2"><!--  
-->{{#if:{{{icon|}}}|[[File:{{#explode:{{{icon|}}}|:|-1}}|x20px|left|{{{title|}}}]]}}<!--  
+
-->{{#if:{{{icon|}}}|[[File:{{#explode:{{{icon|}}}|:|-1}}|x20px|left|{{{title|}}}|link=]]}}<!--  
 
-->{{{title|}}}<!--  
 
-->{{{title|}}}<!--  
 
-->{{#if:{{{type|}}}|<nowiki></nowiki> ({{{type|}}})}}<!--  
 
-->{{#if:{{{type|}}}|<nowiki></nowiki> ({{{type|}}})}}<!--  
 
--> <span class="noprint">{{#formlink:
 
--> <span class="noprint">{{#formlink:
 
     form=Event item<!--
 
     form=Event item<!--
     -->|link text=[[File:Edit-pencil (OSEG-green, Papirus desktop theme, accessories-text-editor).svg|x16px|link=]]<!--
+
     -->|link text=[[File:Edit pencil (Griffin-Mono-v3.5, apps, text-editor, fg-76B82A).svg|x16px|link=]]<!--
 
     -->|target={{FULLPAGENAME}}<!--
 
     -->|target={{FULLPAGENAME}}<!--
 
     -->|tooltip=Diesen Kalendereintrag bearbeiten<!--
 
     -->|tooltip=Diesen Kalendereintrag bearbeiten<!--
Zeile 84: Zeile 123:
 
<tr>
 
<tr>
 
<td><i>Wann?</i></td>
 
<td><i>Wann?</i></td>
<td><!--
+
<td>{{#switch: {{LC:{{{recurring type|}}}}}
  no line break here
+
|1|recurring|wiederkehrend=<div>''Hinweis:'' der Termin wiederholt sich {{#switch: {{#var: recurringUnitStandardized}}
-->{{#if: {{#pos:{{{start|}}}|:}}<!--
 
  has time
 
-->|{{#time: l d. F Y H:i |{{{start|}}}}}&#8239;Uhr<!--
 
  has no time, just date
 
-->|{{#time: l d. F Y |{{{start|}}}}}
 
}}{{#if: {{{end|}}}<!--
 
start & end
 
-->| &nbsp;''bis:''&nbsp; {{
 
    #ifeq: <!-- at the same day?
 
  -->{{#explode:{{{start|}}}| }} | {{#explode:{{{end|}}}| }}<!--
 
  then
 
  -->|{{#if: {{#pos:{{{end|}}}|:}}<!--
 
    then has time
 
    -->|{{#time: H:i |{{{end|}}}}}&#8239;Uhr<!--
 
    else has no time, just date
 
    -->| Ende am selben Tag
 
    }}<!--
 
  else not at the same day
 
  -->|{{
 
    #if: {{#pos:{{{end|}}}|:}}<!--
 
    then has time
 
    -->|{{#time: l d. F Y H:i |{{{end|}}}}}&#8239;Uhr<!--
 
    else has no time, just date
 
    -->|{{#time: l d. F Y |{{{end|}}}}}
 
    }}
 
  }}
 
}}{{#switch: {{LC:{{{recurring type|}}}}}
 
|1|recurring|wiederkehrend=<br />''Hinweis:'' der Termin wiederholt sich {{#switch: {{#var: recurringUnitStandardized}}
 
 
   |day={{PLURAL:{{{recurring period|1}}}|jeden Tag|alle {{{recurring period|1}}} Tage}}
 
   |day={{PLURAL:{{{recurring period|1}}}|jeden Tag|alle {{{recurring period|1}}} Tage}}
 
   |week={{PLURAL:{{{recurring period|1}}}|jede Woche|alle {{{recurring period|1}}} Wochen}}
 
   |week={{PLURAL:{{{recurring period|1}}}|jede Woche|alle {{{recurring period|1}}} Wochen}}
 
   |month={{
 
   |month={{
   #ifexpr: {{{recurring week number|}}} + 0 > 0<!--  
+
   #ifexpr: <!-- check weeknumbers, work around week input: “1,3” if present
 +
  -->{{#if: {{#pos: {{{recurring week number|}}}|,}}<!--
 +
      then
 +
      -->|{{#arrayprint: week-number-array ||@ | abs @ +}}<!-- cumulate week numbers
 +
      else
 +
      -->|{{{recurring week number|}}} }}
 +
    + 0 > 0<!--  
 
   then positive week number within week
 
   then positive week number within week
     -->|an jedem {{{recurring week number|}}}. {{#time: l|{{{start|}}}}} im Monat<!--  
+
     -->|an jedem <!-- 1. oder 1. und 3. etc.
 +
      -->{{#if: {{#pos: {{{recurring week number|}}}|,}}<!--
 +
      then
 +
      -->|{{
 +
            #arrayprint: week-number-array
 +
            |
 +
            |@
 +
            |{{#switch: @|-1=letzten|-2=vor–letzten|-3=vor-vor–letzten|#default=@.}}
 +
            |print=pretty
 +
            }}<!--
 +
-->|{{{recurring week number|}}}.
 +
      }} <!--
 +
        Wochentag
 +
      -->{{#time: l|{{{start|}}}}} im Monat<!--  
 
   else 0==0 or < 0
 
   else 0==0 or < 0
 
     -->|{{
 
     -->|{{
     #ifexpr: {{{recurring week number|}}} + 0 < 0<!--  
+
     #ifexpr: {{{recurring week number|}}} + 0 < 0<!-- TODO  week input: “1,-1”
 
     then negative week number within week
 
     then negative week number within week
 
       -->|an jedem {{#switch:{{{recurring week number|}}}|-1=letzten|#default={{{recurring week number|}}}.–letzten}} {{#time: l|{{{start|}}}}} im Monat<!--  
 
       -->|an jedem {{#switch:{{{recurring week number|}}}|-1=letzten|#default={{{recurring week number|}}}.–letzten}} {{#time: l|{{{start|}}}}} im Monat<!--  
Zeile 128: Zeile 158:
 
       -->|{{PLURAL:{{{recurring period|1}}}|jeden Monat|alle {{{recurring period|1}}} Monate}}
 
       -->|{{PLURAL:{{{recurring period|1}}}|jeden Monat|alle {{{recurring period|1}}} Monate}}
 
     }}
 
     }}
   }}
+
   }}<!-- if: recurring week number -->
 
   |year={{PLURAL:{{{recurring period|1}}}|jedes Jahr|alle {{{recurring period|1}}} Jahre}}
 
   |year={{PLURAL:{{{recurring period|1}}}|jedes Jahr|alle {{{recurring period|1}}} Jahre}}
 
   |#default=
 
   |#default=
   }}
+
   }}</div>
}}
+
}}<!--#switch wiederkehrend --><!--
 +
 
 +
  add date and time (if given)
 +
  no line break here
 +
-->{{#if: {{#pos:{{{start|}}}|:}}<!--
 +
THEN: has a time string
 +
  -->|<!--
 +
    -->{{#switch: {{LC:{{{recurring type|}}}}}
 +
        |1|recurring|wiederkehrend={{#if: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
          | ''Nächster:''&nbsp;<!-- {{{start}}} date(time) has past already, is a recurring date(time) future event -->
 +
          |
 +
          }}
 +
        |#default={{{start|}}}<!--
 +
    -->}}<!-- #switch
 +
  -->{{#time: l d. F Y H:i |<!--
 +
    -->{{#switch: {{LC:{{{recurring type|}}}}}
 +
        |1|recurring|wiederkehrend={{#if: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
          | @{{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
          | @{{#var: askRecurringNextEventStart_DateTimeUnixSeconds}}
 +
          }}
 +
        |#default={{{start|}}}<!--
 +
    -->}}<!-- #switch
 +
  -->}}&#8239;Uhr<!-- #time
 +
 
 +
ELSE: has no time, just date
 +
  -->|<!--
 +
  -->{{#time: l d. F Y |<!--
 +
    -->{{#switch: {{LC:{{{recurring type|}}}}}
 +
        |1|recurring|wiederkehrend={{#if: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
          | @{{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
          | @{{#var: askRecurringNextEventStart_DateTimeUnixSeconds}}
 +
          }}
 +
        |#default={{{start|}}}<!--
 +
    -->}}
 +
    }}<!--  #time
 +
-->}}<!--  no line break here
 +
 
 +
  END time
 +
-->{{#if: {{{end|}}}<!--
 +
    start & end
 +
THEN
 +
-->| &nbsp;''bis:''&nbsp; {{
 +
    #ifeq: <!-- at the same day?
 +
  -->{{#explode:{{#time: Y/m/d H:i |{{{start|}}}}}| }} | {{#explode:{{#time: Y/m/d H:i |{{{end|}}}}}| }}<!--
 +
  Then
 +
  -->|{{#if: {{#pos:{{{end|}}}|:}}<!--
 +
    then has date
 +
    -->|{{#time: H:i |{{{end|}}}}}&#8239;Uhr<!--
 +
    else has no time, just date
 +
    -->| Ende am selben Tag
 +
    }}<!--
 +
  Else end at a different day
 +
  -->|{{
 +
      #if: {{#pos:{{{end|}}}|:}}<!--
 +
      then: has a time string
 +
      -->|{{#time: l d. F Y H:i |<!--
 +
        -->{{#switch: {{LC:{{{recurring type|}}}}}
 +
            |1|recurring|wiederkehrend={{#if: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
              |{{#expr: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}} + {{#var: timeDiffEventEndMinusEventStart_UnixSeconds}} + 0 }}
 +
              |{{#expr: {{#var: askRecurringNextEventStart_DateTimeUnixSeconds}} + {{#var: timeDiffEventEndMinusEventStart_UnixSeconds}} + 0 }}
 +
            }}
 +
            |#default={{{end|}}}<!--
 +
        -->}}<!--
 +
      -->}}<!-- #time
 +
    -->&#8239;Uhr<!--
 +
      else has no time string, just date
 +
      -->|{{#time: l d. F Y |<!--
 +
        -->{{#switch: {{LC:{{{recurring type|}}}}}
 +
            |1|recurring|wiederkehrend={{#if: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}}
 +
              |{{#expr: {{#var: askRecurringCommingEventStart_DateTimeUnixSeconds}} + {{#var: timeDiffEventEndMinusEventStart_UnixSeconds}} + 0 }}
 +
              |{{#expr: {{#var: askRecurringNextEventStart_DateTimeUnixSeconds}} + {{#var: timeDiffEventEndMinusEventStart_UnixSeconds}} + 0 }}
 +
            }}
 +
            |#default={{{end|}}}<!--
 +
        -->}}<!--
 +
      -->}}<!-- #time
 +
    -->}}<!-- if: date or datetime
 +
  -->}}<!-- ifeq: same day end
 +
-->}}<!-- if: {{{end}}} -->
 
</td>
 
</td>
 
</tr>
 
</tr>
Zeile 177: Zeile 284:
 
   |<!-- {{#switch: {{{type|}}}
 
   |<!-- {{#switch: {{{type|}}}
 
   |Besprechung =File:Event-meeting-icon.png
 
   |Besprechung =File:Event-meeting-icon.png
   |Presentation=File:Event-presentation-icon.png
+
   |Präsentation=File:Event-presentation-icon.png
 
   |Talk=File:Event-talk-icon.png }} -->
 
   |Talk=File:Event-talk-icon.png }} -->
 
   }}
 
   }}
Zeile 189: Zeile 296:
 
    
 
    
 
-->{{#switch: {{LC:{{{recurring type|}}}}}
 
-->{{#switch: {{LC:{{{recurring type|}}}}}
|1|recurring|wiederkehrend={{#set_recurring_event:Wiederkehrend: {{{title|}}}
+
|1|recurring|wiederkehrend={{#if: {{#pos: {{{recurring week number}}}|,}}<!--
   |property=Has date
+
THEN-->|{{#arraymap: {{{recurring week number}}}<!--
 +
  -->|,<!-- sep ,
 +
  -->|ω<!-- assign ω as temporary var
 +
  -->|{{#set_recurring_event: Wiederkehrend: {{#replace:{{{title|}}}|+|+}}<!-- Kommentar: + zu full width plus ersetzen &#65291;
 +
    -->|property=Has date
 +
      |Has event={{{title|}}}
 +
      |Has group=wiederkehrendes Ereignis@de
 +
      |Has event type={{{type|}}}
 +
      |Has event start={{{start|}}}
 +
      |Has event end={{{end|}}}
 +
      |Has event location={{{location|}}}
 +
      |Has event icon={{#if: {{{icon|}}}
 +
        |File:{{#explode:{{{icon|}}}|:|-1}}
 +
        |<!-- {{#switch: {{{type|}}}
 +
        |Besprechung =File:Event-meeting-icon.png
 +
        |Präsentation=File:Event-presentation-icon.png
 +
        |Talk=File:Event-talk-icon.png }} -->
 +
        }}
 +
      |Has event color={{Event item/color by type|{{{type|}}}}}
 +
      |Has event description={{{description|}}}
 +
      |Has event geocoordinates={{{coordinates|}}}
 +
      |Has monolingual keyword list={{#if: {{{keywords|}}}|{{{keywords|}}}@de}}
 +
      |Has keyword list={{{keywords|}}}
 +
      |start={{{recurring start|}}}
 +
      |end={{{recurring end|}}}
 +
      |unit={{#var: recurringUnitStandardized}}
 +
      |period={{{recurring period|1}}}
 +
      |week number=ω<!-- single week number -->
 +
      |limit={{{recurring limit|}}}<!-- end: supersedes this limit -->
 +
      |include={{{recurring include datetimes|}}}
 +
      |exclude={{{recurring exclude datetimes|}}}
 +
      }}<!--output
 +
   -->|<!--arraymap output sep
 +
  -->}}<!-- end arraymap
 +
 
 +
ELSE-->|<!--
 +
-->{{#set_recurring_event: Wiederkehrend: {{#replace:{{{title|}}}|+|+}}<!-- Kommentar: + zu full width plus ersetzen &#65291;
 +
-->|property=Has date
 
   |Has event={{{title|}}}
 
   |Has event={{{title|}}}
 
   |Has group=wiederkehrendes Ereignis@de
 
   |Has group=wiederkehrendes Ereignis@de
Zeile 201: Zeile 345:
 
     |<!-- {{#switch: {{{type|}}}
 
     |<!-- {{#switch: {{{type|}}}
 
     |Besprechung =File:Event-meeting-icon.png
 
     |Besprechung =File:Event-meeting-icon.png
     |Presentation=File:Event-presentation-icon.png
+
     |Präsentation=File:Event-presentation-icon.png
 
     |Talk=File:Event-talk-icon.png }} -->
 
     |Talk=File:Event-talk-icon.png }} -->
 
     }}
 
     }}
Zeile 217: Zeile 361:
 
   |include={{{recurring include datetimes|}}}
 
   |include={{{recurring include datetimes|}}}
 
   |exclude={{{recurring exclude datetimes|}}}
 
   |exclude={{{recurring exclude datetimes|}}}
   }}<!--
+
   }}
 +
}}<!-- if pos , recurring week number
 +
 
 +
--><!--
 
   <div class="debug" style="display:none">
 
   <div class="debug" style="display:none">
 
wiederkehrend-{{{title|}}}
 
wiederkehrend-{{{title|}}}
Zeile 237: Zeile 384:
 
-->
 
-->
 
|#default=
 
|#default=
}}
+
}}</includeonly>
</includeonly>
 

Aktuelle Version vom 20. März 2021, 20:56 Uhr

Dies ist die Vorlage „Event item“. Sie hat folgende Vorlagenparameter (Pflichtparameter in fett und optionale normal):

{{Event item
|title=
|start=
|end=
|type=
|description=
|color=
|icon=
|coordinates=
|location=
|keywords=
|recurring type=
|recurring unit=
|recurring period=
|recurring week number=
|recurring start=
|recurring end=
|recurring limit=
|recurring include datetimes=
|recurring exclude datetimes=
}}

Technische Abhängigkeiten

Erweiterungen

Attribute

Vorlagen/Formulare:

Dateien:

Layout:

  • CSS-Klassen booktable, vertical-align-top

Klick auf „Bearbeiten“, um den Quelltext der Vorlage anzusehen.