Modul:Infookvir tracking: razlika između inačica

Izvor: Wikipedija
Izbrisani sadržaj Dodani sadržaj
m ispr.
za Special:Diff/6780452: u poziv predloška U ČLANKU staviti |ne pratiti parametre=@param1@param2@ pa se *za taj članak* neće dodati kategorija; u predlošcima se ništa ne mijenja
 
Redak 4: Redak 4:


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


local function ima(args, extArgs, maincats)
local function ima(args, extArgs, maincats)
local extSkip = extArgs['ne pratiti parametre'] or ''
for k, v in pairs(args) do
for k, v in pairs(args) do
if k ~= "okvir" and k ~= "smjer" then
if k ~= "okvir" and k ~= "smjer" then
local sinonimi = mw.text.split(v, "@", true)
local sinonimi = mw.text.split(v, "@", true)
local skip
for tk, tv in pairs(sinonimi) do
for tk, tv in pairs(sinonimi) do
if (not isblank(extArgs[tv])) then
if mw.ustring.match(extSkip, "@"..tv.."@") then
maincats =
skip = true
end
maincats .. '[[Kategorija:Stranice koje koriste ' ..
end
args['okvir']:lower() .. ' s parametrom ' ..
sinonimi[1] .. ']]'
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
Redak 74: Redak 89:
cats = cats .. maincats
cats = cats .. maincats
end
end
mw.log(maincats)

return cats
return cats
end
end

Posljednja izmjena od 22. studenoga 2023. u 02:47


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