Predloga:If pagename

Iz Wikipedije, proste enciklopedije
Jump to navigation Jump to search


Documentation icon Dokumentacija predloge[predogled] [uredi] [zgodovina] [osveži]

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:

More complex namespace-detection templates:

Technical stuff: