Dieses Modul benötigt Modul:Arguments (2x)
Dieses Modul benötigt Modul:Localized
Diese Dokumentationsseite spiegelt den Inhalt der Seite Modul:CharArmorComponents/Doku wieder. |
Modulabhängigkeiten
Modulinfo
Dieses Modul setzt die Vorlage:Rüstungskomponenten um. Anweisungen zur Verwendung findest du auf der Vorlagenseite.
local CharArmorComponents = {}
local metatable = {}
local methodtable = {}
metatable.__index = methodtable
local localized = require( 'Module:Localized' )
--- Request armor set and class from the current page
--- @param title string
--- @return string|nil
function CharArmorComponents.getPageData( title )
local query = {
'[[' .. title .. ']]',
'?Set#-=set', '+lang=de',
'?Basisversion UUID#-=base_uuid',
'?UUID#-=uuid',
'mainlabel=-'
}
local result = mw.smw.ask( query )
local set, uuid, base_uuid
if result ~= nil and result[ 1 ] ~= nil then
set = result[ 1 ].set or nil
base_uuid = result[ 1 ].base_uuid or nil
uuid = result[ 1 ].uuid or nil
end
return set, uuid, base_uuid
end
--- Creates the query for components
--- @return string
function CharArmorComponents.makeComponentsQuery( frame )
local args = require( 'Module:Arguments' ).getArgs( frame )
-- name from args or current page
local name = args[ 1 ] or args[ 'Name' ] or localized.getMainTitle()
local set, _, _ = CharArmorComponents.getPageData( name )
local restrictions = {
'[[Name::~~"' .. name .. '"]]',
'[[Ist Basisversion::Wahr]]',
'[[:+]]',
}
if type( set ) == 'string' then
table.insert( restrictions, '[[Set::' .. set .. ']]')
else
return ''
end
local query = {
'{{#ask:',
table.concat( restrictions ),
'|?Rüstungsklasse=Komponente',
'|+lang=de',
'|?Name',
'|format=broadtable',
'|limit=5',
'|offset=0',
'|link=all',
'|sort=',
'|order=asc',
'|headers=plain',
'|mainlabel=-',
'|class=sortable wikitable smwtable',
'|transpose=1',
'|intro=<nowiki/>',
'== Rüstungskomponenten ==',
'<div class="flex-wrapper">',
'|outro=<nowiki/>',
'</div>',
'}}',
}
return frame:preprocess( table.concat( query, "\n" ) )
end
--- Creates the query for variants
--- @return string
function CharArmorComponents.makeVariantsQuery( frame )
local args = require( 'Module:Arguments' ).getArgs( frame )
-- name from args or current page
local name = args[ 1 ] or args[ 'Name' ] or localized.getMainTitle()
local set, uuid, base_uuid = CharArmorComponents.getPageData( name )
local restrictions = {
'[[:+]]',
'[[Hat Unterobjekt::+]]',
}
if set == nil and uuid == nil and base_uuid == nil then
return ''
end
if base_uuid ~= nil then
table.insert(
restrictions,
'<q>[[Basisversion UUID::' .. base_uuid .. ']]||[[UUID::' .. base_uuid .. ']]</q>'
)
elseif uuid ~= nil then
table.insert( restrictions, '[[Basisversion UUID::' .. uuid .. ']]')
else
table.insert( restrictions, '[[Name::~' .. name .. '%"]]' )
end
if type( set ) == 'string' then
table.insert( restrictions, '[[Set::' .. set .. ']]')
end
local query = {
'{{#ask:',
table.concat( restrictions ),
'|format=ul',
'|limit=15',
'|offset=0',
'|link=all',
'|order=asc',
'|class=ul-col-3',
'|searchlabel=… weitere Versionen',
'|intro=<nowiki/>',
'== Versionen ==',
'Dieses Item existiert in folgenden Varianten:',
'}}',
}
return frame:preprocess( table.concat( query, "\n" ) )
end
return CharArmorComponents