Difference between revisions of "Template:Event infobox"

no edit summary
Line 4: Line 4:
   {{#vardefine:duration array|{{{duration|}}}
   {{#vardefine:duration array|{{{duration|}}}
}}{{#vardefine:duration loop|1
}}{{#vardefine:duration loop|1
}}{{#vardefine:duration earliest start|99999999999
}}{{#var define:duration latest end|0
}}{{#while:|{{#var:duration loop}}|
}}{{#while:|{{#var:duration loop}}|
{{#vardefine:duration array piece|
{{#vardefine:duration array piece|
   {{#sub:{{#var:duration array}}|0|{{#pos:{{#var:duration array}}|;}}}}
   {{#sub:{{#var:duration array}}|0|{{#pos:{{#var:duration array}}|;}}}}
}}{{#if:{{#var:duration array|}}|
}}{{#if:{{#var:duration array|}}|
{{#if:{{#pos:{{#var:duration array}}|!}}|
  {{#if:{{#pos:{{#var:duration array}}|!}}|
  {{#vardefine:duration array piece name|
    {{#vardefine:duration array piece name|
    {{#explode:{{#var:duration array piece}}|!|0}}
      {{#explode:{{#var:duration array piece}}|!|0}}
  }}{{#vardefine:duration array piece start|
    }}{{#vardefine:duration array piece start|
    {{#explode:
      {{#explode:
      {{#explode:{{#var:duration array piece}}|!|1
        {{#explode:{{#var:duration array piece}}|!|1
    }}|->|0}}
      }}|->|0}}
  }}{{#vardefine:duration array piece end|
    }}{{#vardefine:duration array piece end|
     {{#explode:
      {{#explode:
       {{#explode:{{#var:duration array piece}}|!|1
        {{#explode:{{#var:duration array piece}}|!|1
     }}|->|1}}
      }}|->|1}}
    }}
     |{{#vardefine:duration array piece name|Duration
    }}{{#vardefine:duration array piece start|
      {{#explode:{{#var:duration array piece}}|->|0}}
    }}{{#vardefine:duration array piece end|
       {{#explode:{{#var:duration array piece}}|->|1}}
    }}{{#if:{{#var:duration array piece start|}}||{{#vardefine:duration array piece start|{{#time:c|December 2nd, 2018}}}}
    }}{{#if:{{#var:duration array piece end|}}||{{#vardefine:duration array piece end|{{#time:c|December 31st, 3000}}}}
    }}
  }}{{#vardefine:duration array piece start|{{#replace:{{#var:duration array piece start}}|@|}}
    }}{{#vardefine:duration array piece end|{{#replace:{{#var:duration array piece end}}|@|}}
  }}{{#if:{{#var:duration}}|
    {{#vardefine:duration|{{#var:duration}};{{#var:duration array piece name}}!{{#replace:{{#time:c|{{#var:duration array piece start}}}}|+00:00|+09:00}}->{{#replace:{{#time:c|{{#var:duration array piece end}}}}|+00:00|+09:00}}}}
     |{{#vardefine:duration|{{#var:duration array piece name}}!{{#replace:{{#time:c|{{#var:duration array piece start}}}}|+00:00|+09:00}}->{{#replace:{{#time:c|{{#var:duration array piece end}}}}|+00:00|+09:00}}}}
  }}{{#ifexpr:{{#time: U|now}} >= {{#time:U|{{#var:duration array piece start}}}} and {{#time: U|now}} <= {{#time: U|{{#var:duration array piece end}}}}|
    {{#vardefine:is active|true}}
  }}{{#vardefine:duration array piece start|{{#time:U|{{#var:duration array piece start}}}}
  }}{{#vardefine:duration array piece end|{{#time:U|{{#var:duration array piece start}}}}
  }}{{#ifeq:{{#var:duration array piece start}} <= {{#var:duration earliest start}}|{{#vardefine:duration earliest start|{{#var:duration array piece start}}}}
  }}{{#ifeq:{{#var:duration array piece end}} <= {{#var:duration latest end}}|{{#vardefine:duration latest end|{{#var:duration array piece end}}}}
   }}
   }}
  |{{#vardefine:duration array piece name|Duration
}}{{#if:{{#pos:{{#var:duration array}}|;}}||
  }}{{#vardefine:duration array piece start|
    {{#explode:{{#var:duration array piece}}|->|0}}
  }}{{#vardefine:duration array piece end|
    {{#explode:{{#var:duration array piece}}|->|1}}
  }}{{#if:{{#var:duration array piece start|}}||{{#vardefine:duration array piece start|{{#time:c|December 2nd, 2018}}}}
  }}{{#if:{{#var:duration array piece end|}}||{{#vardefine:duration array piece end|{{#time:c|December 31st, 3000}}}}
  }}
}}{{#vardefine:duration array piece start|{{#replace:{{#var:duration array piece start}}|@|}}
  }}{{#vardefine:duration array piece end|{{#replace:{{#var:duration array piece end}}|@|}}
}}{{#if:{{#var:duration}}|
  {{#vardefine:duration|{{#var:duration}};{{#var:duration array piece name}}!{{#replace:{{#time:c|{{#var:duration array piece start}}}}|+00:00|+09:00}}->{{#replace:{{#time:c|{{#var:duration array piece end}}}}|+00:00|+09:00}}}}
  |{{#vardefine:duration|{{#var:duration array piece name}}!{{#replace:{{#time:c|{{#var:duration array piece start}}}}|+00:00|+09:00}}->{{#replace:{{#time:c|{{#var:duration array piece end}}}}|+00:00|+09:00}}}}
}}{{#ifexpr:{{#time: U|now}} >= {{#time:U|{{#var:duration array piece start}}}} and {{#time: U|now}} <= {{#time: U|{{#var:duration array piece end}}}}|
  {{#vardefine:is active|true}}
}}}}{{#if:{{#pos:{{#var:duration array}}|;}}||
   {{#vardefine:duration loop|}}
   {{#vardefine:duration loop|}}
}}{{#vardefine:duration array|
}}{{#vardefine:duration array|
Line 49: Line 56:
| Has duration date = {{#var:duration|{{{duration|}}}}}
| Has duration date = {{#var:duration|{{{duration|}}}}}
| Has event type = {{{type|Time-Limited}}}
| Has event type = {{{type|Time-Limited}}}
| Earliest duration = {{#var:duration earliest start}}
| Latest duration = {{#var:duration latest end}}
| Is active = {{#var:is active}}
| Is active = {{#var:is active}}
}}{{#if:{{#var:is active}}|[[Category:Active events]]|[[Category:Inactive events]]}}
}}{{#if:{{#var:is active}}|[[Category:Active events]]|[[Category:Inactive events]]}}
Line 68: Line 77:
* Has duration date
* Has duration date
* Has event type
* Has event type
* Earliest duration
* Latest duration
* Is active
* Is active