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