Module:QuestDetails: Difference between revisions

No edit summary
(visual improvements)
 
(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 = 'Quest Details',
["start_point"] = tostring(args.start_point),
class = 'questdetails'
})
}
end
if args.requirements then
mw.smw.set({
["requirements"] = tostring(args.requirements),
})
end
if args.recommended then
mw.smw.set({
["recommended"] = tostring(args.recommended),
})
end
if args.enemies then
mw.smw.set({
["enemies"] = tostring(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)
ret:attr { cellspacing = '3' }
:tag( 'b' )
:wikitext('Start Point')

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

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

:tag( 'tr' )
return ret
: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 11:49, 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"] = tostring(args.start_point),
        })
    end
    if args.requirements then
        mw.smw.set({
            ["requirements"] = tostring(args.requirements),
        })
    end
    if args.recommended then
        mw.smw.set({
            ["recommended"] = tostring(args.recommended),
        })
    end
    if args.enemies then
        mw.smw.set({
            ["enemies"] = tostring(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