Module:Infobox event
Appearance
Documentation for this module may be created at Module:Infobox event/doc
local exports = {}
function extractIsoDate( isoTime )
return string.match( isoTime, '%d%d%d%d%-%d%d%-%d%d' )
end
function exports.Infobox( frame )
local id = mw.wikibase.getEntityIdForCurrentPage()
local item = mw.wikibase.getEntityObject()
local statements = mw.wikibase.getBestStatements( id, 'P706' )
local startDate
if not statements[1] then
startDate = 'unknown'
.. '[[Category:Wikidata item misses start date]]'
else
local snak = statements[1].mainsnak
-- Format the Snak with the default Wikibase formatter
-- startDate = mw.wikibase.formatValue( snak )
-- Or format yourself
local isoTime = snak.datavalue.value.time
startDate = extractIsoDate( isoTime )
if frame.args['Start date'] ~= '' and startDate ~= frame.args['Start date'] then
startDate = startDate .. '[[Category:Wikidata mismatches start date]]'
end
if statements[2] then
startDate = startDate .. ' (['
.. '//wikidata.beta.wmflabs.org/wiki/' .. id .. '#P706'
.. ' more values available])'
end
end
local statements = mw.wikibase.getBestStatements( id, 'P60' )
local speakers = ''
-- Collect all main snaks in a Lua table and format them with the default
-- Wikibase formatter (comman separated)
-- local snaks = {}
-- for index, statement in pairs( statements ) do
-- table.insert( snaks, statement.mainsnak )
-- end
-- speakers = mw.wikibase.formatValues( snaks )
-- Or format yourself
for index, statement in pairs( statements ) do
if speakers ~= '' then
speakers = speakers .. ', '
end
speakers = speakers .. statement.mainsnak.datavalue.value
end
return '{| class="wikitable" style="float: right; width: 300px;"\n'
.. '| Start date || ' .. startDate .. '\n'
.. '|-\n'
.. '| Speakers || ' .. speakers .. '\n'
.. '|}'
--.. '<pre>' .. mw.dumpObject( statements ) .. '</pre>'
end
return exports