Pomoć:Kako napraviti skupni predložak sa preload parametrima
U ovoj kuharici se objašnjava kako napraviti predložak i odgovarajući lua modul za stvaranje predložaka s poveznicama na niz stranica pri čemu se crvene poveznice stvaraju s dodatnim parametrima koje omogućavaju da se tek otvorena stranica stvari s gotovim tipskim člankom.
Prvi korak je stvaranje tipskog članka, primjer: Wikipedija:Tipski članci/Naselje u Sloveniji
Pri tome uzmete neki primjer članka i sve promjenjive dijelove zamijenite sa parametrima $1 .. $n. Ako želite da sam tipski članak izgleda uredno, možete dodati:
- <noinclude>dio wiki koda koji će se vidjeti samo u tipskom članku</noinclude> i
- <includeonly>dio wiki koda koji se neće vidjeti u tipskom članku, ali će biti uključen kod stvaranja konkretnog članka</includeonly>
{{Infookvir naselje u Sloveniji | ime = $1 | širina-stupnjevi = <noinclude>46</noinclude> | širina-minute = <noinclude>18</noinclude> | dužina-stupnjevi = <noinclude>14</noinclude> | dužina-minute = <noinclude>56</noinclude> | pokrajina = [[$2|$3]] | regija = [[$4 (regija)|$4]] | općina = <includeonly>[[$5|$6]]</includeonly><noinclude>[[Općina Nazarje|Nazarje]]</noinclude> | površina_ukupna = | visina = | stan_2002 = | poštanski_broj = }} '''<includeonly>$1</includeonly><noinclude>Dobletina</noinclude>''' je naselje u [[Slovenija|slovenskoj]] općini <includeonly>[[$5|$6]]</includeonly><noinclude>[[Općina Nazarje|Nazarje]]</noinclude> ([[Slovenske pokrajine|pokrajina]] [[$2|$3]], [[Statističke regije Slovenije|statistička regija]] [[$4 (regija)|$4]]).
Primjer je {{Wp/Naselje u Sloveniji}}. Predložak ne radi ništa drugo osim što prenosi parametre na lua modul. Evo wiki koda:
<includeonly>{{#Invoke:Wp/Naselje u Sloveniji|main}}</includeonly><noinclude> {{Lua|Wp/Naselje u Sloveniji}} [[Kategorija:Wikipedijini predlošci]]</noinclude>
Sve što u predlošku treba napraviti je pozvati istoimeni lua modul (točnije njegovu funkciju "main"), ovako: {{#Invoke:Wp/Naselje u Sloveniji|main}}. Nema posebnog razloga zašto bi se modul zvao isto kao i predložak, osim što je tako preglednije.
Ostatak u ovom primjeru je:
- {{Lua|Wp/Naselje u Sloveniji}} - dokumentiranje činjenice da koristimo ovaj modul. Ovo je potrebno da saznamo gdje se modul koristi. Za razliku od predložaka, korištenje modula se ne može otkriti pomoću Posebno:Što_vodi_ovamo, pa se ovim umjetno stvara poveznica na modul što pomaže otkriti gdje je modul korišten.
- [[Kategorija:Wikipedijini predlošci]] - kategoriziranje, vjerojatno će kasnije biti promijenjena kategorija, kada bude još ovakvih predložaka
Treći korak je stvaranje Lua modula koji će stvoriti pojedinačne "pametne" poveznice na članke. Primjer: Modul:Wp/Naselje u Sloveniji
local p = {} local list = require("Module:List") local wpPreload = require('Module:WpPreload') function p.main(frame)
Kad se određeni predložak poziva s parametrima, npr
- {{wp/Naselje u Sloveniji|Bistra (Črna na Koroškem, Slovenija)|Bistra|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}}
isti ti paramteri su dostupni i u Lua modulu. Za početak, sve te parametre prebacimo u varijable sa smislenim imenima da bi kod bio razumljiviji:
local naseljeLink = mw.getCurrentFrame():getParent().args[1] local naselje = mw.getCurrentFrame():getParent().args[2] local pokrajinaLink = mw.getCurrentFrame():getParent().args[3] local pokrajina = mw.getCurrentFrame():getParent().args[4] local regija = mw.getCurrentFrame():getParent().args[5] local opcinaLink = mw.getCurrentFrame():getParent().args[6] local opcina = mw.getCurrentFrame():getParent().args[7]
Zatim se treba pozvati funkcija wpPreload.napraviWp(), a prije toga je potrebno stvoriti array args
. Vrijednosti pojedinog elementa args moraju odgovarati parametrima $1 .. $n kako su korišteni u tipskom članku. Za stvaranje args su korištene sve varijable osim naseljelink
, ova varijabla ide zasebno u pozivu wpPreload.napraviWp()
. Evo kako kreiramo array args
(na kraju pojedinog retka je isječak iz tipskog članka:
local args = {} args[1] = mw.uri.encode(naselje) -- => '''$1''' je naselje u [[Slovenija|slovenskoj]] općini args[2] = mw.uri.encode(pokrajinaLink) -- => [[Slovenske pokrajine|pokrajina]] [[$2|$3]] args[3] = mw.uri.encode(pokrajina) -- => [[Slovenske pokrajine|pokrajina]] [[$2|$3]] args[4] = mw.uri.encode(regija) -- => [[$4 (regija)|$4]] args[5] = mw.uri.encode(opcinaLink) -- => u [[Slovenija|slovenskoj]] općini [[$5|$6]] args[6] = mw.uri.encode(opcina) -- => u [[Slovenija|slovenskoj]] općini [[$5|$6]]
Zatim pozivamo wpPreload.napraviWp()
sa sljedećim parametrima:
- frame (fiksno)
- naseljeLink (fiksno)
- naselje (fiksno)
- tipski članak - kopirajte njegovu adresu zajedno sa svim donjim crtama
- args(fiksno)
- predloženi sažetak
local wikiCode = wpPreload.napraviWp(frame, naseljeLink, naselje, 'Tipski_članci/Naselje_u_Sloveniji', args, 'Stvoren novi članak')
return wikiCode end return p
Na kraju je potrebno napraviti skupni predložak u kojem će biti "pametne" crvene wikipoveznice (koji će nakon stvaranja stranica postati najobičnije plave).
Predložak će se iz skupnog predloška pozivati ovako:
- {{wp/Naselje u Sloveniji|Bistra (Črna na Koroškem, Slovenija)|Bistra|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}}
Pri tome su prva 2 parametra (|Bistra (Črna na Koroškem, Slovenija)|Bistra|
) nužna jer se radi o naslovu i tekstu wikipoveznice, bez njih ne možemo ni stvoriti poveznice, a ostali ovise o tome kakav smo tipski članak napravili.
Evo primjer predloška {{Črna na Koroškem}}:
{{Navigacija | naziv = Črna na Koroškem | naslov = [[Općina Črna na Koroškem|Naselja u sastavu Općine Črna na Koroškem]] | slika = | popis1 = <!-- -->{{wp/Naselje u Sloveniji|Bistra (Črna na Koroškem, Slovenija)|Bistra|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Črna na Koroškem|Črna na Koroškem|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Javorje (Črna na Koroškem, Slovenija)|Javorje|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Jazbina (Črna na Koroškem, Slovenija)|Jazbina|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Koprivna (Črna na Koroškem, Slovenija)|Koprivna|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Ludranski Vrh|Ludranski Vrh|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Podpeca|Podpeca|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Topla (Črna na Koroškem, Slovenija)|Topla|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!-- -->{{wp/Naselje u Sloveniji|Žerjav (Črna na Koroškem, Slovenija)|Žerjav|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} }}<noinclude> [[Kategorija:Skupni predlošci naselja po općinama u Sloveniji]] </noinclude>
Radi se o običnom skupnom navigacijskom predlošku, a jedina razlika je što su obične wikipoveznice zamijenjene sa pozivom {{wp/Naselje u Sloveniji}}