Модуль:Отображение наград
Для документации этого модуля может быть создана страница Модуль:Отображение наград/doc
local pp = {}
local tools = require( 'Module:Tools' )
local perstools = require( 'Module:PersTools' )
local refTools = require( 'Module:RefTools' )
local prizeTable = mw.loadData('Модуль:Награды')
local marker = {
icon = 'trophy',
[3] = 'Упоминание награды в документах', -- на всякий случай )
[6] = 'Лишение награды',
[8] = 'Награждение — ОТМЕНЕНО',
[10] = 'Лишение награды — ОТМЕНЕНО',
[11] = 'Отмена решения',
[12] = 'Награждение',
[14] = 'Лишение награды',
}
function pp.display( query, queryCount, showP )
if queryCount == 0 then
return '<p class="nkvd-no-prize">Отсутствуют сведения о награждении.</p>[[Категория:Персоналии без наград]]'
end
table.sort( query, function ( a, b )
return ( a.cDate or '' ) < ( b.cDate or '' )
or ( a.cDate or '' ) == ( b.cDate or '' )
and tonumber( a.origin ) < tonumber( b.origin )
end
)
local out
if showP then
out = '<th> </th>'
else
out = ''
end
out = { [==[
<table class="nkvd-prize-table">
<tr class="nkvd-table-th">]==] .. out .. [==[
<th> </th>
<th> </th>
<th class="nkvd-table-date">дата</th>
<th class="nkvd-table-prize">награда</th>
<th class="nkvd-table-source">источник</th>
</tr>
]==] }
local ourTitle = mw.title.getCurrentTitle().text
for _, row in ipairs( query ) do
if row['#eq'] or ( showP and row['#ap'] ) then
local icon
if row.origin == '12' and prizeTable[row.prize].icon then
icon = '[[Файл:' .. prizeTable[row.prize].icon .. '|36px]]'
-- else
-- icon = prizeTable[row.prize].icon or '???'
end
table.insert( out,
'<tr class="nkvd-table-row-' .. row.origin .. '">' )
if showP then
table.insert( out, '<td class="nkvd-table-person">' .. perstools.makePersonLink( row ) .. '</td>' )
end
table.insert( out,
perstools.fixedColumns( row.origin, marker, row.cDate, row.cDate__precision, true, icon ) )
if row.origin == '14' then
table.insert( out,
'<td class="nkvd-table-prize"><i>Лишение награды: ' .. row.prize
.. '</i></td>' )
else
table.insert( out,
'<td class="nkvd-table-prize">' .. row.prize )
if row.prizeNumber ~= '' then
table.insert( out, ' № ' .. row.prizeNumber )
end
-- table.insert( out, '[[Категория:Награда:' .. row.prize .. ']]</td>' )
table.insert( out, '</td>' )
end
local doc, persdoc = row._pageName, (row.alias or '')
if doc == ourTitle then
if persdoc == '' then
persdoc = 'см. дополнительные материалы'
end
else
if persdoc == '' then
persdoc = mw.title.new( doc ).text
end
persdoc = '[[' .. doc .. '|' .. persdoc .. ']]'
end
-- if row.formula ~= '' then
-- row.formula = string.byte( row.formula, 3 ) .. ': ' .. row.formula
-- end
table.insert( out, '<td class="nkvd-table-source">' .. persdoc .. ' ' .. mw.text.decode( tools.podvigLink( row.podvig ) ) )
table.insert( out, refTools.makeRef( row.reference ) )
table.insert( out, '</td>' )
table.insert( out, '</tr>\n' )
end
end
table.insert( out, '</table>\n' )
return table.concat( out )
end
return pp