Модул:Infobox — разлика између измена
Пређи на навигацију
Пређи на претрагу
м (pairs() iterira po tabeli) |
м (Parametar za odsek sad igra važniju ulogu u tome koja će kategorija biti dodata na stranicu) |
||
| Ред 19: | Ред 19: | ||
local function catSemester(cats, arg, departments) | local function catSemester(cats, arg, departments) | ||
local semester = tonumber(mw.ustring.match(arg, '%d+')) | local semester = tonumber(mw.ustring.match(arg, '%d+')) | ||
if departments['СИ'] then | |||
if | |||
cat(cats, data.semesters[semester] .. ' семестар') | cat(cats, data.semesters[semester] .. ' семестар') | ||
end | end | ||
if | if departments['РТИ'] then | ||
local matchRTI = mw.ustring.match(arg, '(%d+) %(РТИ%)') | |||
local semesterRTI = matchRTI and tonumber(matchRTI) or semester | local semesterRTI = matchRTI and tonumber(matchRTI) or semester | ||
cat(cats, data.semesters[semesterRTI] .. ' семестар (РТИ)') | cat(cats, data.semesters[semesterRTI] .. ' семестар (РТИ)') | ||
| Ред 33: | Ред 32: | ||
local cats = {} | local cats = {} | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local departments = decomposeDepartments(args['одсек']) | local departments = decomposeDepartments(args['одсек'] or 'СИ') | ||
catSemester(cats, args['семестар'], departments) | catSemester(cats, args['семестар'], departments) | ||
return table.concat(cats) | return table.concat(cats) | ||
Верзија на датум 20. фебруар 2022. у 00:40
Модул за аутокатегоризацију на основу података прослеђених у инфокутију за предмет. Овај модул такође довлачи потребне податке за рад из модула са подацима.
local p = {}
local data = mw.loadData('Module:Infobox/data')
local function cat(cats, name)
table.insert(cats, '[[Категорија:')
table.insert(cats, name)
table.insert(cats, ']]')
end
local function decomposeDepartments(arg)
local decomposed = {}
for _, v in pairs(mw.text.split(arg, ', ', true)) do
decomposed[v] = true
end
return decomposed
end
local function catSemester(cats, arg, departments)
local semester = tonumber(mw.ustring.match(arg, '%d+'))
if departments['СИ'] then
cat(cats, data.semesters[semester] .. ' семестар')
end
if departments['РТИ'] then
local matchRTI = mw.ustring.match(arg, '(%d+) %(РТИ%)')
local semesterRTI = matchRTI and tonumber(matchRTI) or semester
cat(cats, data.semesters[semesterRTI] .. ' семестар (РТИ)')
end
end
function p.main(frame)
local cats = {}
local args = frame:getParent().args
local departments = decomposeDepartments(args['одсек'] or 'СИ')
catSemester(cats, args['семестар'], departments)
return table.concat(cats)
end
return p