Šablona:IsSelf: Porovnání verzí

Z Enviwiki
Skočit na navigaci Skočit na vyhledávání
cs>Oashi
m (>>stacktrace)
m (naimportováno 18 revizí)
 
(Není zobrazeno 8 mezilehlých verzí od 3 dalších uživatelů.)
Řádek 1: Řádek 1:
<noinclude><code><nowiki>{{IsSelf|{{ns:10}}|IsSelf|stacktrace=IsSelf}}</nowiki></code> = <br /></noinclude>{{
+
<noinclude><code><nowiki>{{IsSelf|{{ns:10}}|IsSelf}}</nowiki></code> = <br /></noinclude>{{
#ifeq:{{FULLPAGENAME}}|{{{namespace|{{{1|{{{ns|<noinclude>{{ns:10}}</noinclude>}}}}}}}}}:{{{stránka|{{{2|{{{strana|<noinclude>IsSelf</noinclude>}}}}}}}}}|1|0}}{{
+
#ifeq:{{FULLPAGENAME}}|{{{namespace|{{{1|{{{ns|<noinclude>{{ns:10}}</noinclude>}}}}}}}}}:{{ucfirst:{{{stránka|{{{2|{{{strana|<noinclude>IsSelf</noinclude>}}}}}}}}}}}|1|0}}<noinclude>
Povinný stacktrace|{{{stacktrace|<noinclude>IsSelf</noinclude>}}}}}{{
+
{{Dokumentace}}<!-- KATEGORIE, PROSÍME, PŘIDÁVEJTE DO /doc PODSTRÁNKY. DĚKUJEME -->
Povinný parametr|{{{stránka|{{{2|{{{strana|<noinclude>IsSelf</noinclude>}}}}}}}}}|parametr=2 (strana)|stacktrace={{{stacktrace|}}}>IsSelf}}<noinclude>
 
----
 
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:
 
* <nowiki>{{{1|}}}</nowiki> (ns) - [[Nápověda:Jmenný prostor|namespace]], defaultně přednastaveno "", tedy NS hlavního prostoru. Zkus třeba: "<code><nowiki>{{ns:10}}</nowiki></code>" = "{{ns:10}}".
 
* <nowiki>{{{2}}}</nowiki> (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 {{šablona|Sloučit}}, kam se název stránky zadává jako vstup. Podobně se uplatní i v šablonách pro kategorie apod.
 
 
 
== Validace ==
 
Š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.
 
 
 
* <code><nowiki>{{IsSelf|{{ns:10}}|oveř stránku|stacktrace= moje editovaná šablona}}</nowiki></code> = {{IsSelf|{{ns:10}}|oveř stránku|stacktrace= moje editovaná šablona }}
 
OK
 
 
 
 
 
* <code><nowiki>{{IsSelf|{{ns:XY}}|oveř stránku|stacktrace= moje editovaná šablona }}</nowiki></code> = {{IsSelf|XY|oveř stránku|stacktrace= moje editovaná šablona }}
 
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.
 
 
 
 
 
* <code><nowiki>{{IsSelf|{{ns:10}}|stacktrace= moje editovaná šablona }}</nowiki></code> = {{IsSelf|{{ns:10}}|stacktrace= moje editovaná šablona }}
 
Název stránky k ověření je požadovaným vstupem.
 
 
 
 
 
* <code><nowiki>{{IsSelf|oveř stránku|stacktrace= moje editovaná šablona }}</nowiki></code> = {{IsSelf|oveř stránku|stacktrace= moje editovaná šablona }}
 
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.)
 
 
 
 
 
* <code><nowiki>{{IsSelf||oveř stránku|stacktrace= moje editovaná šablona }}</nowiki></code> = {{IsSelf||oveř stránku|stacktrace= moje editovaná šablona }}
 
OK, takto je jasné, že opravdu dostanete to, co chcete - ověření článku z hlavního prostoru.
 
 
 
 
 
* <code><nowiki>{{IsSelf||oveř stránku}}</nowiki></code> = {{IsSelf||oveř stránku}}
 
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 ==
 
* {{šablona|isDoc}}
 
* {{šablona|not}}
 
* {{šablona|povinný stacktrace}}
 
* {{šablona|Jen pro kategorie}}
 
 
 
[[Kategorie:Pomocné šablony|{{PAGENAME}}]]
 
 
</noinclude>
 
</noinclude>

Aktuální verze z 4. 8. 2018, 06:48

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

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

Použití[editovat zdroj]

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[editovat zdroj]

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 }} = 0

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


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

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}} = 0

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[editovat zdroj]