Moduł:Information: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
Ostrzyciel (dyskusja • edycje) M (międzyzapis) |
Ostrzyciel (dyskusja • edycje) M (a zobaczmy) |
||
Linia 11: | Linia 11: | ||
end |
end |
||
local function addRow(id, name, content, trid) |
local function addRow(id, name, content, trid, tdstyle) |
||
local row = '<tr style="vertical-align: top"' |
local row = '<tr style="vertical-align: top"' |
||
Linia 22: | Linia 22: | ||
row = row .. '<td id="' .. id .. '" style="background: #ccf; text-align: right; padding-right: 0.4em; width: 15%; font-weight:bold">' |
row = row .. '<td id="' .. id .. '" style="background: #ccf; text-align: right; padding-right: 0.4em; width: 15%; font-weight:bold">' |
||
row = row .. name .. '</td>' |
row = row .. name .. '</td>' |
||
⚫ | |||
if tdstyle then |
|||
row = row .. '<td style="' .. tdstyle .. '">' .. content .. '</td></tr>' |
|||
else |
|||
⚫ | |||
end |
|||
table.insert(rows, row) |
table.insert(rows, row) |
||
end |
end |
||
Linia 34: | Linia 40: | ||
end |
end |
||
local function processParts(args) |
local function processParts(frame, args) |
||
local prows = {} |
local prows = {} |
||
Linia 41: | Linia 47: | ||
row = row .. '<tr><td>' .. (args['pauthor' .. num] or '') .. '</td>' |
row = row .. '<tr><td>' .. (args['pauthor' .. num] or '') .. '</td>' |
||
local plic = (args['plic' .. num] or 'nolic') |
local plic = (args['plic' .. num] or 'nolic') |
||
plic = frame:expandTemplate{ title=plic, args={ mini=1 } } |
|||
row = row .. '<tr><td style="padding: 0;">' .. plic .. '</td></tr>' |
|||
table.insert(prows, row) |
|||
end |
end |
||
Linia 49: | Linia 58: | ||
else break end |
else break end |
||
end |
end |
||
local s = [[<table class="info-inner"><tr> |
|||
<td style="background: #ccf; font-weight:bold">Źródło</td> |
|||
<td style="background: #ccf; font-weight:bold">Autor</td> |
|||
<td style="background: #ccf; font-weight:bold">Licencja</td> |
|||
</tr>]] |
|||
s = s .. table.concat(prows) .. '</table>' |
|||
addRow('fileinfotpl_parts', 'Składowe', s, 'fileinforow_parts', 'padding: 0') |
|||
end |
end |
||
Linia 75: | Linia 92: | ||
addRow('fileinfotpl_desc', 'Opis', "''Brak''") |
addRow('fileinfotpl_desc', 'Opis', "''Brak''") |
||
end |
end |
||
-- składowe |
|||
processParts(frame, args) |
|||
-- confirmation |
-- confirmation |
Wersja z 18:40, 9 mar 2020
Moduł generujący tabelkę w szablonie {{Information}}
i ustawiający odpowiednie własności semantyczne. Instrukcję korzystania znajdziesz na stronie Nonsensopedia:Opisywanie grafik.
Zobacz też: Moduł:InformationProvider, który pobiera informacje o plikach.
local tools = require('Module:Narzędzia')
local props = {}
local rows = {}
-- funkcje lokalne
-- funkcja pomocnicza do scalania tabel atrybutów
local function appendProps(key, value)
props[key] = props[key] or {}
table.insert(props[key], value)
end
local function addRow(id, name, content, trid, tdstyle)
local row = '<tr style="vertical-align: top"'
if trid then
row = row .. '; id="' .. trid .. '">'
else
row = row .. '>'
end
row = row .. '<td id="' .. id .. '" style="background: #ccf; text-align: right; padding-right: 0.4em; width: 15%; font-weight:bold">'
row = row .. name .. '</td>'
if tdstyle then
row = row .. '<td style="' .. tdstyle .. '">' .. content .. '</td></tr>'
else
row = row .. '<td>' .. content .. '</td></tr>'
end
table.insert(rows, row)
end
local function getTable()
local s =
'<table class="information-template toccolours" style="width: 100%;" cellpadding="4">'
.. table.concat(rows)
.. '</table>'
return s
end
local function processParts(frame, args)
local prows = {}
local function pPart(num)
local row = '<tr><td>' .. args['psource' .. num] .. '</td>'
row = row .. '<tr><td>' .. (args['pauthor' .. num] or '') .. '</td>'
local plic = (args['plic' .. num] or 'nolic')
plic = frame:expandTemplate{ title=plic, args={ mini=1 } }
row = row .. '<tr><td style="padding: 0;">' .. plic .. '</td></tr>'
table.insert(prows, row)
end
if args['psource'] ~= nil then pPart('') end
for i = 1, 50 do
if args['psource' .. i] ~= nil then pPart(i)
else break end
end
local s = [[<table class="info-inner"><tr>
<td style="background: #ccf; font-weight:bold">Źródło</td>
<td style="background: #ccf; font-weight:bold">Autor</td>
<td style="background: #ccf; font-weight:bold">Licencja</td>
</tr>]]
s = s .. table.concat(prows) .. '</table>'
addRow('fileinfotpl_parts', 'Składowe', s, 'fileinforow_parts', 'padding: 0')
end
-- funkcje eksportowane
local p = {}
-- zrób cuda
function p.information(frame)
local args = tools.getArgs(frame)
local demo = args['demo'] ~= nil
-- caption
if args['caption'] then
appendProps('Ma podpis pliku', args['caption'])
addRow('fileinfotpl_caption', 'Podpis', args['caption'])
else
appendProps('Nie ma podpisu pliku', true)
end
-- description
if args['description'] then
appendProps('Ma opis', args['description'])
addRow('fileinfotpl_desc', 'Opis', args['description'])
else
appendProps('Nie ma opisu', true)
addRow('fileinfotpl_desc', 'Opis', "''Brak''")
end
-- składowe
processParts(frame, args)
-- confirmation
if args['confirmation'] then
appendProps('Ma potwierdzenie licencji', args['confirmation'])
addRow('fileinfotpl_confirmation', 'Potwierdzenie licencji', args['confirmation'])
end
mw.smw.set(props)
return getTable()
end
return p