Modul:Works by license subcat
Aspect
| Acest format utilizează Lua: |
local p = {} --p stands for package
local getArgs = require('Modul:Arguments').getArgs
local yesno = require('Modul:Yesno')
local namespace = mw.title.getCurrentTitle().nsText
local rootpagename = mw.title.getCurrentTitle().rootText
local catname = string.gsub(rootpagename, "Autor%-", "")
function author_subcat(subcat)
return yesno(subcat or string.find(rootpagename, "Autor%-") ~= nil)
end
function categories(subcat, extra, sort_as)
if namespace == "Categorie" and subcat then
return "[[Categorie:Autori după tipul licenței|" .. (sort_as or catname) .. "]] [[Categorie:" .. catname .. "]]" .. (extra or "")
elseif namespace == "Categorie" then
return "[[Categorie:Lucrări după tipul licenței|" .. (sort_as or catname) .. "]]" .. (extra or "")
else
return ""
end
end
function p.works_by_license_subcat(frame)
local args = getArgs(frame)
local template = args.template or args['format'] or catname
local subcat = author_subcat(args.author_subcat)
local use_template = yesno(args.use_template or true)
local sort_as = args.sort_as or catname
local nocat = yesno(args.nocat or false)
local category
if not nocat then
category = categories(subcat, nil, sort_as)
end
local template_args = args
template_args.template = nil
template_args.author_subcat = nil
template_args.use_template = nil
template_args.sort_as = nil
template_args.nocat = 'true'
local text = table.concat(
{
"Această categorie este populată de {{[[Format:" .. template .. "|" .. template .. "]]}}.",
args.text or "",
category
},
" "
)
local template_demo
if use_template then
template_demo = frame:expandTemplate {
['title'] = template,
['args'] = template_args
}
else
template_demo = ""
end
return text .. template_demo
end
function p.pd_old_subcat(frame)
local args = getArgs(frame)
local ntable = mw.text.split(catname, "-", true)
local n = args[1] or tonumber(ntable[#ntable]) or "{{{1}}}"
local subcat = author_subcat(args.author_subcat)
local sort_as = args.sort_as or catname
local text = "Această categorie este o categorie meta și conține categorii pentru "
if subcat then
text = text .. "autori ale căror lucrări"
else
text = text .. "lucrări care"
end
text = text .. " se află în domeniul public în țări în care drepturile de autor încetează la " .. n .. " de ani sau mai puțin după moartea autorului."
local extra
if subcat then
extra = "[[Categorie:Autor-DP-vechi|" .. sort_as .. "]][[Categorie:Autori cu opere în domeniul public în afara SUA|" .. sort_as .. "]]"
else
extra = "[[Categorie:DP-vechi|" .. sort_as .. "]][[Categorie:Domeniul public în afara SUA|" .. sort_as .. "]]"
end
return text .. categories(subcat, extra)
end
return p