Help:Parser functions in templates/nl
Let op: Als u deze pagina bewerkt, gaat u akkoord met het vrijgeven van uw bijdragen onder de CC0. Zie Helppagina’s Publiek Domein voor meer informatie. |
Bij het toepassen van ParserFuncties op sjabloon parameters, kan een verticale streep ("|") worden gebruikt om een standaardwaarde mee te geven, dit wordt gebruikt als een parameter niet is gedefinieerd. Als het in een #if parser functie wordt gebruikt, wordt de niet expandeerde tekst van de ongedefinieerde parameter uiteindelijk 'true', dat kan een onverwacht resultaat zijn.
Parameter | {{{1}}}, {{{param}}} | {{{1|}}}, {{{param|}}} | {{#if:<parameter>|True|False}} | ||
---|---|---|---|---|---|
Beschrijving | Voorbeeld, zonder en met naam | {{{1}}}, {{{param}}} | {{{1|}}}, {{{param|}}} | ||
Ongedefinieerd. Meer geschikt voor gebruik bij parameters met een naam. | {{template}}
|
{{{1}}} | True | False | |
Gedefinieerd, maar leeg of null | {{template|}} , {{template|1=}} , {{template|param=}}
|
False | False | ||
Gedefinieerd, niet leeg en niet null | {{template|value}} , {{template|1=value}} , {{template|param=value}}
|
value | value | True | True |
{{{1}}}
- Voorbeeld A
{{#if: {{{1}}} | Parameter 1 is ongedefinieerd of is gedefinieerd en niet null/leeg. | Parameter 1 is null. Het bevat alleen lege tekst(en) of spatie(s) enz.}}
- Resultaat
Parameter 1 is ongedefinieerd of is gedefinieerd en niet null/leeg.
{{{1|}}}
- Voorbeeld B
{{#if: {{{1|}}} | Parameter 1 is gedefinieerd en niet null/leeg. | Parameter 1 is ongedefinieerd of is gedefinieerd maar null. Het bevat alleen lege tekst(en) of spaties(s) enz.}}
- Resultaat
Parameter 1 is ongedefinieerd of gedefinieerd maar null. Het bevat alleen lege tekst(en) of spatie(s) enz.
Het tweede gebruik ({{{1|}}}
, voorbeeld B) met aanwezige lege standaardwaarde is vaak de gewenste manier om situaties af te handelen als er een parameter is, maar dat die alleen uit lege ruimte bestaat.
Testen en doorgeven ongedefinieerde parameters
Om het verschil te zien tussen een mogelijk lege parameter en een ongedefinieerde, vergelijk de parameter met zichzelf met {{#ifeq:}}
en verschillende standaardwaarden.
Wat de standaardwaarden zijn maakt niet uit, als ze maar verschillen, meestal wordt een korte waarde gekozen.
Het volgende werkt allemaal gelijkwaardig:
{{#ifeq:{{{v|+}}}|{{{v|-}}}| v was gedefinieerd (en kan leeg zijn) | v was niet gedefinieerd }}
{{#ifeq:{{{v|}}}|{{{v|-}}}| v was gedefinieerd (en kan leeg zijn) | v was niet gedefinieerd }}
{{#ifeq:{{{v|}}}|{{{v}}}| v was gedefinieerd (en kan leeg zijn) | v was niet gedefinieerd }}
In bijzondere gevallen kan een sjabloon zich anders gedragen als een parameter ongedefinieerd is vergeleken met een parameter zonder waarde. Als dit sjabloon met een wrapper sjabloon wordt gebruikt (die gebruikt dezelfde set parameters met een naam), is een manier om te zorgen dat ongedefinieerde parameters ongedefinieerd blijven als volgt (voor genummerde parameters gaat het op dezelfde manier):
{{wrapped_template| normal_parameter={{{normal_parameter|}}}| sensitive_parameter{{#if:{{{sensitive_parameter|}}}||NULL}}={{{sensitive_parameter}}} }}
wrapped_template
ontvangt een gedefinieerde normal_parameter in alle gevallen. Als die normal_parameter leeg is of ongedefinieerd, wrapped_template
ontvangt een lege normal_parameter.
Daartegenover, als het wrapped_template
een gedefinieerde sensitive_parameter ontvangt, alleen als het gedefinieerd is; als sensitive_parameter ongedefinieerd is, de #if
wijzigt de parameternaam in sensitive_parameterNULL.
De parameter met het achtervoegsel moet betekenisloos zijn voor het wrapped_template
om dit goed te laten werken.