Module:Year
From ArchivesWiki
Documentation for this module may be created at Module:Year/doc
local p = {}
p.yearList = function ( frame )
local years = {}
-- Items
local resultsItems = mw.ext.cargo.query( 'items', 'YEAR(date)=year', {
where = 'date IS NOT NULL',
groupBy = 'YEAR(date)',
limit = 1000
} )
for r = 1, #resultsItems do
local year = resultsItems[r].year
years[ year ] = year
end
-- People
local resultsPeople = mw.ext.cargo.query( 'people', 'YEAR(birth_date)=birth_year, YEAR(death_date)=death_year', {
where = 'birth_date IS NOT NULL OR death_date IS NOT NULL',
groupBy = 'YEAR(birth_date), YEAR(death_date)',
limit = 1000
} )
for r = 1, #resultsPeople do
local birth_year = resultsPeople[r].birth_year
if birth_year and years[ birth_year ] == nil then
years[ birth_year ] = birth_year
end
local death_year = resultsPeople[r].death_year
if death_year and years[ death_year ] == nil then
years[ death_year ] = death_year
end
end
local onlyYears = {}
for k, v in pairs( years ) do
table.insert( onlyYears, v )
end
table.sort( onlyYears )
return '[[' .. table.concat( onlyYears, ']], [[' ) .. ']]';
end
return p
