Prijeđi na sadržaj

Modul:Infookvir tracking

Izvor: Wikipedija


local p = {}

local function isblank(val) return (val == nil) or val:match('^[%s]*$') end

local function nema(args, extArgs, maincats)
	local extSkip = extArgs['ne pratiti parametre'] or ''
    for k, v in pairs(args) do
        if k ~= "okvir" and k ~= "smjer" then
            local sinonimi = mw.text.split(v, "@", true)
            local sinonimiSize = 0
            local countNema = 0
            local skip
            for tk, tv in pairs(sinonimi) do
            	if mw.ustring.match(extSkip, "@"..tv.."@") then
            		skip = true
                end
                sinonimiSize = sinonimiSize + 1
                if (isblank(extArgs[tv])) then 
                	countNema = countNema + 1 
                end
            end
            if sinonimiSize == countNema and not skip then
                maincats = maincats .. '[[Kategorija:Stranice koje koriste ' ..
                               args['okvir']:lower() .. ' bez parametra ' ..
                               sinonimi[1] .. ']]'
            end
        end
    end
    return maincats
end

local function ima(args, extArgs, maincats)
	local extSkip = extArgs['ne pratiti parametre'] or ''
    for k, v in pairs(args) do
        if k ~= "okvir" and k ~= "smjer" then
            local sinonimi = mw.text.split(v, "@", true)
            local skip
            for tk, tv in pairs(sinonimi) do
            	if mw.ustring.match(extSkip, "@"..tv.."@") then
            		skip = true
            	end
            end
            if not skip then
                for tk, tv in pairs(sinonimi) do
                    if (not isblank(extArgs[tv])) then
                        maincats =
                            maincats .. '[[Kategorija:Stranice koje koriste ' ..
                                args['okvir']:lower() .. ' s parametrom ' ..
                                sinonimi[1] .. ']]'
                        break
                    end
                end
            end
        end
    end
    return maincats
end

function p.tracking(frame)

    local cats = ''
    local maincats = ''
    local extArgs = frame:getParent().args
    local args = frame.args
    local warnmsg = {}

    -- smjer: ima, nema ili oba
    if args["smjer"] == "nema" or isblank(args["smjer"]) then
        maincats = nema(args, extArgs, maincats)
    else
        if args["smjer"] == "ima" then
            maincats = ima(args, extArgs, maincats)
        else
            if args["smjer"] == "oba" then
                maincats = ima(args, extArgs, maincats)
                maincats = nema(args, extArgs, maincats)
            end
        end
    end

    if #warnmsg > 0 then
        cats = require('Module:If preview')._warning({
            table.concat(warnmsg, '<br>') .. '<br>(' .. args['okvir']:lower() ..
                ').'
        }) .. cats
    end

    if maincats ~= '' and mw.title.getCurrentTitle().namespace == 0 then
        cats = cats .. maincats
    end
    mw.log(maincats)
    return cats
end

return p