Модуль:Предмет: различия между версиями

Нет описания правки
Нет описания правки
 
(не показано 6 промежуточных версий этого же участника)
Строка 15: Строка 15:
end
end


local function projectPrefix(project)
local function hasAction(frame, id)
if project ~= '' then
if trim(id) == '' then
return project .. ':'
return false
end
end
return ''
 
local result = frame:preprocess(
string.format('{{#invoke:GetField|hasComp|%s|Action}}', id)
)
 
return trim(result):lower() == 'true'
end
end


Строка 37: Строка 42:
local isWrap = argsRaw.wrapper ~= nil
local isWrap = argsRaw.wrapper ~= nil
local isVert = argsRaw.vertical ~= nil
local isVert = argsRaw.vertical ~= nil
 
local project = JsonPaths.project(argsRaw.path or '')
local hasId = (JsonPaths.has(id) == true)
local useProject = (project ~= '' and id ~= '' and JsonPaths.has(id, project) == true)
local projPrefix = hasId and JsonPaths.prefix() or ''
local projPrefix = useProject and projectPrefix(project) or ''


-- Получение имени
-- Получение имени
local nameStr = frame:preprocess(
local nameStr = frame:preprocess(
string.format('{{#invoke:Entity Lookup|getname|%s}}', id)
string.format('{{#invoke:Entity Lookup|getname|%s}}', id)
)
local linkNameStr = frame:preprocess(
string.format('{{#invoke:Entity Lookup|getname|%s|suffix=1}}', id)
)
)


Строка 50: Строка 58:
local labelRaw = argsRaw.label or argsRaw.l
local labelRaw = argsRaw.label or argsRaw.l
local label = (labelRaw == nil and nameStr) or (labelRaw == '' and '' or labelRaw)
local label = (labelRaw == nil and nameStr) or (labelRaw == '' and '' or labelRaw)
local linkRaw = argsRaw.link
local linkRaw = argsRaw.link
local linkTgt = linkRaw == nil and '' or (linkRaw == '' and nameStr or linkRaw)
local linkTgt = linkRaw == nil and '' or (linkRaw == '' and linkNameStr or linkRaw)
 
if hasAction(frame, id) and linkTgt ~= '' then
linkTgt = linkTgt .. ' (способность)'
end


if linkTgt ~= '' and projPrefix ~= '' then
if linkTgt ~= '' and projPrefix ~= '' then
Строка 60: Строка 73:


-- Изображение
-- Изображение
local imgFile = argsRaw.image or argsRaw.img or (id .. '.png')
local imgFile = argsRaw.image or argsRaw.img or (JsonPaths.prefixFile(id) .. '.png')
if imgFile ~= '' and projPrefix ~= '' then
imgFile = projPrefix .. imgFile
end
 
local img = imgFile ~= '' and formatImage(imgFile, size, linkTgt) or ''
local img = imgFile ~= '' and formatImage(imgFile, size, linkTgt) or ''
if argsRaw.imageTooltip then
if argsRaw.imageTooltip then