Module:EcopediaString: Difference between revisions

From Eco - English Wiki
[checked revision][checked revision]
No edit summary
m StalEF moved page Module:GetEcopedia to Module:EcopediaString without leaving a redirect
(No difference)

Revision as of 09:55, 28 June 2024

This module provides the back end functionality of the Template:EcopediaString.

If the template is passed information will be displayed using details from the following Modules:


-- Module:GetEcopedia (https://wiki.play.eco/en/Module:GetEcopedia)
local p = {}

-- Grabs args from the parent frame
-- Trims and parses the args into a table, then returns the table
function norm()
    local origArgs = mw.getCurrentFrame():getParent().args
    local args = {}
    
    for k, v in pairs( origArgs ) do
        v = mw.text.trim( tostring( v ) )
        if v ~= '' then
            args[k] = v
        end
    end
    
    return args
end

-- Main entry point for the Module
function p.main()
	-- get args from the Template
    local args = norm()
    
    -- assign variables for page
    local page = args.page

    -- load list of pages
    local completeList = require( "Module:Ecopedia" )
    local pageList = completeList.ecopedia   
	
	-- sectionTypes constants
	local bodySec = "EcopediaSection"
	local headerSec = "EcopediaHeader"
	
	-- create text to be returned"
	local text = ""
	
    -- make sure page is not nil
    if page ~= nil then
		
		-- make sure page exists in ecopedia
		local p = pageList[page]
		if p ~= nil then
			
			-- main heading					
			text = text .. "\'\'\'" .. p.displayName .. "\'\'\'\n\n"
			
			-- loop through sections (i = array position, j= {sectionType, text} )
			for i=1, #p.sectionsText do
				-- create a local of the current section
				local sec = p.sectionsText[i]
				
				if (sec[1] == bodySec) then
					text = text .. sec[2] .. "\n\n"
				end -- if bodySec
				
				if (sec[1] == headerSec) then
					text = text .. "\'\'\'" .. sec[2] .. "\'\'\'\n\n"
				end -- if headerSec
				
			end -- sections for loop
		
		end	-- if exists in Ecopedia	
	else
		text = "PAGE " .. page .. " NOT FOUND"
    end -- if page not nil
	
	return text
end

return p