<templatestyles src="Modul:Dokumentacija/styles.css"></templatestyles>
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