Module:Common: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 54: | Line 54: | ||
end | end | ||
return table.concat(AllP, "<br />" .. string.char(10)) | --return table.concat(AllP, "<br />" .. string.char(10)) | ||
return AllP | |||
end | |||
function p.TableFromArray(AllRows, HeaderRow, HeaderColumn) | |||
local Table = mw.html.create('table') | |||
local FirstRow | |||
local FirstColumn | |||
local Tr | |||
local Cell | |||
if HeaderRow == true then | |||
HeaderColumn = false | |||
elseif HeaderColumn == true then | |||
HeaderRow = false | |||
else | |||
HeaderRow = false | |||
HeaderColumn = false | |||
end | |||
FirstRow = true | |||
for _, Row in pairs(AllRows) do | |||
FirstColumn = true | |||
Tr = mw.html.create('tr') | |||
for _, Field in pairs(Row) do | |||
if (FirstRow and HeaderRow) or (FirstColumn and HeaderColumn) then | |||
Cell = mw.html.create('th') | |||
else | |||
Cell = mw.html.create('th') | |||
end | |||
Cell | |||
:wikitext(Field) | |||
--[[ | |||
if First then | |||
First = false | |||
Cell = mw.html.create('th') | |||
if (type(Field) == "table") then | |||
Cell | |||
:attr('id', Field[1]) | |||
:attr('title', Field[1]) | |||
:wikitext(Field[2]) | |||
else | |||
Cell | |||
:wikitext(Field) | |||
end | |||
else | |||
Cell = mw.html.create('td') | |||
if #Field > 1 then | |||
List = mw.html.create('ul') | |||
for _, Item in pairs(Field) do | |||
LI = mw.html.create('li') | |||
LI:wikitext(Item) | |||
List:node(LI) | |||
end | |||
Cell:node(List) | |||
else | |||
Cell | |||
:wikitext(Field[1]) | |||
end | |||
end]] | |||
Tr:node(Cell) | |||
FirstColumn = false | |||
end | |||
Table:node(Tr) | |||
FirstRow = false | |||
end | |||
--[==[if mw.wikibase.getEntity() then | |||
Text = "Modifica i dati nella [[:datatrek:Item:" .. mw.wikibase.getEntityIdForCurrentPage() .. "|pagina della entità]] su ''DataTrek''" | |||
else | |||
Text = "Impossibile trovare l'entità collegata" | |||
end | |||
Table | |||
:css('font-size', 'smaller') | |||
:css('text-align', 'right') | |||
:css('margin', '1px') | |||
]==] | |||
--return tostring(Table) | |||
return Table | |||
end | |||
function p.SiteAllPText(frame) | |||
return table.concat(SiteAllP(frame), "<br />" .. string.char(10)) | |||
end | |||
function p.SiteAllPTable(frame) | |||
return TableFromArray(SiteAllP(frame)) | |||
end | end | ||
return p | return p |
Revision as of 23:33, 10 June 2020
Documentation for this module may be created at Module:Common/doc
-- Keyword: wikitrek
local p = {}
function p.SiteAllP(frame)
local MaxP
local Separator = "|"
local AllP = {}
local PDetails = {}
if tonumber(frame.args[1]) < 1 then
MaxP = 10
else
MaxP = tonumber(frame.args[1])
end
for PNumber = 1, MaxP, 1 do
if mw.wikibase.entityExists('P' .. PNumber) then
local PDetails = {}
local Property = mw.wikibase.getEntity('P' .. PNumber)
PDetails[#PDetails + 1] = Property.id
if Property.labels["it"] then
PDetails[#PDetails + 1] = Property.labels["it"].value
else
PDetails[#PDetails + 1] = "()"
end
if Property.labels["en"] then
PDetails[#PDetails + 1] = Property.labels["en"].value
else
PDetails[#PDetails + 1] = "()"
end
PDetails[#PDetails + 1] = Property.datatype
if Property.descriptions then
if Property.descriptions[it] then
PDetails[#PDetails + 1] = Property.descriptions[it].value
else
PDetails[#PDetails + 1] = "()"
end
if Property.descriptions[en] then
PDetails[#PDetails + 1] = Property.descriptions[en].value
else
PDetails[#PDetails + 1] = "()"
end
else
PDetails[#PDetails + 1] = "()|()"
end
--AllP[#AllP + 1] = 'P' .. PNumber
AllP[#AllP + 1] = table.concat(PDetails, Separator)
end
end
--return table.concat(AllP, "<br />" .. string.char(10))
return AllP
end
function p.TableFromArray(AllRows, HeaderRow, HeaderColumn)
local Table = mw.html.create('table')
local FirstRow
local FirstColumn
local Tr
local Cell
if HeaderRow == true then
HeaderColumn = false
elseif HeaderColumn == true then
HeaderRow = false
else
HeaderRow = false
HeaderColumn = false
end
FirstRow = true
for _, Row in pairs(AllRows) do
FirstColumn = true
Tr = mw.html.create('tr')
for _, Field in pairs(Row) do
if (FirstRow and HeaderRow) or (FirstColumn and HeaderColumn) then
Cell = mw.html.create('th')
else
Cell = mw.html.create('th')
end
Cell
:wikitext(Field)
--[[
if First then
First = false
Cell = mw.html.create('th')
if (type(Field) == "table") then
Cell
:attr('id', Field[1])
:attr('title', Field[1])
:wikitext(Field[2])
else
Cell
:wikitext(Field)
end
else
Cell = mw.html.create('td')
if #Field > 1 then
List = mw.html.create('ul')
for _, Item in pairs(Field) do
LI = mw.html.create('li')
LI:wikitext(Item)
List:node(LI)
end
Cell:node(List)
else
Cell
:wikitext(Field[1])
end
end]]
Tr:node(Cell)
FirstColumn = false
end
Table:node(Tr)
FirstRow = false
end
--[==[if mw.wikibase.getEntity() then
Text = "Modifica i dati nella [[:datatrek:Item:" .. mw.wikibase.getEntityIdForCurrentPage() .. "|pagina della entità]] su ''DataTrek''"
else
Text = "Impossibile trovare l'entità collegata"
end
Table
:css('font-size', 'smaller')
:css('text-align', 'right')
:css('margin', '1px')
]==]
--return tostring(Table)
return Table
end
function p.SiteAllPText(frame)
return table.concat(SiteAllP(frame), "<br />" .. string.char(10))
end
function p.SiteAllPTable(frame)
return TableFromArray(SiteAllP(frame))
end
return p