Modul:Navbox person: Unterschied zwischen den Versionen

CamNet - das Wiki
(Die Seite wurde neu angelegt: „local p = {} local YesNo = require( 'Module:Yesno' ) processArguments = function ( args ) local processedArguments = {} if args.clan and string.length(ar…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
local p = {}
local p = {}
local YesNo = require( 'Module:Yesno' )
local YesNo = require( 'Module:Yesno' )
getArgs = function ( frame )
return require('Module:Arguments').getArgs( frame )
end


processArguments = function ( args )
processArguments = function ( args )
Zeile 37: Zeile 42:
end
end


processData = function ( data, args )
processData = function ( data, clan )
local processedData = {
clan = {},
coterie = {},
all = {},
}
for _, row in pairs(data) do
if clan and clan == data.clan then
table.insert(processedData.clan, data.name)
end
if data.coterie then
table.insert(processedData.coterie, data.name)
end
if not processedData[data.type] then
processedData[data.type] = {}
end
table.insert(processedData[data.type], data.name)
table.insert(processedData.all, data.name)
end
end
end


displayNavbox = function( data, coterie )
local html = mw.html.create('')
end


function p.main(frame)
function p.main(frame)
Zeile 47: Zeile 74:
local data = p.getData()
local data = p.getData()
data = p.processData( data, args )
data = p.processData( data, args.clan )


end
end


return p
return p

Version vom 3. September 2021, 08:28 Uhr

Documentation icon Module documentation


This module implements the {{Navbox person}} template. Please see the template page for usage instructions.


Usage

{{#invoke:Navbox person|navbox}}

local p = {}
local YesNo = require( 'Module:Yesno' )


getArgs = function ( frame )
	return require('Module:Arguments').getArgs( frame )
end

processArguments = function ( args )

	local processedArguments = {}
	
	if args.clan and string.length(args.clan) > 0 then
		processedArguments.clan = clan
	end

	if args.coterie and string.length(args.coterie) > 0 then
		processedArguments.coterie = YesNo( args.coterie, true )
	end
	
	return processedArguments
end

getData = function ()

	local SmwUtil = require('Module:SmwUtil')
	local query = {
		select = { '[[is_member_of_class::Person]]' },
		fields = { 'is_of_character_type=type', 'is_member_of_the_coterie=coterie', 'is_member_of_clan=clan' }
	}
	local attributes = {
		sort = 'has display title',
		order = 'asc',
		mainlabel = 'name'
	}
	return SmwUtil.ask(query, attributes)
	-- returns data as follows
	-- clan : (string) clan; WARNING: OPTIONAL
	-- type : (string) person type; Vampire, Kithain, etc.
	-- name : (string) pagename
	-- coterie : (bool) member of the coterie; WARNING: OPTIONAL
end

processData = function ( data, clan )
	
	local processedData = {
			clan = {},
			coterie = {},
			all = {},
		}
	for _, row in pairs(data) do
		if clan and clan == data.clan then
			table.insert(processedData.clan, data.name)
		end
		if data.coterie then
			table.insert(processedData.coterie, data.name)
		end
		if not processedData[data.type] then
			processedData[data.type] = {}
		end
		table.insert(processedData[data.type], data.name)
		table.insert(processedData.all, data.name)
	end
end

displayNavbox = function( data, coterie )
	local html = mw.html.create('')
	
end

function p.main(frame)
	local args = getArgs(frame)
	args = processArguments( args )
	
	local data = p.getData()
	data = p.processData( data, args.clan )

end

return p