Module:QuestDetails: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}

local infobox = require('Module:Infobox')
local parse = require('Module:Param Parse')


function p.details(frame)
function p.details(frame)
local args = frame:getParent().args
local args = frame:getParent().args
local mw = require('mw')
if args.start_point then
local config = {
mw.smw.set({
infobox_name = 'QuestDetails',
["start_point"] = args.start_point,
class = 'questdetails'
})
}
end
if args.requirements then
mw.smw.set({
["requirements"] = '\n'..args.requirements,
})
end
if args.recommended then
mw.smw.set({
["recommended"] = '\n'..args.recommended,
})
end
if args.enemies then
mw.smw.set({
["enemies"] = args.enemies,
})
end
local requirements;
if (args.requirements) then
requirements = args.requirements
else
requirements = 'None'
end
local params = {
local table = mw.html.create( 'table' )
table
{ name = 'start_point' },
:attr( 'class', 'wikitable plainlinks' )
{ name = 'requirements' }
:attr( 'cellspacing', '3' )
}
:tag( 'tr' )

:tag( 'td' )
local ret = infobox.new(config, params, args)
:tag( 'b' )
local auto_width = { ["max-width"] = "85%", ["width"] = "auto" }
:wikitext('Start Point')
ret:addRow {
:done()
{ tag = 'th', class = "questdetails-header", content = 'Start Point' },
:attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
{ tag = 'argd', class = "questdetails-info", content=infobox.param('start_point'), css = auto_width }
:done()
}
:tag( 'td' )

ret:addRow {
:tag('p')
:wikitext( args['start_point'] )
{ tag = 'th', class = "questdetails-header", content = 'Requirements' },
:done()
{ tag = 'td', class = "questdetails-info", content=infobox.param('requirements'), colspan = 2 }
:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
}
:done()

return ret
:done()
:tag( 'tr' )
:tag( 'td' )
:tag( 'b' )
:wikitext('Requirements')
:done()
:attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
:done()
:tag( 'td' )
:tag('div')
:addClass('lighttable checklist')
:newline()
:wikitext(requirements)
:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
:done()
:done()
if (args.recommended) then
table
:tag( 'tr' )
:tag( 'td' )
:tag( 'b' )
:wikitext('Recommended')
:done()
:attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
:done()
:tag( 'td' )
:tag('div')
:newline()
:wikitext( args.recommended )
:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
:done()
:done()
end
if (args.enemies) then
table
:tag( 'tr' )
:tag( 'td' )
:tag( 'b' )
:wikitext('Enemies')
:done()
:attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
:done()
:tag( 'td' )
:tag('p')
:wikitext( args.enemies )
:done()
:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
:done()
:done()
end
table:done()
return tostring( table )
end
end



Latest revision as of 12:43, 18 November 2024

Module documentation
This documentation is transcluded from Module:QuestDetails/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:QuestDetails/doc. [edit]
Module:QuestDetails's function details is invoked by Template:QuestDetails.
Module:QuestDetails requires Module:Mw.

local p = {}

function p.details(frame)
	local args = frame:getParent().args
	local mw = require('mw')
	
	if args.start_point then
        mw.smw.set({
            ["start_point"] = args.start_point,
        })
    end
    if args.requirements then
        mw.smw.set({
            ["requirements"] = '\n'..args.requirements,
        })
    end
    if args.recommended then
        mw.smw.set({
            ["recommended"] = '\n'..args.recommended,
        })
    end
    if args.enemies then
        mw.smw.set({
            ["enemies"] = args.enemies,
        })
    end
    
    local requirements;
    if (args.requirements) then
    	requirements = args.requirements
    else
    	requirements = 'None'
    end
	
	local table = mw.html.create( 'table' )
	table
	     :attr( 'class', 'wikitable plainlinks' )
	     :attr( 'cellspacing', '3' )
	     :tag( 'tr' )
		     :tag( 'td' )
		    	:tag( 'b' )
		    		:wikitext('Start Point')
		    	:done()
			 :attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
			:done()
			:tag( 'td' )
		    	:tag('p')
		    		:wikitext( args['start_point'] )
		    	:done()
			:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
			:done()
	     :done()
	     
	     :tag( 'tr' )
		     :tag( 'td' )
		    	:tag( 'b' )
		    		:wikitext('Requirements')
		    	:done()
			 :attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
			:done()
			:tag( 'td' )
		    	:tag('div')
		    	:addClass('lighttable checklist')
        		:newline()
        		:wikitext(requirements)
			:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
			:done()
	     :done()
	     
	     if (args.recommended) then
	     	table
		     	:tag( 'tr' )
			     :tag( 'td' )
			    	:tag( 'b' )
			    		:wikitext('Recommended')
			    	:done()
				 :attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
				:done()
				:tag( 'td' )
			    	:tag('div')
	        		:newline()
	        		:wikitext( args.recommended )
				:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
				:done()
		     :done()
	     end
	     
	     if (args.enemies) then
	     	table
		     	:tag( 'tr' )
			     :tag( 'td' )
			    	:tag( 'b' )
			    		:wikitext('Enemies')
			    	:done()
				 :attr('style', 'vertical-align:top; width:15%; padding: 0 1em;')
				:done()
				:tag( 'td' )
			    	:tag('p')
			    		:wikitext( args.enemies )
			    	:done()
				:attr('style', 'max-width:85%; width:auto; padding-left: 1em; padding-right: 2em;')
				:done()
		     :done()
	     end
	     
	table:done()
	     
	return tostring( table )
end

return p