From GamingWiki
Jump to: navigation, search
Line 5: Line 5:
 
     | {{#vardefineecho: theitem
 
     | {{#vardefineecho: theitem
 
       | {{#explode: {{{array}}} | {{#var: sep}} | {{#var: i}} }}  
 
       | {{#explode: {{{array}}} | {{#var: sep}} | {{#var: i}} }}  
      }}{{#vardefine: previtem
 
      | {{#explode:{{{array}}}|{{#var: sep}}| {{#expr: {{#var: i}} - 1 }} }}
 
 
       }}{{#vardefine: nextitem
 
       }}{{#vardefine: nextitem
 
       | {{#explode:{{{array}}}|{{#var: sep}}| {{#expr: {{#var: i}} + 1 }} }}
 
       | {{#explode:{{{array}}}|{{#var: sep}}| {{#expr: {{#var: i}} + 1 }} }}
 
       }}
 
       }}
 
     |<!--
 
     |<!--
     -->{{#switch: <!--
+
     -->{{#vardefine: isfirst |<!--
     -->| {{#var: previtem}} = {{{beforefirst|{{{before|}}} }}}<!--
+
      -->{{#ifeq: {{#var: i}} | {{{countfrom|1}}} | 1 | }} }}<!-- Is this the first item in the list
     -->| {{#var: nextitem}} = {{{beforelast|{{{before|}}} }}}<!--
+
     -->{{#vardefine: islast  |<!--
    -->| #default = {{{before|}}}<!--
+
      -->{{#if: {{#var: nextitem}}                | | 1 }} }}<!-- Is this the last item in the list
 +
 
 +
    If this is the first one in the list, and we have "beforefirst" specified, then we use it. Otherwise,
 +
    if this is the last and we have a "beforelast" specified, we use that. Finally, if neither of these
 +
    is satisfied, we use "before". This means that in a one-item list we will use "beforefirst" and not
 +
    "beforelast".
 +
 
 +
    -->{{#if: ({{#var: isfirst}}) and ({{#ifeq: {{{beforefirst|--NoValue--}}} | --NoValue-- ||1}}) <!--
 +
    -->|<!--    First item and we have a "beforefirst"
 +
      -->{{{beforefirst}}}<!--
 +
     -->|<!--    not the first item, or no "beforefirst"
 +
      -->{{#if: ({{#var: islast}}) and ({{#ifeq: {{{beforelast|--NoValue--}}} | --NoValue-- ||1}}) <!--
 +
      -->|<!--  Last item and we have a "beforelast"
 +
        -->{{{beforelast}}}<!--
 +
      -->|<!--  fall through to the default
 +
        -->{{{before|}}}<!--
 +
      -->}}<!--
 
     -->}}<!--
 
     -->}}<!--
 
     -->{{#var: theitem}}<!--
 
     -->{{#var: theitem}}<!--
     -->{{#switch: <!--
+
 
    -->| {{#var: previtem}} = {{{afterfirst|{{{after|}}} }}}<!--
+
    For the "after" we give precedence to "afterlast" over "afterfirst".
     -->| {{#var: nextitem}} = {{{afterlast|{{{after|}}} }}}<!--
+
 
    -->| #default = {{{after|}}}<!--
+
     -->{{#if: ({{#var: islast}}) and ({{#ifeq: {{{afterlast|--NoValue--}}} | --NoValue-- ||1}}) <!--
 +
    -->|<!--    last item and we have a "afterlast"
 +
      -->{{{afterlast}}}<!--
 +
     -->|<!--    not the last item, or no "afterlast"
 +
      -->{{#if: ({{#var: isfirst}}) and ({{#ifeq: {{{afterfirst|--NoValue--}}} | --NoValue-- ||1}}) <!--
 +
      -->|<!--  first item and we have a "afterfirst"
 +
        -->{{{afterfirst}}}<!--
 +
      -->|<!--  fall through to the default
 +
        -->{{{after|}}}<!--
 +
      -->}}<!--
 
     -->}}<!--
 
     -->}}<!--
 +
 
     -->{{#vardefine: i | {{#expr: {{#var: i}} + 1}} }}<!--
 
     -->{{#vardefine: i | {{#expr: {{#var: i}} + 1}} }}<!--
 
   -->}}<!--
 
   -->}}<!--
 
-->}}
 
-->}}

Revision as of 02:01, 12 February 2011