Predloga:If pagename
Predloga se uporablja na številnih straneh. Z urejanjem te predloge lahko zelo obremenite strežnike, zato pred uvedbo vse spremembe, ki jih želite uvesti, preizkusite na njenih podstraneh (/peskovnik oziroma /testniprimeri) ali na svojih lastnih podstraneh. Preizkusite jih lahko tudi v posebnem peskovniku za predloge. Preizkušene spremembe se lahko v predlogo dodajo z enim samim urejanjem. Preden predlogo spremenite, se o spremembah rajši pogovorite na njeni pogovorni strani. |
To je meta-predloga {{if pagename}}. Ta predloga pomaga drugim predlogam pri detekcijo na kateri strani so. Uporablja primerjavo vzorcev v imenu strani.
Glej tudi razširjeno verzijo: {{if pagename multi}}. Ta lahko ponovno uporabi isti vhodni podatek za različne primerjalne vzorce.
Uporaba
[uredi kodo]Ta predloga sprejme enega ali več parametrov. Večina parametrov nima fiksnega imena, namesto tega so del primerjalnega vzorca. Npr.:
{{if pagename | /dok = Besedilo za /dok stran | other = Besedilo za katerokoli drugo stran }}
Če se predloga uporabi na strani "Predloga:Primer/dok" bo koda vrnila tole:
- Besedilo za /dok stran
Če je predloga na katerikoli drugi (other) strani kot na /dok strani, bo vrnila tole:
- Besedilo za katerokoli drugo stran
Tukaj je opis polne primerjave vzorca:
{{if pagename <!-- Match on full pagename --> | Uporabnik:Primer/test = Besedilo za "Uporabnik:Primer/test". | Uporabnik:Primer = Besedilo za "Uporabnik:Primer". | Uporabniški pogovor:Primer = Besedilo za "Uporabniški pogovor:Primer". <!-- Match on full basepage name, when on a basepage or its subpages --> | Uporabnik:Primer/+ = Ustreza za "Uporabnik:Primer" in "Uporabnik:Primer/test". <!-- Match on pagename, when on a basepage --> | Primer = Ustreza za "Uporabnik:Primer", "Uporabniški pogovor:Primer", "Predloga:Primer" in tako naprej, toda ne ustreza za "Uporabnik:Primer/nekaj". <!-- Match on full basepage name, when on a subpage --> | Uporabnik:Primer/* = Ustreza za "Uporabnik:Primer/nekaj", toda ne ustreza za "Uporabnik:Primer". | Uporabniški pogovor:Primer/* = Ustreza za "Uporabniški pogovor:Primer/nekaj". <!-- Match on basepage name, when on a subpage --> | Primer/* = Ustreza za "Uporabnik:Primer/nekaj" in "Uporabniški pogovor:Primer/nekaj". <!-- Match on subpage name --> | /nekaj = Za vsako ime strani, ki se končuje z "/nekaj". | /dok = Za vsako ime strani, ki se končuje z "/dok". <!-- Match on partial subpage name (case-insensitive) --> | /some* = Za katerokoli podstran, ki se začne z "/some" ali "/Some". | /arhi* = Ustreza za "Uporabniški pogovor:Primer/Arhiv 1". <!-- Default fallbacks --> | basepage = Besedilo za katerokoli osnovno stran (basepage). | subpage = Besedilo za katerokoli podstran (subpage). | other = Besedilo za katerokoli drugo stran. }}
Primerjava se izvaja od zgoraj navzdol in vrne prvi parameter, ki ustreza. "Od zgoraj navzdol" pomeni vrstni red, ki je prikazan zgoraj in vrstni red s katerim ste po naključju napolnili parametre.
Število parametrov ni omejeno, omejitev je v zmožnosti delovanja strežnikov in MediaWiki.
Večina primerjav je občutljiva na velike in male črke. Npr.: "/test
" ustreza za "Uporabnik:Primer/test", ne ustreza pa za "Uporabnik:Primer/Test".
Primerjava delnih imen podstrani kot je "/some*
" ima omejitve, glej poglavje below.
Če prazen parameter (ampak definiran) ustreza primerjavi, se primerjava ustavi in predloga vrne prazni string. To je napravljeno z namenom in se lahko uporablja na sledeč način:
{{if pagename | /dok = | /peskovnik = Besedilo za peskovnik | other = Besedilo za katerokoli drugo stran }}
Koda zgoraj ne bo izpisala nič, če je na /dok strani, za peskovnik pa bo izpisala tole:
- Besedilo za peskovnik
Na katerikoli drugi strani, bo izpisala tole:
- Besedilo za katerokoli drugo stran
Delna imena podstrani
[uredi kodo]Ta preloga lahko primerja delna imena podstrani. Npr.:
{{if pagename | /arhi* = Besedilo za arhiv | other = Besedilo za katerokoli drugo stran }}
Če je na "Uporabnik:Primer/Arhiv 1", bo koda vrnila tole:
- Besedilo za arhiv
Ime parametra "/some*
" morabiti zapisan z malimi črkami. Primerjava se potem izvede za podstrani, ki so zapisane z veliki ali malimi črkami. kot je "Uporabnik:Primer/NeKaj" in "Uporabnik:Primer/nekaj".
Delno primerjanje podpira le primerjavo za 4, 6 in 8 znakov. Zatorej "/some*
", "/someth*
" in "/somethin*
" deluje, toda uporaba "/som*
" ali "/somet*
" ne deluje.
Najprej se izvede primerjava daljšega vzorca, torej če sta definirana oba "/somethin*
" in "/some*
" in je trenutna stran "Uporabnik:Primer/Something", potem se bodo uporabili podatki "/somethin*
" .
Parameter "page"
[uredi kodo]Za testiranje in namen prikaza delovanja predloge, lahko uporabite parameter imenovan page. Npr:
{{if pagename | /test = Besedilo za testne strani | other = Besedilo za katerokoli drugo stran | page = Uporabnik:Primer/test }}
Ne glede na to na katerem tipu strani se nahajate, bo koda izpisala tole
- Besedilo za testne strani
Parameter page prisili predlogo, da deluje kod da se dejansko nahaja na navedeni strani. Ni potrebno, da imenovana stran dejansko obstaja.
Če je parameter page prazen ali nedefiniran, se vzame kot vhodni podatek trenutna stran.
Naredite lahko tako, da tvoja predloga razume parameter page. To pomeni, da lahko prikažete različni videz vaše predloge v dokumentaciji za vašo predlogo. To storite takole:
{{if pagename | /test = Besedilo za testne strani | other = Besedilo za katerokoli drugo stran | page = {{{page|}}} }}
Primerjanje imenskega prostora
[uredi kodo]Ta predloga ne izvaja primerjave imenskega prostora. Če to potrebuješ, kombiniraj to predlogo z eno izmed predlog za detekcijo imenskega prostora kot je {{template other}}. Npr:
{{template other | {{if pagename | /dok = Besedilo za dok predloge. }} | <!-- Other space, do nothing --> }}
Če si na "Uporabnik:Primer/dok" koda zgoraj ne bo vrnila ničesar. Toda, če si na "Predloga:Primer/dok" bo vrnjeno tole:
- Besedilo za dok predloge.
Glej tudi
[uredi kodo]Pagename-handling and detection templates:
- {{basepage subpage}} – For detecting if on a basepage, subpage or subsubpage.
- {{pgn}} – Can take apart and put together pagenames in several ways.
- {{if pagename}} – For pattern matching on the pagename.
- {{if pagename multi}} – For pattern matching on the pagename, has input reuse.
- {{IP-user other}} – For detecting IP-user pages.
- {{IP-talk}} - Return: 1) IP user talk page 2) registered user talk page 3) not user talk page.
Easy to use namespace-detection templates:
- {{main other}} – For article templates.
- {{talk other}} – For talk page templates.
- {{user other}} – For user page templates.
- {{wikipedia other}} – For detecting "Wikipedia:" pages.
- {{file other}} – For file (image) templates.
- {{template other}} – For detecting template pages.
- {{help other}} – For help page templates.
- {{category other}} – For category templates.
- {{portal other}} – For portal templates.
- {{book other}} – For detecting book pages.
More complex namespace-detection templates:
- {{namespace detect}} – The very versatile one.
- {{namespace detect showall}} – The extremely versatile one, has input reuse.
- {{talkspace detect}} - For detecting talk pages on various namespaces.
Technical stuff:
- mw:Help:Magic words – About
{{NAMESPACE}}
etc. - mw:Help:Extension:ParserFunctions – About
{{#ifeq:|||}}
etc.