Šablona:IsSelf: Porovnání verzí

Z Enviwiki
Skočit na navigaci Skočit na vyhledávání
cs>Oashi
m (>>stacktrace)
cs>Oashi
(++priklad testu: #ifexpr)
Řádek 13: Řádek 13:


== Validace ==
== Validace ==
Výsledek se testuje pomocí wiki-syntaxe<pre><nowiki>
{{#ifexpr: {{isSelf|{{ns:10}}| šablona }}
| stejná
| jiná
}}</nowiki></pre>
Šablona je [[tříhodnotová logika|tří-stavová]]: V případě chyby je tato chyba součástí výsledné hodnoty. Tedy nevrací jen číselné hodnoty 0 a 1, ale při chybě i text.
Šablona je [[tříhodnotová logika|tří-stavová]]: V případě chyby je tato chyba součástí výsledné hodnoty. Tedy nevrací jen číselné hodnoty 0 a 1, ale při chybě i text.



Verze z 11. 1. 2014, 12:04

{{IsSelf|{{ns:10}}|IsSelf|stacktrace=IsSelf}} =
1


Vrací 1, když usoudí, že je právě na té stránce, jako říká vstup. Jinak vrátí 0.

Dobré jako vstup pro testování v podmínkách, typicky v šablonách:

  • {{{1|}}} (ns) - namespace, defaultně přednastaveno "", tedy NS hlavního prostoru. Zkus třeba: "{{ns:10}}" = "Šablona".
  • {{{2}}} (strana) - název stránky, povinný, k testu na shodu s PAGENAME, včetně případných podstránek za lomítky.

Prozor, i v hlavním prostoru může dojít k selfreferenci: Například přes {{Sloučit}}, kam se název stránky zadává jako vstup. Podobně se uplatní i v šablonách pro kategorie apod.

Validace

Výsledek se testuje pomocí wiki-syntaxe

{{#ifexpr: {{isSelf|{{ns:10}}| šablona }}
 | stejná
 | jiná
}}

Šablona je tří-stavová: V případě chyby je tato chyba součástí výsledné hodnoty. Tedy nevrací jen číselné hodnoty 0 a 1, ale při chybě i text.

  • {{IsSelf|{{ns:10}}|oveř stránku|stacktrace= moje editovaná šablona}} = 0

OK


  • {{IsSelf|{{ns:XY}}|oveř stránku|stacktrace= moje editovaná šablona }} = 0

Takový namespace neexistuje, ovšem systém je zde fault=tolerantní a nehlásí chybu, není validováno: Holt by takový test nikdy nevrátil hodnotu "1". Správnost funkce je na editorovi.


  • {{IsSelf|{{ns:10}}|stacktrace= moje editovaná šablona }} = 0Věci přenesené přes šablony z cs:wiki Šablona „moje editovaná šablona>IsSelf“ požaduje hodnotu v parametru „2 (strana)“, ta ale chybí!

Název stránky k ověření je požadovaným vstupem.


  • {{IsSelf|oveř stránku|stacktrace= moje editovaná šablona }} = 0Věci přenesené přes šablony z cs:wiki Šablona „moje editovaná šablona>IsSelf“ požaduje hodnotu v parametru „2 (strana)“, ta ale chybí!

Když je vstup "2" požadován, jsou vlastně potřeba oba: i "1", ten před ním. (Tento striktní přísup předchází chybám: zadané vstupy šablona spolkne a už je pro ověření nelze nikde vidět, co za hodnoty že se vlastně předalo. Navíc se tak do šablony snáze copypastuje.)


  • {{IsSelf||oveř stránku|stacktrace= moje editovaná šablona }} = 0

OK, takto je jasné, že opravdu dostanete to, co chcete - ověření článku z hlavního prostoru.


  • {{IsSelf||oveř stránku}} = 0Věci přenesené přes šablony z cs:wiki Šablona pro stacktrace požaduje stacktrace nebo název šablony: „|stacktrace={{{stacktrace|}}}>editovaná šablona“ nebo alespoň „|šablona=editovaná šablona“. Ani jeden z těchto parametrů však nebyl obdržen!

Potřebuje název té vaší "právě editované šablony", to kvůli přadáváním "stacktrace" v budoucích chybových hlášeních, až bude tato šablona použita.

Související šablony