Zelda Wiki

Want to contribute to this wiki?
Sign up for an account, and get started!

Come join the Zelda Wiki community Discord server!

READ MORE

Zelda Wiki
Advertisement

Documentation for this module may be created at Module:On This Day/Documentation

local p = {}
local h = {}
local cargo = mw.ext.cargo
local utilsString = require("Module:UtilsString")

function p._Main(frame)
	local entry = h.GetEntryForToday()
	return h.DisplaySection(entry)
end

function h.GetEntryForToday()
	local formattedDate = os.date("%m-%d")
	local entries = cargo.query("OnThisDay", "date, title, filename, text, link", {})
	
	local todayEntries = {}
	for key, entry in ipairs(entries) do
		if string.sub(entry["date"], 6) == formattedDate then
			table.insert(todayEntries, entry)
		end
	end
	return todayEntries[1]
end

function h.DisplaySection(entry)
	local result = ""
	local header = "On this day"
	if not utilsString.isEmpty(entry) then
		header = header .. ", " ..  (os.date("%Y") - tonumber(string.sub(entry["date"], 1, 4))) .. " years ago..."
	else
		header = header .. "..."
		entry = {}
		entry["filename"] = "LA Mr. Write Artwork.png"
		entry["title"] = "Nothing happened"
		entry["text"] = "But you can change that! All it takes is one edit to make history. [[Special:RecentChanges|Zelda Wiki history]], that is.\n* [https://discordapp.com/invite/wJJY8Na4eP Join our Discord]\n* [[Guidelines:Getting Started|Learn how to edit]]\n* [[:Category:Articles Needing Attention|Check out pages needing attention]]"
		entry["link"] = "Guidelines:Getting Started"
	end
	
	
	-- desktop version
	local desktopVersion = mw.html.create("div")
		:addClass("no-mobile infoblock")
		:attr("id", "on-this-day")
		:node(mw.html.create("div")
			:addClass("infoblock-header")
			:wikitext(header))
		:node(mw.html.create("div")
			:addClass("infoblock-content")
			:wikitext("[[File:" .. entry["filename"] .. "|right|200x200px]]<span class='infoblock-title'>" .. entry["title"] .. "</span><br>" .. entry["text"]))
		:node(mw.html.create("div")
			:addClass("infoblock-read-more")
			:wikitext(mw.getCurrentFrame():preprocess("<nowiki>[</nowiki>[[" .. entry["link"] .. "|Read more...]]<nowiki>]</nowiki><br><nowiki>[</nowiki>[{{FULLURL:Main Page|action=purge}} Click here to purge the cache]<nowiki>]</nowiki>")))
		
	-- mobile version
	local mobileVersion = mw.html.create("div")
		:addClass("mobile-only infoblock")
		:attr("id", "on-this-day")
		:node(mw.html.create("div")
			:addClass("infoblock-header")
			:wikitext(header))
		:node(mw.html.create("div")
			:addClass("infoblock-title")
			:wikitext(entry["title"]))
		:node(mw.html.create("div")
			:addClass("infoblock-content")
			:wikitext("[[File:" .. entry["filename"] .. "|right|150x150px]]" .. entry["text"]))
		:node(mw.html.create("div")
			:addClass("infoblock-read-more")
			:wikitext(mw.getCurrentFrame():preprocess("<nowiki>[</nowiki>[[" .. entry["link"] .. "|Read more...]]<nowiki>]</nowiki><br><nowiki>[</nowiki>[{{FULLURL:Main Page|action=purge}} Click here to purge the cache]<nowiki>]</nowiki>")))
		
		result = tostring(desktopVersion) .. tostring(mobileVersion)
	return result
end

return p
Advertisement