Модуль:Сущность: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) Нет описания правки |
Pok (обсуждение | вклад) Нет описания правки |
||
| Строка 19: | Строка 19: | ||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
if k ~= 1 and v ~= nil and v ~= "" then | if k ~= 1 and k ~= "cardTag" and k ~= "tag" and v ~= nil and v ~= "" then | ||
params = params .. "|" .. k .. "=" .. v | params = params .. "|" .. k .. "=" .. v | ||
Текущая версия от 18:08, 6 апреля 2026
Для документации этого модуля может быть создана страница Модуль:Сущность/doc
local p = {}
local getArgs = require('Module:Arguments').getArgs
local entityData = require('Module:Сущность/data')
local function trim(s)
if not s then return "" end
return mw.text.trim(tostring(s))
end
function p.get(frame)
local args = getArgs(frame, { removeBlanks = false })
local id = args[1] or ""
if id == "" then
return ""
end
local params = ""
local hasExtraArgs = false
for k, v in pairs(args) do
if k ~= 1 and k ~= "cardTag" and k ~= "tag" and v ~= nil and v ~= "" then
params = params .. "|" .. k .. "=" .. v
if k ~= "blacklist" then
hasExtraArgs = true
end
end
end
local ajax = "{{ajax|<nowiki>{{#invoke:Сущность/data|get|" .. id .. params .. "}}</nowiki>|auto}}"
local text = ajax
if not hasExtraArgs then
local cardTagText = entityData.collectCardTagText(frame, args, id)
if cardTagText ~= "" then
params = params .. "|cardTag=" .. cardTagText
end
text =
"{{#if:{{NAMESPACE}}|{{переключатель_проекта|[[Категория:{{NAMESPACE}}:Сущности]]{{NAMESPACE}}}}|[[Категория:Сущности]]{{переключатель_проекта}}}}" ..
'<span style="display:none;">{{#invoke:CategoryFormatter|main|' .. cardTagText .. '}}</span>' .. ajax
end
return frame:preprocess(text)
end
function p.preview(frame)
local args = getArgs(frame, { removeBlanks = false })
local id = args[1] or ""
if id == "" then return "" end
local params = ""
for k, v in pairs(args) do
if k ~= 1 and k ~= "cardTag" and k ~= "tag" then
params = params .. "|" .. k .. "=" .. v
end
end
local cardTagText = entityData.mergeCardTagText(args.cardTag or "", args.tag or "")
if cardTagText ~= "" then
params = params .. "|cardTag=" .. trim(cardTagText)
end
local text = "{{#invoke:Сущность/data|preview|" .. id .. params .. "}}"
return frame:preprocess(text)
end
return p