Prijeđi na sadržaj

Modul:Category handler/doc

Izvor: Wikipedija

Modul sadrži implementaciju predloška {{Category handler}}.

Ova će dokumentacija pojasniti kako koristiti modul u drugim modulima. Za korištenje u predlošcima, molim pogledajte dokumentaciju istoimenog predloška.

Korištenje iz drugih Lua modula

[uredi kôd]

Kad ne koristiti ovaj modul

[uredi kôd]

Ako modul treba kategorizirati samo jednu vrstu sadržaja (npr. samo datoteke, ili samo predloške), nije poželjno koristiti ovaj modul. Takvu kategorizaciju moguće je napraviti sljedećim kodom:

local title = mw.title.getCurrentTitle() -- dohvati naslov stranice
if title.nsText == 'Datoteka' then           -- ako je imenski prostor naslova jednak 
    -- uradi nešto
end

Ako trebate zasebno kategorizirati različite vrste sadržaja, poželjno je koristiti ovaj modul.

Imenski prostori

[uredi kôd]

Modul radi s imenima imenskih prostora na ovoj Wikipediji.

glavni - glavni imenski prostor
razgovor - sve razgovorne stranice (razgovor sa suradnikom, razgovor o predlošku, ...)
datoteka, wikipedija, suradnik - imena ostalih imenskih prostora. Pogledajte tablicu niže za puni popis
other - svi ostali imenski prostori koji nisu poimence navedeni

Popis imenskih prostora

[uredi kôd]
(bez prostora razgovor i other)
Imenski prostor Aliasi
main glavni, glavno
suradnik user, sur, u, suradnica
wikipedija project, wikipedia, wp
datoteka file, dt, slika, image
mediawiki me
predložak template
pomoć help, pm, h
kategorija category, kt, ct
portal
dodatak
nacrt draft
timedtext
modul module, md, mod

Primjeri korištenja

[uredi kôd]

Modul prima dva ili više parametara.

Općeniti primjer

[uredi kôd]

Niže je primjer korištenja:

p = {}
local categoryHandler = require('Module:Category handler').main
 
function p.main( frame )
    local rezultat = 'Ovaj je modul namijenjen za GIP i razgovore.'
    local kategorija = categoryHandler{
        glavni   = '[[Kategorija:Neka kategorija1]]', -- Kategorizacija u GIP-u
        razgovor = '[[Kategorija:Neka kategorija2]]', -- Kategorizacija u razgovorima
        other    = '[[Kategorija:Neka kategorija3]]', -- Kategorizacija u ostalim imenskim prostorima
        nocat    = frame.args.nocat                   -- kako bi "nocat=true/false" radilo
    }
    kategorija = kategorija or ''   -- izbjegava grešku ako kategorija nije zadana
    return rezultat .. kategorija
end
 
return p

Pojašnjenje koda:

Uzmimo da je primjer iznad dio modula Foo. Modul Foo možemo dodati u predložak ili pojedinačne stranice pisanjem {{#invoke:foo|main}}.
Zbog gornjeg koda predložak ili stranice s tim modulom svrstavat će se u kategoriju Kategorija:Neka kategorija1 ako su u GIP-u, u kategoriju Kategorija:Neka kategorija2 ako su na kakvoj razgovornoj stranici ili u kategoriju Kategorija:Neka kategorija3 ako se nalaze negdje drugdje.
U pojedinačni poziv predloška ili modula možemo staviti |nocat=true da se gornji vid kategorizacije ne provodi zasebno za svaki predložak ili modul.

Ista kategorija za više imenskih prostora

[uredi kôd]

Ako trebamo više različitih imenskih prostora svrstati u istu kategoriju, činimo to ovako:

p = {}
local categoryHandler = require('Module:Category handler').main
 
function p.main( frame )
    local rezultat = 'Ovaj je modul namijenjen za GIP i razgovore.'
    local kategorija = categoryHandler{
        glavni   = '[[Kategorija:Neka kategorija1]]', -- Kategorizacija u GIP-u
        [1]      = '[[Kategorija:Neka kategorija2]]', -- prvi neimenovani parametar dodjeljujemo kategoriji
        pomoć    = 1,        -- imenski prostor pomoći...
        suradnik = 1,        -- i imenski prostor suradnika smještaju se u kategoriju navedenu pod [1]
        razgovor    = '',    -- bez kategorije na razgovornim stranicama
        nocat    = frame.args.nocat    -- kako bi "nocat=true/false" radilo
    }
    kategorija = kategorija or ''   -- izbjegava grešku ako kategorija nije zadana
    return rezultat .. kategorija
end
 
return p