Vorlage:Event item: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Fix icon with prefixed File:) |
|||
(26 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>↗ [[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 | + | -->|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|}}}}} |
− | + | |1|recurring|wiederkehrend=<div>''Hinweis:'' der Termin wiederholt sich {{#switch: {{#var: recurringUnitStandardized}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |1|recurring|wiederkehrend=< | ||
|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:'' <!-- {{{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 | ||
+ | -->}} 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 | ||
+ | -->| ''bis:'' {{ | ||
+ | #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|}}}}} 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 | ||
+ | --> 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 | ||
− | | | + | |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 + | ||
+ | -->|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 + | ||
+ | -->|property=Has date | ||
|Has event={{{title|}}} | |Has event={{{title|}}} | ||
|Has group=wiederkehrendes Ereignis@de | |Has group=wiederkehrendes Ereignis@de | ||
Zeile 197: | Zeile 341: | ||
|Has event end={{{end|}}} | |Has event end={{{end|}}} | ||
|Has event location={{{location|}}} | |Has event location={{{location|}}} | ||
− | |Has event icon=File:{{#explode:{{{icon|}}}|:|-1}} | + | |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 color={{Event item/color by type|{{{type|}}}}} | ||
|Has event description={{{description|}}} | |Has event description={{{description|}}} | ||
Zeile 211: | 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 231: | 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
- extension:SemanticMediaWiki
- extension:SemanticResultFormats
- extension:Maps
- extension:Page Forms
- extension:Variables
- extension:Arrays
Attribute
- Attribut: Has date
- Attribut: Has group
- Attribut: Has monolingual keyword
- Attribut: Has keyword
- Attribut: Has monolingual keyword list
- Attribut: Has keyword list
- Attribut: Has event
- Attribut: Has event description
- Attribut: Has event type
- Attribut: Has event location
- Attribut: Has event geocoordinates
- Attribut: Has event start
- Attribut: Has event end
- Attribut: Has event icon
- Attribut: Has event color
Vorlagen/Formulare:
- Vorlage: Event item/color by type
- Vorlage: Logo
- Vorlage: Stichwörter
- Vorlage: BrowseByAskQueryPreviousNext
- Formular: Event item
Dateien:
Layout:
- CSS-Klassen booktable, vertical-align-top
Klick auf „Bearbeiten“, um den Quelltext der Vorlage anzusehen.