Модуль:Лицензия/Модификация
Внешний вид
Для документации этого модуля может быть создана страница Модуль:Лицензия/Модификация/doc
local full_mod_names = mw.loadData([[Модуль:Модификации]])
local addon_list = {
["Additional BuildCraft Objects"] = true,
["Additional Pipes"] = true,
["Advanced Generators"] = true,
["Advanced Machines"] = true,
["Advanced Solar Panels"] = true,
["AFSU mod"] = true,
["Charge Pads"] = true,
["Combo Armors"] = true,
["Extra Bees"] = true,
["Extra Trees"] = true,
["Gendustry"] = true,
["Genetics"] = true,
["Gravitation Suite"] = true,
["GregTech"] = true,
["GregTech 4"] = true,
["GregTech 5"] = true,
["Galaxy Space"] = true,
["Immersive Petroleum"] = true,
["SEnergetics"] = true,
["Transformers"] = true,
["Wireless Solar Panels Improved Vajra and XP Tools"] = true
}
local p = {}
function compile_link_list(list, singular, plural)
if #list == 0 then
return
end
local text = (#list == 1 and singular or plural) .. " [[" .. list[1] .. "]]"
for i = 2, #list do
if i == #list then
text = text .. " и "
else
text = text .. ", "
end
text = text .. "[[" .. list[i] .. "]]"
end
return text
end
function p.main(f)
local args = require("Модуль:ProcessArgs").merge(true)
local mods = {}
local addons = {}
local cats = {}
if #args == 0 then
-- Автоопределение файла модификации из названия файла.
-- Ищется ближайшая к расширению файла пара скобок, а из неё извлекается название
local fileName = mw.title.getCurrentTitle().text
local mod = mw.ustring.match(fileName, ".+%((.*)%)")
if mod then
table.insert(args, mw.text.trim(mod))
end
end
for i, v in ipairs(args) do
local mod_name = full_mod_names[v] or v
if addon_list[mod_name] then
table.insert(addons, mod_name)
else
table.insert(mods, mod_name)
end
table.insert(cats, '[[Категория:Файлы с материалами модификации ' .. mod_name .. ']]')
end
local mod_singular = "модификации"
local mod_plural = "модификаций"
local addon_singular = "дополнения"
local addon_plural = "дополнений"
local mod_list = compile_link_list(mods, mod_singular, mod_plural)
local addon_list = compile_link_list(addons, addon_singular, addon_plural)
local link_list
if mod_list then
if addon_list then
link_list = mod_list .. ", а также разработчикам " .. addon_list
else
link_list = mod_list
end
else
-- предполагаем, что указан хотя бы один параметр модификации/дополнения
link_list = addon_list
end
if link_list == nil then
image = "Barrier (held) JE1 BE1.png"
title_text = "Ошибка! Не указана модификация! Модификация должна быть указана в скобках в названии файла или в первом параметре шаблона. Подробнее см. [[Шаблон:Лицензия/Модификация]]."
main_text = ""
category_text = "[[Категория:Не указана модификация]]"
else
image = "License copyright.svg"
title_text = "Этот файл (или его часть) принадлежит по авторскому праву разработчикам " .. link_list .. "."
main_text = "Этот файл может свободно использоваться в вики. Условия его использования вне вики зависят от лицензий на вышеперечисленные модификации и/или дополнения."
category_text = ""
if not args["некат"] then
category_text = table.concat(cats)
end
end
return f:expandTemplate{ title = "Лицензия", args = {
['изобр'] = image,
['назв'] = title_text,
['описание'] = main_text,
['некат'] = args["некат"]
}} .. category_text
end
return p