Modul:Infookvir tracking
Modul služi za praćenje potpunosti predložaka (obično infookvira).
Način korištenja (umjesto param1, param2 i param3 navedite parametre koje želite pratiti odvojene znakom | ):
{{#invoke:Infookvir tracking|tracking|okvir={{subst:#titleparts:{{subst:PAGENAME}}|1}}|param1|param2|param3}}
Primjer
Infookvir otok ima sljedeći kod:
{{#invoke:Infookvir tracking|tracking|okvir=Infookvir otok|koordinate|država|površina}}
U člancima na kojima se koristi infookvir otok a parametar "država" nije naveden, modul će automatski dodati Kategorija:Stranice koje koriste infookvir otok bez parametra država. Jednake će kategorije biti dodane za sve praćene parametre ako isti nisu navedeni.
Na dokumentacijskoj podstranici uputno je dodati automatski popis kategorija:
== Kategorije za praćenje == {{Posebno:Prefiks_indeks/Kategorija:Stranice koje koriste {{subst:lc:{{subst:#titleparts:{{subst:PAGENAME}}|1}}}}}}
local p = {} local function isblank(val) return (val == nil) or val:match('^[%s]*$') end local function nema(args, extArgs, maincats) 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 for tk, tv in pairs(sinonimi) do sinonimiSize = sinonimiSize + 1 if (isblank(extArgs[tv])) then countNema = countNema + 1 end end if sinonimiSize == countNema 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) for k, v in pairs(args) do if k ~= "okvir" and k ~= "smjer" then local sinonimi = mw.text.split(v, "@", true) 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] .. ']]' 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 return cats end return p