Module:EcopediaString: Difference between revisions

From Eco - English Wiki
[unchecked revision][unchecked revision]
New Module Ecopedia
 
No edit summary
Line 34: Line 34:
local headerSec = "EcopediaHeader"
local headerSec = "EcopediaHeader"
-- create text to be returned"
local text = ""
     -- make sure page is not nil
     -- make sure page is not nil
Line 41: Line 43:
local p = pageList[page]
local p = pageList[page]
if p ~= nil then
if p ~= nil then
-- create text to be returned
local text = ""
-- main heading
-- main heading
Line 65: Line 64:
end -- if exists in Ecopedia
end -- if exists in Ecopedia
     end -- if page not nil
     end -- if page not nil
return text
end
end


return p
return p

Revision as of 04:36, 4 February 2021

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"
			
			-- loop through sections (i = array position, j= {sectionType, text} )
			for i=1, #p.sections do
				-- create a local of the current section
				local sec = p.sections[i]
				
				if (sec[1] == bodySec) then
					text = text .. sec[2] .. "\n"
				end -- if bodySec
				
				if (sec[1] == headerSec) then
					text = text .. "\'\'" .. sec[2] .. "\'\'\n"
				end -- if headerSec
				
			end -- sections for loop
		
		end	-- if exists in Ecopedia	
    end -- if page not nil
	
	return text
end

return p